基于C#的Windows控制台的吃豆豆小游戏

本文详细介绍了在Windows控制台下开发的一款吃豆豆小游戏,包括游戏概述、主要类的设计、功能特点、代码实现的亮点以及遇到的问题和解决方案。游戏支持自定义地图编辑、难度选择、怪兽追踪、历史记录回放等功能,同时具备用户友好的UI界面,如吃到超级豆子后的彩色闪烁效果和进度条显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录
控制台小游戏——吃豆豆 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);
			}
		}
	}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值