目录
控制台小游戏——吃豆豆 3
一、概述 3
主要内容: 3
已实现的目标: 3
二、主要类的设计 3
1)依次介绍各个类的设计: 3
2)综上所述,各个类之间的关系如下图所示: 8
三、程序的功能特点和运行操作方法 8
四、代码实现中值得一提的地方 13
1)任意位置输出及颜色控制 13
2)按键识别 14
3)游戏主循环代码的复用性增强 14
4)小怪移动策略 14
5)UI 设计的一点技巧 15
五、遇到的问题及解决方案 15
控制台小游戏——吃豆豆
一、概述

主要内容:

以 吃豆豆大作战 为基础参考,实现了运行在 Windows 控制台下的一个吃豆豆小游戏。玩家目标是吃掉所有豆豆,途中,若玩家撞到怪兽则游戏结束。游戏中存在超级豆子,吃到后,所有怪兽静止,且玩家进入无敌状态(可撞怪兽使之回到初始位置)。玩家可使用键盘方向键进行选择、控制移动,回车键确定,Esc 键返回,空格键暂停。

已实现的目标:

地图支持自定义编辑(可编辑地图中的:空地、墙、豆子、超级豆子、小怪初始位置及数量、吃豆人初始位置)
可选择游戏难度(即设定不同的小怪移动速度)
怪兽可追踪吃豆人位置,往吃豆人的所在位置靠近
可查看历史记录 TOP 10,并且可对游戏记录进行回放
在回放的过程中,支持按下方向键后,本文转载自http://www.biyezuopin.vip/onews.asp?id=15251退出回放模式,在当前情形下,操纵吃豆人, 进入正常的游戏模式,继续游戏
有用户友好的UI 界面(比如:吃到超级豆子后吃豆人变彩色闪烁,且下方显示进度条倒计时;选择界面高亮显示选项)

二、主要类的设计

1)依次介绍各个类的设计:

①Position 类
由于是在控制台下实现本游戏,所以显示界面的所有元素都是字符,而一些较为美观, 且符合游戏中的元素的特殊字符一般都是 2 个英文字符的宽度,所以这里界面设计的主要思想使将整个控制台运行窗口看成一个二维的画布,横坐标以每两个英文字符的宽度为单 位,纵坐标则以每行为单位。
而有了画布之后,画布上的每一个点其实可以看作一个数据结构,这就是 Position 类
的意义。
数据成员及成员函数:

#include"Game.h"const int WINDOWS_SIZE_X = (MAP_SIZE + SIDE_INFO_UI_SIEZ) * 2 - 1;
const int WINDOWS_SIZE_Y = MAP_SIZE + INFO_UI_SIZE;
int main() {//进入游戏 Game gameCtrl;int choice = 0;while (true) {//主界面的选项的选择choice = gameCtrl.start();if (choice == 0) { //开始游戏// 开启游戏前的难度选择if(!gameCtrl.settings()) continue;// 开启一局游戏gameCtrl.init();gameCtrl.loop();}else if (choice == 1) { //历史记录//选择回放哪个历史记录int record_idx=gameCtrl.show_record();if (record_idx != -1) { //Esc键返回主页面gameCtrl.play(record_idx);}}}
}












基于C#的Windows控制台的吃豆豆小游戏相关推荐

  1. HTML + CSS + JS 10 分钟实现一个吃豆豆小游戏(给女朋友玩)

    今天江哥手把手带大家实现一个吃豆豆游戏 关注江哥不迷路,带你编程上高速 知识点 HTML + CSS + JS 实现思路:类似贪吃蛇 游戏玩法,W A S D,控制方向,实现吃豆豆 废话不多说,直接上 ...

  2. 基于 Python 制作吃豆豆小游戏(文档和源码~)

    游戏简介: 玩家通过 ↑↓←→ 键控制游戏的主角吃豆人吃掉藏在迷宫内的所有豆子,并且不能被鬼魂抓到. 若能顺利吃完迷宫内的所有豆子并且不被鬼魂抓到,则游戏胜利,否则游戏失败. 实现过程~: Step1 ...

  3. c语言吃豆豆小游戏代码,高手帮我改下我的吃豆豆游戏吧

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 void LOST(){   flag=0;   move=NO;   clrscr();   getch();   clrscr();   false1 ...

  4. 基于JavaSwing开发吃豆子小游戏 课程设计 大作业源码

    基于JavaSwing开发吃豆子小游戏:   (大作业) 开发环境: Windows操作系统 开发工具: MyEclipse/Eclipse/idea+Jdk 运行效果图: 基于JavaSwing开发 ...

  5. 【Python游戏】Python各大游戏合集(3):飞翔的小鸟、俄罗斯方块、24点小游戏、吃豆豆小游、扫雷 | 附带源码

    相关文件 关注小编,私信小编领取哟! 当然别忘了一件三连哟~~ 公众号:Python日志 可以关注小编公众号,会不定时的发布一下Python小技巧,还有很多资源可以免费领取哟!! 源码领取:加Pyth ...

  6. unity小球吃金币小游戏

    链接放在这里 unity小球吃金币小游戏-Unity3D文档类资源-CSDN下载这是我在学完虚拟现实技术这门课程后利用unity所做的小球吃金币小游戏,里面有源码和作品源文件,用u更多下载资源.学习资 ...

  7. 香肠派对电脑版_6款好玩的吃鸡小游戏,和平精英、香肠派对、迷你攻势、、、...

    沐沐带你发现好游戏! 只有你想不到, 没有我找不到的好游戏! 「良心好游戏推荐」 搜罗了好玩的微信小游戏大全, 模拟经营游戏.恐怖游戏.消除游戏.休闲游戏.益智游戏.解密游戏.烧脑游戏.解谜游戏大全. ...

  8. HTML5青蛙吃苍蝇小游戏代码

    简介: HTML5青蛙吃苍蝇小游戏,自适应分辨率,兼容pc端和移动端,背景音乐开启关闭功能 白天和晚上两种游戏背景,直接上传空间目录即可! 网盘下载地址: http://kekewangLuo.cc/ ...

  9. python 苹果试玩_python实现吃苹果小游戏

    本文实例为大家分享了python实现吃苹果小游戏的具体代码,供大家参考,具体内容如下 1.公共类模块 import pygame from pygame.rect import Rect def pr ...

  10. JS青蛙吃害虫小游戏

    下载地址 JS青蛙吃害虫小游戏是一款简单的HTML5喂青蛙小游戏源码,可以当做微信小程序. dd:

最新文章

  1. 实现盒子动画和键盘特效
  2. 转载:LINQ to SQL更新数据库操作
  3. 解决后退,清空验证码(其它文本框保留)
  4. RabbitMQ入门(四)-Routing(路由)
  5. api zabbix 拓扑图 获取_zabbix网络拓扑图配置-Maps(示例代码)
  6. 移动硬盘无法停止,竟然是TM的原因
  7. CSRF攻击原理与防御方法
  8. 关于SAP的视图类型
  9. 2020年编程现状:Python将成为第一大编程语言,中国开源涨势最猛
  10. Android7.0 PowerManagerService 之亮灭屏(二) PMS 电源状态管理updatePowerStateLocked()...
  11. mysql2008优化_SQL server 2008 数据库优化常用脚本
  12. Jetpack 迁移到 androidX support MD
  13. [转载]基于TFS实践敏捷-工作项跟踪
  14. python解决字符串替换问题
  15. 【数据分析】面经(搬运)
  16. JS05-循环的嵌套demo
  17. vue 图片剪裁插件
  18. linux安装阵列卡驱动程序,Linux系统下如何安装阵列卡驱动?
  19. 快来看,令开发者们头痛的收款到底如何解决?(包括Ironsource,Unity,Applovin等平台)
  20. 苹果慌了,iPhone11全系大降价抢市场

热门文章

  1. 日更100天(53)每天进步一点点
  2. 双时隙的工作原理_双向可控硅的工作原理及原理图
  3. MyQQ:可以在终端里面上的QQ
  4. python循环结构高一信息技术_高一信息技术For循环语句公开课【2019原创资源大赛】...
  5. [转]WebQQ登录过程分析
  6. 安装官方原版win10系统
  7. linux ad7705驱动程序,tm7705_51单机片驱动
  8. 个人练习 —— 使用c#、Winform窗体 编写鼠标连点器(附代码和工具逻辑)
  9. 【嗅探工具】无线WIFI密码破解
  10. 小马哥杂牌机高仿机刷机教程---史上最简单的卡刷方法。adb推送模式自动卡刷教程