usingnamespacestd;voidcheck(inti,intj); //检查每条直线上的各方棋子的数量intother(intb,intc);"> usingnamespacestd;voidcheck(inti,intj); //检查每条直线上的各方棋子的数量intother(intb,intc);" />
欢迎来到天天文库
浏览记录
ID:55118690
大小:31.00 KB
页数:7页
时间:2020-04-27
《C语言编写的与电脑下棋程序代码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include"stdafx.h"#includeusingnamespacestd;voidcheck(inti,intj); //检查每条直线上的各方棋子的数量intother(intb,intc);voidcheck_win(); //检查是否胜利voidbegin(charch);voidcomputer(); //电脑下棋voiduser(); //用户下棋inta[4][4],deep;intline[3][3][2];
2、 //全局变量,用来存放每条直线上的各方棋子数! //第一维下标表示是行列还是对角线,第二维下标表示第几条直线 //第三维下标表示各方的棋子数!voidmain(){ charch; cout<<"欢迎与本机下#字棋!您的棋子将用#表示,电脑的棋子用X表示请选择先后手,输入u则您先手,输入c则电脑先手!(小写)"<>ch; if(ch!='u'&&ch!='c')
3、 cout<<"您输入的数据不合法,请重新输入!"<4、25、3 —————— 46、57、6 —————— 78、9、810、9"<11、; deep=0; if(ch=='u')user(); elsecomputer();}voidcomputer(){ inti,j,flag=0,m; //flag判断是否落子 for(i=0;i<3;i++) for(j=0;j<3;j++) { if(line[i][j][0]==2&&line[i][j][1]==0&&flag==0) { m=other(i,j); if(m%3==0){a[m/3][12、3]=40;check(m/3,3);} else {a[m/3+1][m%3]=40; check(m/3+1,m%3);} //40是#的ASCII码减48 flag=1; } //当某条直线上用户有两棋子而我方无棋子时,在该直线的另一点落子 if(line[i][j][1]==2&&line[i][j][0]==0&&flag==0) { 13、 m=other(i,j); if(m%3==0){a[m/3][3]=40;check(m/3,3);} else {a[m/3+1][m%3]=40; check(m/3+1,m%3);} //当某条直线上我方有两棋子而对方无棋子时,在该直线的另一点落子 flag=1; } if(line[i][j][1]==1&&line[i][j][0]==0&&flag==0) { 14、 m=other(i,j); if(m%3==0){a[m/3][3]=40;check(m/3,3);} else {a[m/3+1][m%3]=40;
4、2
5、3 —————— 4
6、5
7、6 —————— 7
8、
9、8
10、9"<11、; deep=0; if(ch=='u')user(); elsecomputer();}voidcomputer(){ inti,j,flag=0,m; //flag判断是否落子 for(i=0;i<3;i++) for(j=0;j<3;j++) { if(line[i][j][0]==2&&line[i][j][1]==0&&flag==0) { m=other(i,j); if(m%3==0){a[m/3][12、3]=40;check(m/3,3);} else {a[m/3+1][m%3]=40; check(m/3+1,m%3);} //40是#的ASCII码减48 flag=1; } //当某条直线上用户有两棋子而我方无棋子时,在该直线的另一点落子 if(line[i][j][1]==2&&line[i][j][0]==0&&flag==0) { 13、 m=other(i,j); if(m%3==0){a[m/3][3]=40;check(m/3,3);} else {a[m/3+1][m%3]=40; check(m/3+1,m%3);} //当某条直线上我方有两棋子而对方无棋子时,在该直线的另一点落子 flag=1; } if(line[i][j][1]==1&&line[i][j][0]==0&&flag==0) { 14、 m=other(i,j); if(m%3==0){a[m/3][3]=40;check(m/3,3);} else {a[m/3+1][m%3]=40;
11、; deep=0; if(ch=='u')user(); elsecomputer();}voidcomputer(){ inti,j,flag=0,m; //flag判断是否落子 for(i=0;i<3;i++) for(j=0;j<3;j++) { if(line[i][j][0]==2&&line[i][j][1]==0&&flag==0) { m=other(i,j); if(m%3==0){a[m/3][
12、3]=40;check(m/3,3);} else {a[m/3+1][m%3]=40; check(m/3+1,m%3);} //40是#的ASCII码减48 flag=1; } //当某条直线上用户有两棋子而我方无棋子时,在该直线的另一点落子 if(line[i][j][1]==2&&line[i][j][0]==0&&flag==0) {
13、 m=other(i,j); if(m%3==0){a[m/3][3]=40;check(m/3,3);} else {a[m/3+1][m%3]=40; check(m/3+1,m%3);} //当某条直线上我方有两棋子而对方无棋子时,在该直线的另一点落子 flag=1; } if(line[i][j][1]==1&&line[i][j][0]==0&&flag==0) {
14、 m=other(i,j); if(m%3==0){a[m/3][3]=40;check(m/3,3);} else {a[m/3+1][m%3]=40;
此文档下载收益归作者所有