永发信息网

求一五子棋人工对战的程序

答案:2  悬赏:60  手机版
解决时间 2021-06-05 10:03

要源码

能编译执行 没error的

直接QQ发我也行

C C++ JAVA 3种语言选一

谢了

好的答案追加分

最佳答案

我有这个项目的源码,可以运行,功能很齐全,相当不错。加我5053063 我发给你

全部回答
log=0; for(k=i+1;Table[k][j]==1&&k<16;k++) log++; if(k==16) log-=0.5; else if(Table[k][j]==2) log-=0.5; for(k=i-1;Table[k][j]==1&&k>=0;k--) log++; if(k==-1) log-=0.5; else if(Table[k][j]==2) log-=0.5; Player[i][j][1]=log;

log=0; for(k=i-1,t=j-1;Table[k][t]==1&&k>=0&&t>=0;k--,t--) log++; if(k==-1||t==-1) log-=0.5; else if(Table[k][t]==2) log-=0.5; for(k=i+1,t=j+1;Table[k][t]==1&&k<16&&t<16;k++,t++) log++; if(k==16||t==16) log-=0.5; else if(Table[k][t]==2) log-=0.5; Player[i][j][2]=log; log=0; for(k=i-1,t=j+1;Table[k][t]==1&&k>=0&&t<16;k--,t++) log++; if(k==-1||t==16) log-=0.5; else if(Table[k][t]==2) log-=0.5; for(k=i+1,t=j-1;Table[k][t]==1&&t>=0&&k<16;k++,t--) log++; if(k==16||t==-1) log-=0.5; else if(Table[k][t]==2) log-=0.5; Player[i][j][3]=log; } } log=0; for(int i=0;i<16;i++) for(int j=0;j<16;j++) { if(Table[i][j]==0) for(int k=0;k<4;k++) { if(Computer[i][j][k]>=log) { log=Computer[i][j][k]; cx=i; cy=j; } } } for(int i=0;i<16;i++) for(int j=0;j<16;j++) { if(Table[i][j]==0) for(int k=0;k<4;k++) if(Player[i][j][k]>=2.5) if(Player[i][j][k]>=log) { log=Player[i][j][k]; cx=i; cy=j; } else if(Player[i][j][k]>log) { log=Player[i][j][k]; cx=i; cy=j; } } } if(Flag==8) { for(int i=0;i<16;i++) for(int j=0;j<16;j++) { if(Table[i][j]==0) { int k,t; log=0; for(k=j+1;Table[i][k]==2&&k<16;k++) log++; for(k=j-1;Table[i][k]==2&&k>=0;k--) log++; Computer[i][j][0]=log; for(k=i+1;Table[k][j]==2&&k<16;k++) log++; for(k=i-1;Table[k][j]==2&&k>=0;k--) log++; Computer[i][j][1]=log; log=0; for(k=i-1,t=j-1;Table[k][t]==2&&k>=0&&t>=0;k--,t--) log++; for(k=i+1,t=j+1;Table[k][t]==2&&k<16&&t<16;k++,t++) log++; Computer[i][j][2]=log; log=0; for(k=i-1,t=j+1;Table[k][t]==2&&k>=0&&t<16;k--,t++) log++; for(k=i+1,t=j-1;Table[k][t]==2&&t>=0&&k<16;k++,t--) log++; Computer[i][j][3]=log; log=0; for(k=j+1;Table[i][k]==1&&k<16;k++) log++; for(k=j-1;Table[i][k]==1&&k>=0;k--) log++; Player[i][j][0]=log; log=0; for(k=i+1;Table[k][j]==1&&k<16;k++) log++; for(k=i-1;Table[k][j]==1&&k>=0;k--) log++; Player[i][j][1]=log; log=0; for(k=i-1,t=j-1;Table[k][t]==1&&k>=0&&t>=0;k--,t--) log++; for(k=i+1,t=j+1;Table[k][t]==1&&k<16&&t<16;k++,t++) log++; Player[i][j][2]=log; log=0; for(k=i-1,t=j+1;Table[k][t]==1&&k>=0&&t<16;k--,t++) log++; for(k=i+1,t=j-1;Table[k][t]==1&&t>=0&&k<16;k++,t--) log++; Player[i][j][3]=log; } } log=0; for(int i=0;i<16;i++) for(int j=0;j<16;j++) { if(Table[i][j]==0) for(int k=0;k<4;k++) if(Computer[i][j][k]>log) { log=Computer[i][j][k]; cx=i; cy=j; } } for(int i=0;i<16;i++) for(int j=0;j<16;j++) { if(Table[i][j]==0) for(int k=0;k<4;k++) if(Player[i][j][k]>=log) { log=Player[i][j][k]; cx=i; cy=j; } } } map[cx][cy][0]=-95; map[cx][cy][1]=-16; //system("PAUSE"); Showboard(); cout << "Your turns:(Good luck!)"; Table[cx][cy]=2; flag=1; x=cx; y=cy; if(judgewin()) return 2; if(deuce()) return 3; return 1; } int unitboard() { for(int i=0;i<16;i++) for(int j=0;j<16;j++) { map[i][j][0]=copymap[i][j][0]; map[i][j][1]=copymap[i][j][1]; } return 1; } int judgewin() { int cx,cy,dx,dy; char a0=-95; char a1=-16; if(flag==0) { a1=-15; } cx=x;cy=y;dx=x;dy=y; while(map[cx][cy][0]==a0&&map[cx][cy][1]==a1) { cx--;cy--; if(cx<0||cy<0) break; } while(map[dx][dy][0]==a0&&map[dx][dy][1]==a1) { dx++;dy++; if(dx>15||dy>15) break; } if(dx>=(cx+6)||dy>=(cy+6)) return 1; cx=x;cy=y;dx=x;dy=y; while(map[cx][cy][0]==a0&&map[cx][cy][1]==a1) { cx--; if(cx<0) break; } while(map[dx][dy][0]==a0&&map[dx][dy][1]==a1) { dx++; if(dx>15) break; } if(dx>=(cx+6)) return 1; cx=x;cy=y;dx=x;dy=y; while(map[cx][cy][0]==a0&&map[cx][cy][1]==a1) { cy--; if(cy<0) break; } while(map[dx][dy][0]==a0&&map[dx][dy][1]==a1) { dy++; if(dy>15) break; } if(dy>=(cy+6)) return 1; cx=x;cy=y;dx=x;dy=y; while(map[cx][cy][0]==a0&&map[cx][cy][1]==a1) { cx++;cy--; if(cx>15||cy<0) break; } while(map[dx][dy][0]==a0&&map[dx][dy][1]==a1) { dx--;dy++; if(dx<0||dy>15) break; } if(cx>=(dx+6)||dy>=(cy+6)) return 1; return 0; } int Showboard() { system("CLS"); cout << " "; for(int s=1;s<=16;s++) { if(s>=10) cout << s-10 << " "; else cout << s << " "; } cout << endl; for(int i=0;i<16;i++) { printf("%2d",i+1); for(int j=0;j<16;j++) cout << map[i][j]; if(i==6) cout << "退出:输入: 0 0 "; if(i==8) cout << "步数(Step):" << Step; if(i==10) cout << "版本信息:1.0.0。"; if(i==12) cout << "制作人:Caizhicong。"; if(i==14) cout << "请输入棋子的纵坐标、横坐标下子!" ; cout << endl; } return(1); } bool legal() { if((map[x-1][y-1][0]==-95&&map[x-1][y-1][1]==-16)||(map[x-1][y-1][0]==-95&&map[x-1][y-1][1]==-15)) return 0; else return 1; } bool Overflow() { if(x>16||x<1||y>16||y<1) { cout << "It is imlegal!Please Reenter:\n(此位置不合法!请重新输入:)"; return 1; } else return 0; } int Play() {//人人对战 Showboard(); cout << "白方下:"; while(cin >> x >> y) { if(x==0&&y==0) { Recoverboard(); Interface(); break; } if(Overflow()) continue; if(legal()) { x--;y--; map[x][y][0]=-95; if(flag==1) { map[x][y][1]=-16; Step++; Showboard(); if(judgewin()) { cout << "\n黑方胜利了!\n" ; cout << "Game over! ---Again?(y/n)"; cin >> Switch; if(Switch!='n') { unitboard(); Play(); } else return 1; } cout << "黑方下:"; flag=0; } else { map[x][y][1]=-15; Step++; Showboard(); if(judgewin()) { cout << "\n白方胜利了!" << endl; cout << "Game over! ---Again?(y/n)"; cin >> Switch; if(Switch!='n') { unitboard(); Play(); } else return 1; } cout << "白方下:"; flag=1; } } else { cout << "It already have a chessman!Please Reenter:\n此位置已有子!请重新输入:"; } } } int main() { CopyB(); Interface(); }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我的口口邮箱打不开拉求你帮帮我吧
郾城区昆仑好客(漯河市郾城区农林局东)地址有
兄弟姐妹间为什么要友爱?
台服魔兽现在能申请帐号和建立人物么
怎样把3.0的空间版式转换成低版式?
你喜欢用马桶如厕吗?
未来谁知道
油性过敏皮肤起痘怎么办啊
西安区牡丹江利民开锁店我想知道这个在什么地
什么叫高清电影??他的分辨率要多高才算??有什
用什么脸油比较好
怎样提高创新思维能力
出车祸,并没外伤,做CT时应重点检查脑部\
用C++编程,怎样实现删除一个文件?
邵阳县邵阳中国移动(双虎代理店)地址在什么地
推荐资讯
无限上网的U盘连接不到电脑了上?
饮水机能把开水烧到多少度?
关于同学的不对行为
双核独显。2G内存320G硬盘19宽屏液晶 3000块
在佛前供水果、蜡柱、水、香的顺序应是
十一届全运会开幕式上唱李清照词的是谁?旋律
DNF找人带升级,奖Q币
舟山在哪个省
QQ堂中家族票什么意思啊
巴东县恩施生命人寿保险股份有限公司(营沱路)
岳麓区长沙湖南传媒产业研究中心地址是什么,
我这个显卡能玩战地之王吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?