欢迎来到天天文库
浏览记录
ID:36709904
大小:230.00 KB
页数:41页
时间:2019-05-10
《C语言程序课程设计:游戏》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第22章C语言程序课程设计:游戏前面学习了很多C语言的基础知识,很多读者已经对具体的应用稍有了解,但如何把一些零散的知识点贯穿起来,形式一个完整的项目,是一种技术上的突破。本章就通过几个好玩的游戏案例,从C语言本身的开发过程入手,教读者把前面的知识点再深入掌握一遍。22.1黑白棋本节案例学习一个小游戏:黑白棋。从游戏开发的功能需要求开始,然后让读者知道究竟设计成一个什么样的结果,最后给出开发的代码。22.1.1程序功能要求程序说明:黑白棋也叫苹果棋或翻转棋,它是一款经典的策略性游戏。它使用8×8的棋盘,分别由两人执黑子和白子轮流下棋,最后子
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(intfar*gdriver,intfar*gmode,charfar*path)函数初
4、始化图形设备。函数的主要参数如下。*gdriver:图形驱动序号变量指针;*gmode:图形驱动器模式序号变量指针;*pdriver:图形驱动程序所在目录路径;22.1.6绘制棋盘棋盘是进行黑白棋游戏的基础,所有棋子都要在此平台上进行相应的操作,因此绘制8×8的棋盘要先于其他部分,该部分调用绘图函数,根据坐标绘制网格并进行填充。绘图结果如图22.1中所示,以下是绘制棋盘功能函数的具体实现代码。22.1.7交替绘制黑白棋当黑棋在棋盘中确定落子以后,那么在棋子出现的初始位置应该马上显示白子;同理,当白棋在棋盘中确定落子以后,在棋子出现的初始位置
5、应该马上出现黑子。程序中,棋子出现的初始位置的坐标设为(-1,0)。此时需要注意,棋子在初始位置时,只能往右移动,其他方向都不可移动。显示初始位置棋子和其颜色的函数为show_init(intpat);以下是可以移动的棋子出现在初始位置,交替出现黑白子的功能函数的具体实现代码。参数pat表明了棋子显示的颜色,当pat为0时,棋子为黑色;当pat为1时,棋子为白色。22.1.8游戏(同时判断是否有一方胜利)游戏时移动棋子,需注意如下三点:第一,只能在棋盘范围之内;第二,移动到下一棋格后,回复当前棋格被占之前的状态;第三,按Enter键,准备放
6、置棋子时,需要判断当前位置是否符合放置棋子的条件。此部分流程如图22-5所示。22.1.9小结在本节中,按照程序的要求和黑白棋的游戏规则,编制完成了黑白棋游戏。可以看出目前游戏执行后,可以进行双人游戏,已经初步达到了程序设计的目的和要求。但是程序缺少和电脑本身进行游戏的功能,并且游戏界面比较粗糙,需要进行更进一步的细化,有兴趣的读者可以参考图形图像处理章节进行进一步的改进。从本节中,主要是学习简单动绘制的实现、游戏过程的处理等方面编程的思路和方法。22.2五子棋五子棋是很多手机上都带的游戏,是很多人休闲解压的一种方式,本节除介绍五子棋的玩法
7、外,还详细介绍了其开发过程。22.2.1程序功能要求程序说明:五子棋是一款经典的益智类游戏,通常是黑棋先行;五子棋专用盘为15×15方格,五个子的连接方向为横、竖、斜,当任一方的五个子在各个方向上连成一线,则该方获胜。程序要求:按照程序说明编写五子棋程序,要求可以进行双人之间的游戏。程序输出:输出棋盘、棋子、并能够进行响应的操作。22.2.2输入输出样例根据程序要求,图22-5所示为程序运行结果。操作键盘,根据键盘左、右、上、下键来移动棋子。22.2.3程序分析可以看出,这个程序依然是算法与图形图像处理的结合。不但要求对程序设计中处理过程算
8、法的掌握,而且更重要的是掌握图形图像处理方面的只是。要成功的设计一款游戏,必须对这两个方面的知识有很深入的了解。程序的整体设计思路如图22-6所示。22.2.4主函数程序设计黑白
此文档下载收益归作者所有