欢迎来到天天文库
浏览记录
ID:10831036
大小:3.70 MB
页数:66页
时间:2018-07-08
《三子棋搜索树程序设计报告大学论文.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、计算机科学与技术学院《C高级语言程序设计》课程设计报告(2016/2017学年第1学期)学生姓名:肖磊学生专业:物联网工程学生班级:物联网工程152002学生学号:201520050228指导教师:张荣国2016年 12 月 26 日计算机科学与技术学院课程设计任务书课程设计名称C高级语言程序设计课程设计课程设计题目三子棋搜索算法树的实现学生姓名肖磊专业班级物联网152002学号201520050228课程设计任务内容[问题描述]针对三子棋,应用C语言程序设计的基本理论和方法,从对问题的分析研究开始,到编程
2、调试结束的整个过程进行分析和设计,具体包括以下几点。[基本要求](1)了解程序设计的方法和步骤,对三子棋进行分析研究。(2)系统的工作可以进行:人类走棋功能、电脑走棋、判断两方输赢、棋盘界面函数(选择先后手、选择人人对战、人机对战)、搜索树的实现等。(3)画流程图:将主函数和每个功能模块的函数的流程图分别画出来;(4)编写程序代码,对每个模块实现的功能进行详细的说明,对程序中使用的变量予以说明,对程序中主要语句的功能予以说明;(5)提交课程设计报告。[测试要求](1)设计的程序能够方便地运行,达到设计的目的
3、;(2)用户界面友好,功能明确,操作方便。指导教师:张荣国时间:2016年12月1日目录第1章设计过程总结与分析1.1关于三子棋问题的描述…………………………....….…11.2关于三子棋问题的分析………………………….………11.3程序运行环境…………………………………..……..….1第2章算法设计与流程图2.1主控模块的算法设计与流程图...........................22.2图形界面模块算法设计与流程图.........................42.3人类走棋模块算法设
4、计与流程图.........................52.4判断输赢模块算法设计与流程图.........................52.5电脑走棋模块算法设计与流程图.........................6第3章程序设计编码与测试3.1主控模块程序设计编码与测试...........................123.2图形界面模块程序设计编码与测试......................173.3人类走棋模块程序设计编码与测试......................
5、193.4判断输赢模块程序设计编码与测试......................253.5电脑走棋模块程序设计编码与测试......................28第4章设计过程总结与分析4.1三子棋设计过程中的总结与分析.......................32附录:程序流程图及程序代码5.1程序流程图..............................................335.2程序源码........................................
6、..。.....42第1章设计过程总结与分析1.1关于三子棋问题的描述“三子棋”游戏(又叫“井字棋”),是一款十分经典的益智小游戏,想必很多玩家都有玩过。“三子棋”的棋盘很简单,是一个3×3的格子,很像中国文字中的“井”字,所以得名“井字棋”。“三子棋”游戏的规则与“五子棋”十分类似,“五子棋”的规则是一方首先五子连成一线就胜利;“三子棋”是一方首先三子连成一线就胜利。游戏时一方是电脑,另一方是玩家。所以,这类游戏在开始时有两种方式:一种是玩家先走;另一种是电脑先走。1.2关于三子棋问题的分析这是一道人工智
7、能的题目,关键是找出电脑的思维。而电脑的思维必是一个算法。本题用的蒙特卡洛算法。进行一定次数的随机模拟的下棋,之后选择出最有利的一点为落子点。正是因为电脑有思维,电脑能赢就赢,同时也要干扰玩家赢(力求和局)1.3程序运行环境程序是在vs2013的环境下运行的,并且需要配置ege文件。配置ege文件:1.把ege的include目录下的头文件拷贝到C:ProgramFiles(x86)MicrosoftVisualStudio12.0VCinclude下/2、把ege的libvc2013目录下的链接
8、文件拷贝到C:ProgramFiles(x86)MicrosoftVisualStudio12.0VClib下63第2章算法设计与流程图2.1主控模块算法设计与流程图设计思路:函数首先调用棋盘界面函数face()产生一个棋盘,之后函数继续读取鼠标点击位置的坐标,读取后首先判断坐标在哪一个if—elseif语句内。如果函数进入人人对战,则函数在界面上显示“人人对战开始”;如果函数进入到人机对战中,则在界面出
此文档下载收益归作者所有