- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
五子棋人机对战设计任务书
PAGE \* MERGEFORMAT23
五子棋人机对战设计任务书
目录
TOC \o 1-3 \h \z \u HYPERLINK \l _Toc446781703 1. 系统需求分析 PAGEREF _Toc446781703 \h 1
HYPERLINK \l _Toc446781704 2. 总体设计 PAGEREF _Toc446781704 \h 1
HYPERLINK \l _Toc446781705 3. 详细设计 PAGEREF _Toc446781705 \h 2
HYPERLINK \l _Toc446781706 4. 系统调试 PAGEREF _Toc446781706 \h 4
HYPERLINK \l _Toc446781707 5. 使用说明 PAGEREF _Toc446781707 \h 5
HYPERLINK \l _Toc446781708 6. 编程体会 PAGEREF _Toc446781708 \h 6
HYPERLINK \l _Toc446781709 7. 源程序清单 PAGEREF _Toc446781709 \h 7
系统需求分析
五子棋是我国古代传统的黑白棋种之一,又称作连珠棋。五子棋游戏首先需要棋盘,并绘制棋子,若希望人机对战还要为计算机设置一定的算法,以使其能够自动判断落棋的位置,此外,还需要有一定的判断系统来判定胜负,还有悔棋功能。综上,五子棋人机对战游戏需要提供以下功能:
使用图形界面,绘制棋盘,并能够提供虚拟棋盘来作为计算机运算的依据。
判断玩家的落子位置,并相应的画出对应颜色的棋子,判断落子位置时误差要很小。另外,需要记录玩家的落子情况。
通过运算判定电脑的落子位置,如防范玩家连成五子,或进攻使自己连成五子取得胜利,并相应的显示对应颜色的棋子。另外,需要记录电脑的落子情况。
根据规则判断出胜负,先连成五子者获得胜利,并显示出胜利的一方,之后可以按任意键再来一局。
当玩家落棋出现重大失误时,可进行悔棋,清除棋子。
总体设计
五子棋人机对战游戏包括四个方面的功能,分别是绘制棋盘和棋子等图形化显示功能,获取玩家落子功能,计算并判断得到电脑落子位置的功能以及判断胜负的功能。
图形化显示功能方面,运用easyx图形库进行图形的绘制,可以进行背景色的设置,线条的绘制,文字的显示和字体的设置。通过initgraph初始化界面,设置坐标,用setbkcolor函数设置背景色,用settextcolor函数设置文本颜色,用settextstyle函数设置文本字体,用outtextxy函数显示文字,用line和fillcircle函数进行棋盘的绘制,用fillcircle函数进行棋子的绘制。通过HWND句柄可以弹出选项框。建立二维数组作为虚拟棋盘。
玩家落子方面,首先需要判断鼠标所点击的位置,然后需要在链表上建立新的节点,在虚拟棋盘上设置玩家落子,并在棋盘上绘制出玩家的棋子。
电脑落子方面,需要遍历所有位置,分别对玩家在该处落子和电脑在该处落子进行评分,找出玩家或电脑落子评分最高的位置作为落子的位置,在虚拟棋盘上落子,并在棋盘上绘制出电脑的棋子。
判定胜负功能方面,在玩家及电脑每次落子之后,都通过调用判定函数来判断某一方是否连成五子,若一方胜利,显示游戏结果,跳出当前棋局的循环,并按任意键重新布置棋盘,开始新的一局。
悔棋方面,需要沿着链表的结构进行前一步棋子的清除。
设置棋盘模块
显示界面,绘制棋盘,设置虚拟棋盘
五子棋人机对战游戏
判断模块
判断某一方是否连成五子,显示结果
电脑落子模块
判定最佳落子处,建立链表新节点
玩家落子模块
玩家落子捕捉,建立链表的新节点
悔棋模块
清除原棋子
五子棋游戏中的功能模块图:
详细设计
chessboard(棋盘类)
piece(棋子类)
piece_player
piece_computer
player_list
computer_list
五子棋人机对战程序中的类的层次图为:
五子棋人机对战游戏中各功能模块的实现:
开始界面
布置棋盘
玩家落子
电脑落子
判定胜负
悔棋
布置棋盘功能
绘制15*15棋盘
设置虚拟棋盘
1.布置棋盘模块
玩家落子功能
捕捉鼠标信息
建立新的链表节点
设置与绘制棋子
2.玩家落子模块
3.电脑落子模块
电脑落子功能
运算判断最佳落子位置
建立新的链表节点
设置与绘制棋子
4.判定胜负模块
判定胜负功能
判定是否连为五子
显示结果,清空缓存,跳出循环
5.悔棋模块
悔棋功能
清除玩家棋子
清除电脑棋子
五子棋人机对战游戏中六个类的UML图:
chessboard(棋盘类)
文档评论(0)