人工智能_井字棋的实现.doc

人工智能_井字棋的实现.doc

ID:48871729

大小:57.75 KB

页数:26页

时间:2020-02-03

人工智能_井字棋的实现.doc_第1页
人工智能_井字棋的实现.doc_第2页
人工智能_井字棋的实现.doc_第3页
人工智能_井字棋的实现.doc_第4页
人工智能_井字棋的实现.doc_第5页
资源描述:

《人工智能_井字棋的实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、下载可编辑人工智能井字棋的实现学院:信息工程学院教师:罗会兰专业:计算机应用技术学号:6120160166姓名:王硕豪.专业.整理.下载可编辑简介2016年3月9日,李世石与AlphaGo的人机大战开始。这将成为写入人类史册的一天。计算机AI可以在围棋上战胜人类顶尖棋手的时代已经到来。两个月之后,美国白宫就推动成立了机器学习与人工智能分委会,由其主持和协调撰写了三个关于人工智能发展的报告:《为人工智能的未来做好准备》《国家人工智能研究和发展战略计划》和《人工智能、自动化与经济报告》。欧盟、英国和日本等也相继发布了研发和应用人工智能的报告。显然

2、,中国应当参与到这种战略布局当中,这种布局不仅是国家和民族的需要,而且也是赢得未来的利器。再厉害的程序员,也是从“helloworld”程序开始写起。再“聪明”的机器,也是从零样本开始“训练”出来的。所以今天就来写一个最简单棋类游戏:TicTacToe,又叫井字棋,大陆、台湾又称为井字游戏、圈圈叉叉;另外也有打井游戏、OX棋的称呼,香港多称井字过三关、过三关,是种纸笔游戏。大致说下井字棋的规则:1.棋盘为3*3共9格,类似汉字“井”;2.一方为o,一方为x,轮流落子;3.任一方先有连成一条线的3个棋子(横、竖、斜皆可)则为胜利;4.棋盘摆满仍

3、没有一方胜利,则为平局。.专业.整理.下载可编辑这种游戏实际上是由第一位玩家所控制,第一位玩家是攻,第二位玩家是守。第一位玩家在角位行第一子的话赢面最大(见图一),第二位玩家若是在边,角位下子,第一位玩家就可以以两粒连线牵制着第二位玩家,然后制造“两头蛇”。图一运行开始的时候,会让你输入你的名字,我则输入我名字的缩写wsh;.专业.整理.下载可编辑接下来,由我们来选择是先下还是后下,1是先下,2是后下;我们的符号是X,电脑的是O,由于我们选择了先下,我们在3*3的棋盘上先下在第2行第2列;电脑则下在了第1行第1列,再次由我们决定,如果我们下在

4、了已经有棋子的位置上则会提示你已经下过了;我们决定下在第1行第3列,电脑则下在第3行第1列,我们需要注意到如果电脑再下到第2行第1列就获得胜利,所以我们需要防守.专业.整理.下载可编辑我们为了防守下在了第2行第1列,电脑又下在了第2行第3列,这时候其实我们可以注意到如果想要胜利只有将第2列连成直线一种方法了;我们下在了第1行第2列,电脑下在了第3行第2列,这时候已经可以看出是个平局了;.专业.整理.下载可编辑我们把最后一个位置填上,电脑告诉我们这是一个平局,是否还想要再玩;输入y,电脑让我们再次选择先后手,大家就可以根据自己的想法来试着战胜电

5、脑了。如果失败了,也会询问你是否再次挑战,如果输入n则会直接跳出;代码实现.专业.整理.下载可编辑棋盘本身的数据,用inta[3][3]来表示,棋盘中0表示空,1表示我们下的,其余的则是电脑下的;voidprint(){inti,j;cout<<"";for(i=0;i<3;i++){for(j=0;j<3;j++){if(a[i][j]==0)cout<<".t";elseif(a[i][j]==1)cout<<"Xt";elsecout<<"Ot";}cout<

6、.专业.整理.下载可编辑intcheck(){for(inti=0;i<3;i++)if((a[i][0]!=0&&a[i][0]==a[i][1]&&a[i][1]==a[i][2])

7、

8、(a[0][i]!=0&&a[0][i]==a[1][i]&&a[1][i]==a[2][i]))return1;if(a[0][0]!=0&&a[0][0]==a[1][1]&&a[1][1]==a[2][2])return1;elseif(a[0][2]!=0&&a[0][2]==a[1][1]&&a[1][1]==a[2][0])return1;el

9、sereturn0;}我们下棋的时候,下第几行第几列,如果输入大于2或者小于0提示输入正确的数字,如果下的位置已经被下过了提示这里已经被下过了;voidpin(){intr=0,c=0;cout<<"Enterrow:";cin>>r;cout<<"Entercolumn:";.专业.整理.下载可编辑cin>>c;r--;c--;if(r>2

10、

11、c>2

12、

13、r<0

14、

15、c<0){strcpy(str,"Entercorrectvalue");strcat(str,name);strcat(str,".");puts(str);pin();}e

16、lseif(a[r][c]!=0){cout<<"Itisalreadyfilled.";pin();}elsea[r][c]=t;}电脑的防守策略,即我们选择

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。