/Snake

基于C++的贪吃蛇

Primary LanguageC++

基于C++的贪吃蛇游戏

功能介绍

  1. 添加背景音乐:

    1. 实现循环播放;
    2. 进入游戏播放,蛇死亡时停止;
    3. 音乐可随游戏的暂停/恢复而暂停/恢复。
  2. 实现多种界面:

    1. 初始欢迎界面,可选择新/读取/退出游戏;
    2. 若进入新游戏,则可选择系统默认地图/玩家提供地图;
    3. 若选择玩家提供地图,可进一步选择新建地图/已有地图;
    4. 进入游戏可选择难度,简单/一般/困难;
    5. 选取地图或存档时,展示所有地图/存档供玩家选择。
  3. 地图范围内有障碍物,可随机生成食物;

  4. 蛇可在地图范围内随意移动;

  5. 蛇在移动时判断碰撞,可区分边界、障碍物及食物:

    1. 吃到食物蛇身变长;
    2. 每5个增加一级速度,得到一点生命值奖励;
    3. 碰到障碍物则损失一点生命值,碰到边界直接死亡。
  6. 实现游戏运行状态:

    1. 可暂停,可恢复;
    2. 暂停时,可选择回到游戏or 退出游戏;
    3. 退出游戏时,可选择直接退出 or 保存退出;
  7. 有难度等级的概念:

    1. 难度与障碍物数量及速度成正比;
    2. 游戏前,可手动选择难度;
    3. 游戏中,可通过+/-按键控制加减速来控制难度;
    4. 蛇每吃五个食物,难度增加一级。
  8. 具备简单的记分功能,分数实时显示:

    1. 每吃一个食物记5分;
    2. 每25分增加一点生命值。
  9. 有地图编辑功能:

    1. 玩家可自定义多个地图,用户自行命名以区分;
    2. 地图以文件形式存放,进入游戏时可根据用户的选择而导入相应地图文件;
  10. 实现存档读档功能:

    1. 游戏退出时,可选择是否保存;
    2. 障碍物、食物及蛇位置,蛇长、速度、生命值等信息均会保存;
    3. 可保存多个游戏档,用户自行命名以区分;
    4. 游戏档也以文件形式存放,读取游戏时可根据用户的选择而导入相应文件;
  11. 蛇有生命值的概念:

    1. 吃到食物不仅增加蛇长,每吃5个奖励一点生命值;
    2. 碰到障碍物损失一点生命值,生命值耗完后死亡
    3. 若碰到地图边界的墙壁则损失三点生命值,直接死亡。