# game **Repository Path**: niumastory/game ## Basic Information - **Project Name**: game - **Description**: No description available - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-09 - **Last Updated**: 2024-12-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # **游戏设计文档:牛马故事** ## 1. **游戏概述** ### 游戏名称: 牛马故事 ### 游戏背景: 2600年,人类已掌握高科技并开始实施星球迁移计划,蓝色星球的产物——“Ai管家”开始接管整个星球。随着Ai管家的统治,众多动物被捕获进行圈养以进行生化实验。玩家的任务是通过打破Ai管家的控制规则,拯救并喂养这些动物,帮助它们逃离“管家”的控制。 ### 美术风格: 卡通、自由、轻松、活力、Q弹、质感,营造一种松弛感,但也有些小紧张感的游戏氛围。 ## 2. **游戏核心玩法** ### 主要玩法: 玩家的目标是根据每关的环境条件(天气、温度、噪音等)以及动物的食物偏好,选择合适的食物喂养动物。每个动物对不同食物的偏好是不同的,而且随着环境的变化,动物的食物接受度也会有所波动。玩家需要在规定时间内喂饱尽可能多的动物,以获得最高的评分。 ### 游戏流程: 1. **动物和食物**: - 动物种类:每个关卡会有不同的动物,玩家需要根据动物的食物偏好选择合适的食物。 - 食物种类:每种食物都有不同的接受度,不同的动物对食物的接受度不同。 2. **环境因素**: - 天气(晴天、雨天) - 温度(例如:20°C) - 噪音(0-10,0为无噪音,10为极高噪音) 这些环境因素会影响动物的食物接受度,从而影响玩家的选择。 3. **关卡设置**: - 游戏分为多个关卡,每个关卡的难度逐渐增加。 - 随着关卡的进展,玩家需要喂养更多种类的动物,并应对更加复杂的环境因素。 4. **时间限制**: - 每个关卡有一个时间限制(随着关卡的增加,时间逐渐减少)。 - 玩家需要在规定时间内喂饱尽可能多的动物。 5. **评分系统**: - 每个动物的食物满意度会影响最终得分。 - 满意度越高,分数越高。 - 关卡结束时,会根据每只动物的满意度来计算总得分。 ## 3. **核心游戏系统** ### 3.1 动物类(`Animal`) - **属性**: - `name`:动物的名称(如:马、牛、羊等)。 - `preferences`:动物对不同食物的接受度(一个对象,其中键为食物名称,值为接受度)。 - `isFed`:布尔值,表示动物是否已被喂食。 - `satisfaction`:动物对食物的满意度。 - **方法**: - `feed(food, environmentFactors)`:根据当前食物和环境因素计算动物的满意度。如果满意度大于零,则表示动物已被喂食。 ### 3.2 玩家类(`Player`) - **属性**: - `foods`:可供投喂的食物数组。 - **方法**: - `chooseFood()`:玩家选择要喂养的食物。 ### 3.3 环境因素类(`Environment`) - **属性**: - `weather`:当前天气(如:`sunny` 或 `rainy`)。 - `temperature`:当前温度(范围 5-35°C)。 - `noise`:环境噪音(0-10,0 为无噪音,10 为极高噪音)。 ### 3.4 游戏类(`Game`) - **属性**: - `level`:当前关卡。 - `round`:当前回合数。 - `animals`:当前关卡的动物列表。 - `environment`:当前环境因素。 - `player`:玩家对象。 - `timeLimit`:当前关卡的时间限制(秒)。 - `score`:当前关卡的得分。 - **方法**: - `generateAnimals()`:根据当前关卡生成相应的动物。 - `generateEnvironment()`:生成当前环境因素(天气、温度、噪音)。 - `start()`:开始当前关卡,循环进行回合,直到时间结束或所有动物被喂食。 - `calculateScore()`:计算并更新当前关卡的得分。 ### 3.5 游戏管理类(`GameManager`) - **属性**: - `level`:当前关卡(从 1 开始,最多 10 关)。 - **方法**: - `start()`:启动游戏,逐个关卡递进,每关结束后自动进入下一关,直到游戏结束。 ## 4. **游戏内容设计** ### 4.1 动物和食物列表 | 动物 | 食物接受度 | |--------|-------------------------------------------------| | 马 | 胡萝卜 8, 草 3, 苹果 7, 玉米 5, 面包 2 | | 牛 | 胡萝卜 4, 草 9, 苹果 5, 玉米 6, 燕麦 3 | | 羊 | 胡萝卜 7, 草 6, 苹果 9, 玉米 4, 草莓 6 | | 猪 | 胡萝卜 3, 草 4, 苹果 7, 玉米 8, 面包 6 | | 狗 | 胡萝卜 6, 草 3, 苹果 8, 玉米 4, 鱼食 9 | | 猫 | 胡萝卜 3, 草 5, 苹果 10, 玉米 2, 燕麦 4 | | 鸡 | 胡萝卜 2, 草 10, 苹果 6, 玉米 8, 小麦 9 | | 鱼 | 鱼食 10, 小麦 5, 玉米 2, 草 1, 苹果 4 | | 鹿 | 胡萝卜 9, 草 7, 苹果 8, 玉米 3, 椰子 6 | | 大象 | 胡萝卜 5, 草 8, 苹果 4, 玉米 9, 燕麦 2 | ### 4.2 环境因素对食物偏好的影响: - **天气**: - `rainy`:所有食物的满意度下降 20%。 - `sunny`:不受影响。 - **温度**: - 低于 10°C:所有食物的满意度下降 30%。 - 10°C 到 25°C:正常影响。 - 高于 25°C:所有食物的满意度上升 10%。 - **噪音**: - 噪音大于 5 时,所有食物的满意度下降 10%。 ## 5. **游戏机制和难度调节** ### 5.1 难度递增: - **关卡设计**:随着关卡的提升,动物种类、食物种类及环境因素变得更加复杂。每个关卡会引入新的动物和食物,并增加环境因素的变化。 - **时间限制**:随着关卡的增加,时间限制会逐渐减少。第一关有 30 秒时间,第二关为 28 秒,依此类推。 - **动物偏好**:在后续关卡中,动物的食物偏好会发生变化,使得游戏更加具有挑战性。 ### 5.2 评分计算: - 每个动物的食物满意度决定其分数。 - 每个关卡结束时,所有动物的满意度加总,得出最终分数。 ## 6. **技术实现** - **编程语言**:Node.js - **开发工具**:Visual Studio Code,Node.js 环境,`readline-sync` 库用于处理玩家输入。 - **数据存储**:游戏状态(例如:分数、关卡进度等)暂时存储在内存中,未来可以拓展为持久化存储。 --- 这个设计文档从游戏的概述到具体的功能实现都有详细描述,可以帮助开发人员更好地理解和实现游戏逻辑,同时为后续的扩展和优化提供了清晰的路线图。