C语言程序课程设计:游戏.ppt
《C语言程序课程设计:游戏.ppt》由会员分享,可在线阅读,更多相关《C语言程序课程设计:游戏.ppt(41页珍藏版)》请在三一办公上搜索。
1、第22章 C语言程序课程设计:游戏,前面学习了很多C语言的基础知识,很多读者已经对具体的应用稍有了解,但如何把一些零散的知识点贯穿起来,形式一个完整的项目,是一种技术上的突破。本章就通过几个好玩的游戏案例,从C语言本身的开发过程入手,教读者把前面的知识点再深入掌握一遍。,22.1 黑白棋,本节案例学习一个小游戏:黑白棋。从游戏开发的功能需要求开始,然后让读者知道究竟设计成一个什么样的结果,最后给出开发的代码。,22.1.1 程序功能要求,程序说明:黑白棋也叫苹果棋或翻转棋,它是一款经典的策略性游戏。它使用88的棋盘,分别由两人执黑子和白子轮流下棋,最后子多方为胜方。游戏中只要用自己的两个棋子夹
2、住对方的棋子,便能使对方的棋子全部变色,变成自己的棋子颜色。到一方或双方都无子可下的时候,统计各方得分,保留棋子最多者就是胜者。程序要求:根据黑白棋的规则,编制黑白棋游戏。输出结果:绘制基础黑白棋面板,并能够进行游戏操作。,22.1.2 输入输出样例,黑白棋游戏就是要求在机器上实现黑白棋游戏的功能,程序的输出图示如图22-1所示。,22.1.3 程序分析,参阅黑白棋游戏的规则,可以知道该游戏的核心是:当其中一方的棋子夹住另一方的棋子后,被夹住的棋子要变色,如图22-2所示,变色后如图22-3。被夹住的棋子可以是在水平、垂直、斜线三个方向中的任意一个。为了便于理解本节的程序,下面介绍一些程序中用
3、到的主要功能函数。程序的整体设计思路如图22-4。,22.1.4 程序初始化,程序初始化部分就是运行程序,开始进行黑白棋游戏。同时初始化棋盘标志数组board_flag,此数组为8行8列,记录棋盘每个方格的状态。其值含义如表22-1所示。,22.1.5 初始化图形设备,初始化图形设备就是在屏幕上绘制程序运行的图形界面,图形界面是程序可视化的基础,为此需要调用系统函数initgraph(int far*gdriver,int far*gmode,char far*path)函数初始化图形设备。函数的主要参数如下。*gdriver:图形驱动序号变量指针;*gmode:图形驱动器模式序号变量指针;*
4、pdriver:图形驱动程序所在目录路径;,22.1.6 绘制棋盘,棋盘是进行黑白棋游戏的基础,所有棋子都要在此平台上进行相应的操作,因此绘制88的棋盘要先于其他部分,该部分调用绘图函数,根据坐标绘制网格并进行填充。绘图结果如图22.1中所示,以下是绘制棋盘功能函数的具体实现代码。,22.1.7 交替绘制黑白棋,当黑棋在棋盘中确定落子以后,那么在棋子出现的初始位置应该马上显示白子;同理,当白棋在棋盘中确定落子以后,在棋子出现的初始位置应该马上出现黑子。程序中,棋子出现的初始位置的坐标设为(-1,0)。此时需要注意,棋子在初始位置时,只能往右移动,其他方向都不可移动。显示初始位置棋子和其颜色的函
5、数为show_init(int pat);以下是可以移动的棋子出现在初始位置,交替出现黑白子的功能函数的具体实现代码。参数pat表明了棋子显示的颜色,当pat为0时,棋子为黑色;当pat为1时,棋子为白色。,22.1.8 游戏(同时判断是否有一方胜利),游戏时移动棋子,需注意如下三点:第一,只能在棋盘范围之内;第二,移动到下一棋格后,回复当前棋格被占之前的状态;第三,按Enter键,准备放置棋子时,需要判断当前位置是否符合放置棋子的条件。此部分流程如图22-5所示。,22.1.9 小结,在本节中,按照程序的要求和黑白棋的游戏规则,编制完成了黑白棋游戏。可以看出目前游戏执行后,可以进行双人游戏,
6、已经初步达到了程序设计的目的和要求。但是程序缺少和电脑本身进行游戏的功能,并且游戏界面比较粗糙,需要进行更进一步的细化,有兴趣的读者可以参考图形图像处理章节进行进一步的改进。从本节中,主要是学习简单动绘制的实现、游戏过程的处理等方面编程的思路和方法。,22.2 五子棋,五子棋是很多手机上都带的游戏,是很多人休闲解压的一种方式,本节除介绍五子棋的玩法外,还详细介绍了其开发过程。,22.2.1 程序功能要求,程序说明:五子棋是一款经典的益智类游戏,通常是黑棋先行;五子棋专用盘为1515方格,五个子的连接方向为横、竖、斜,当任一方的五个子在各个方向上连成一线,则该方获胜。程序要求:按照程序说明编写五
7、子棋程序,要求可以进行双人之间的游戏。程序输出:输出棋盘、棋子、并能够进行响应的操作。,22.2.2 输入输出样例,根据程序要求,图22-5所示为程序运行结果。操作键盘,根据键盘左、右、上、下键来移动棋子。,22.2.3 程序分析,可以看出,这个程序依然是算法与图形图像处理的结合。不但要求对程序设计中处理过程算法的掌握,而且更重要的是掌握图形图像处理方面的只是。要成功的设计一款游戏,必须对这两个方面的知识有很深入的了解。程序的整体设计思路如图22-6所示。,22.2.4 主函数程序设计,黑白棋游戏中主要针对两种类型棋子的操作,平台是图形式,因此要首先绘制基础平台,然后在此基础上进行相关的操作。
8、主函数通过调用其他模块来实现各部分功能,以下是程序的具体实现代码。,22.2.5 系统初始化,根据棋盘的格式和要求,通过下列函数来绘制棋盘,绘制基本的图形界面,功能函数的具体实现如下。,22.2.6 移动棋子模块,移动棋子需要注意棋子的一些状态,本节根据开发过程来描述棋子的移动过程。1棋子的初始化2棋子移动及状态3被选择棋子的移动4移动当前棋子,22.2.7 程序胜负判定,程序在运行中要不断判定胜负,以决定程序的运行或结束。以下是判断是否有相同颜色棋子五子连成一线,如果是,返回1,否则返回0的具体实现代码。22.2.8 小结由于程序的设计和上一小节的基本相同,只是在算法结构和控制方面有所差异。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 课程设计 游戏

链接地址:https://www.31ppt.com/p-6504207.html