- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《软件技术基础》课程设计
《软件技术基础》课程设计
项目名称: 用C语言编写的五子棋游戏软件
班 级: 信息学院2001级电子信息工程
学 号: XXX(2001714XXX)
XXX(2001714XXX)
XXX(2001714XXX)
XXX(2001714XXX)
XXX(2001714XXX)
完成时间: 2004年2月24日
指导教师: XXX
日期: 2004 年 2 月 24日
C语言编写的一个五子棋游戏程序(课程设计 综合编程)
课程设计的目的:
运用所学的C语言基础编程知识,编写一个由简单向复杂过渡的软件,从中了解到开发一个实用软件的基本常识和一般步骤;使所学的理论性知识向应用型转变。一句话,就是学有所用。
课程设计的要求:
不仅需要熟练掌握C语言的编程程序方法,而且要深知相应的计算机硬件知识,使用计算机寄存器进行数据操作,熟悉宏定义以及相应的编程技巧。
课程设计的步骤:
一 确定软件的功能
二 定义核心数据结构
三 对整个软件功能模块进行划分
四 编写程序实现各功能模块
五 对源程序进行编译,调试,形成软件产品
程序的功能分析:
本程序是提供两人对战的五子棋,不需要人机对战功能,两个玩家交替在五子棋盘上交替下棋子,当其中一位玩家的棋子布局有形成五子相连时,程序编判断他赢棋.
定义核心数据结构:
五子棋需要一个19X19的棋盘,因此要定义一个19X19的二维数组gChessboard来记录棋盘的状态,数组中每个元素代表棋盘上的每个交点,比如gChessboard[0][0]代表棋盘的左上角,gChessboard[0][19]代表棋盘的右上角,gChessboard[19][0]代表棋盘的左下角,gChessboard[19][19]代表棋盘的右下角.在棋盘中每个交点有三种状态,即有黑棋占据,白棋占据和无棋占据.因此,数组中定义的每个元素要反映三种状态,在程序中定义0时是表示无棋占据,O表示玩家1的棋子(黑子)占据,X表示玩家2的棋子(白子)占据.在程序中用当前光标移动来确定玩家的落子,因此要定义一个数据结构来记录光标的位置,在程序中定义了一个结构类型struck point它的两个整型成员X和Y分别用于记录光标位于棋盘的行和列的坐标值.
程序结构:
Init()初始化
GetKey()获取用户按键 ChessKey()分析按键类型 CheckKey()判断按键类型
main()函数 调用函数ChessGo来执行落子命令 调用函数JudgeWin来判断当前玩家是否赢棋
在初始化图象部分调用了函数DrawMap 调用DrawCross()来画棋盘上的交叉点
bioskey(),textmode(),clrscr(),putch(),cputs(),
程序用的库函数: gotoxy(),textcolor(),delay(),sound(),nosound().
程序的功能模块划分:
程序要根据用户的按键来决定执行什么操作,因此要有一个专门的接收按键模块来接收和处理用户的输入,这个模块被循环调用,直到分出胜负或用户按下退出键.
初始化如图所示:
初始化
玩游戏循环
接收按键
接收按键
光标移动键 无效按键 退出
落子键
退出忽略处理落子和判断胜负
退出
忽略处理
落子和判断胜负
程序编译环境:Tubor C编译器
运行环境:Windows 95/98/2000/
原创力文档


文档评论(0)