C语言实现一字棋游戏

C语言实现一字棋游戏

ID:47503800

大小:50.50 KB

页数:7页

时间:2020-01-12

C语言实现一字棋游戏_第1页
C语言实现一字棋游戏_第2页
C语言实现一字棋游戏_第3页
C语言实现一字棋游戏_第4页
C语言实现一字棋游戏_第5页
资源描述:

《C语言实现一字棋游戏》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.实验5编程实现一字棋游戏1实验目的:(1)理解和掌握博弈树的启发式搜索过程;(2)熟悉博弈中两种最基本的搜索方法——极大极小过程和过程;(3)能够用VC编程语言设计简单的博弈游戏。2实验要求:用VC编程实现一字棋,根据实验结果写出总结。3实验结果分析:参考示例代码:#include"StdAfx.h"#include#include#include#include#includeusingnamespacestd;#defineMAX_NUM1000//计算

2、机获胜的标志#defineNO_BLANK-1001//人获胜的标志#defineTREE_DEPTH3//递归深度#defineNIL1001//根节点的函数走步评估值classState//棋盘状态节点,一个State实例就是一个棋盘的状态节点,从而形成一颗树状结构{public:intQP[3][3];//当前棋盘数组inte_fun;//评分结果intchild[9];//当前棋盘状态下的后一步的所有状态节点intparent;//当前棋盘状态下的父母节点下标word教育资料.intbestChild;//在child[9]里e_fun最优

3、的节点下标};classTic{public:inttmpQP[3][3];//用于3层递归的临时棋盘staticints_count;//叶子节点的静态总数StateStates[MAX_NUM];//棋盘状态节点数组Tic(){}voidinit()//初始化棋盘,将各个位置的棋盘都置为0{s_count=0;for(inti=0;i<3;i++)for(intj=0;j<3;j++){States[0].QP[i][j]=0;}States[0].parent=NIL;}voidPrintQP()//棋盘界面显示{for(inti=0;i<3

4、;i++){for(intj=0;j<3;j++){cout<

5、s.QP[0][i]==1&&s.QP[1][i]==1&&s.QP[2][i]==1)return1;if(s.QP[0][i]==-1&&s.QP[1][i]==-1&&s.QP[2][i]==-1)return-1;}if((s.QP[0][0]==1&&s.QP[1][1]==1&&s.QP[2][2]==1)

6、

7、(s.QP[2][0]==1&&s.QP[1][1]==1&&s.QP[0][2]==1))return1;if((s.QP[0][0]==-1&&s.QP[1][1]==-1&&s.QP[2][2]==-1)

8、

9、(s.QP[2]

10、[0]==-1&&s.QP[1][1]==-1&&s.QP[0][2]==-1))return-1;return0;}inte_fun(States)//机器智能判定评价函数{boolflag=true;inti=0;for(i=0;i<3;i++)for(intj=0;j<3;j++)if(s.QP[i][j]==0)flag=false;if(flag)returnNO_BLANK;if(IsWin(s)==-1)return-MAX_NUM;if(IsWin(s)==1)returnMAX_NUM;intcount=0;for(i=0;i<3

11、;i++)for(intj=0;j<3;j++)if(s.QP[i][j]==0)tmpQP[i][j]=1;elsetmpQP[i][j]=s.QP[i][j];for(i=0;i<3;i++)count+=(tmpQP[i][0]+tmpQP[i][1]+tmpQP[i][2])/3;for(i=0;i<3;i++)count+=(tmpQP[0][i]+tmpQP[1][i]+tmpQP[2][i])/3;count+=(tmpQP[0][0]+tmpQP[1][1]+tmpQP[2][2])/3;count+=(tmpQP[2][0]+tm

12、pQP[1][1]+tmpQP[0][2])/3;for(i=0;i<3;i++)for(intj=0;j<3;j++)i

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

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

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