diff --git a/938.cpp b/938.cpp new file mode 100644 index 0000000..7754c5d --- /dev/null +++ b/938.cpp @@ -0,0 +1,362 @@ +#include +#include +int store[][3]={'_','_','_','_','_','_','_','_','_'},i,j,k,flag=1; +void print_map() +{ + char boundary='|'; + getchar(); + system("cls"); + for(i=0;i<3;i++) + + { + for(j=0;j<3;j++) + { + printf("%c%c",boundary,store[i][j]); + if(j==2) + { + putchar(boundary); + putchar('\n'); + } + + } + } +} +int judge_win(int f=0) +{ + if(store[0][0]+store[0][1]+store[0][2]==3*'X'||store[1][0]+store[1][1]+store[1][2]==3*'X' + ||store[2][0]+store[2][1]+store[2][2]==3*'X'||store[0][0]+store[1][1]+store[2][2]==3*'X' + ||store[2][0]+store[1][1]+store[0][2]==3*'X'||store[0][0]+store[1][0]+store[2][0]==3*'X' + ||store[0][1]+store[1][1]+store[2][1]==3*'X'||store[0][2]+store[1][2]+store[2][2]==3*'X') + return 1; + else if(store[0][0]+store[0][1]+store[0][2]==3*'O'||store[1][0]+store[1][1]+store[1][2]==3*'O' + ||store[2][0]+store[2][1]+store[2][2]==3*'O'||store[0][0]+store[1][1]+store[2][2]==3*'O' + ||store[2][0]+store[1][1]+store[0][2]==3*'O'||store[0][0]+store[1][0]+store[2][0]==3*'O' + ||store[0][1]+store[1][1]+store[2][1]==3*'O'||store[0][2]+store[1][2]+store[2][2]==3*'O') + return -1; + return f; +} +void judge_final(int i) +{ + if(i==0) + printf("平局"); + else if(i==1) + printf("VICTORY"); + else if(i==-1) + printf("FILE") ; +} +int number_mend(int x) +{ + switch(x) + { + case 1:x=3;break; + case 3:x=1;break; + default:; + } + return x; +} +void Computer() +{ + + int sum,t=0,score[3][3]; + for(i=0;i<3;i++) + for(j=0;j<3;j++) + score[i][j]=0; + for(i=0;i<3;i++) + { + for(j=0;j<3;j++) + t+=store[i][j]; + if(t==2*'O'+'_') + sum=5; + else if(t=='O'+2*'_') + sum=3; + else if(t=='X'+2*'_') + sum=2; + else if(t==3*'_') + sum=1; + else if(t==2*'X'+'_') + sum=6; + else if(t=='X'+'O'+'_') + sum=4; + switch(sum) + { + case 1: + for(k=0;k<3;k++) + { + if(store[i][k]=='_') + score[i][k]+=1; + } + break; + case 2: + for(k=0;k<3;k++) + { + if(store[i][k]=='_') + score[i][k]+=10; + } + break; + case 3: + for(k=0;k<3;k++) + { + if(store[i][k]=='_') + score[i][k]+=50; + } + break; + case 4: + for(k=0;k<3;k++) + { + if(store[i][k]=='_') + score[i][k]+=200; + } + break; + case 5: + for(k=0;k<3;k++) + { + if(store[i][k]=='_') + score[i][k]+=500; + } + break; + case 6: + for(k=0;k<3;k++) + { + if(store[i][k]=='_') + score[i][k]+=1000; + } + break; + } + t=0; + } + for(j=0;j<3;j++) + { + for(i=0;i<3;i++) + t+=store[i][j]; + if(t==2*'O'+'_') + sum=5; + else if(t=='O'+2*'_') + sum=3; + else if(t=='X'+2*'_') + sum=2; + else if(t==3*'_') + sum=1; + else if(t==2*'X'+'_') + sum=6; + else if(t=='X'+'O'+'_') + sum=4; + switch(sum) + { + case 1: + for(k=0;k<3;k++) + { + if(store[k][j]=='_') + score[k][j]+=1; + } + break; + case 2: + for(k=0;k<3;k++) + { + if(store[k][j]=='_') + score[k][j]+=10; + } + break; + case 3: + for(k=0;k<3;k++) + { + if(store[k][j]=='_') + score[k][j]+=50; + } + break; + case 4: + for(k=0;k<3;k++) + { + if(store[k][j]=='_') + score[k][j]+=200; + } + break; + case 5: + for(k=0;k<3;k++) + { + if(store[k][j]=='_') + score[k][j]+=500; + } + break; + case 6: + for(k=0;k<3;k++) + { + if(store[k][j]=='_') + score[k][j]+=1000; + } + break; + } + t=0; + } + t=0; + for(i=0;i<3;i++) + t+=store[i][i]; + if(t==2*'O'+'_') + sum=5; + else if(t=='O'+2*'_') + sum=3; + else if(t=='X'+2*'_') + sum=2; + else if(t==3*'_') + sum=1; + else if(t==2*'X'+'_') + sum=6; + else if(t=='X'+'O'+'_') + sum=4; + switch(sum) + { + case 1: + for(k=0;k<3;k++) + { + if(store[k][k]=='_') + score[k][k]+=1; + } + break; + case 2: + for(k=0;k<3;k++) + { + if(store[k][k]=='_') + score[k][k]+=10; + } + break; + case 3: + for(k=0;k<3;k++) + { + if(store[k][k]=='_') + score[k][k]+=50; + } + break; + case 4: + for(k=0;k<3;k++) + { + if(store[k][k]=='_') + score[k][k]+=200; + } + break; + case 5: + for(k=0;k<3;k++) + { + if(store[k][k]=='_') + score[k][k]+=500; + } + break; + case 6: + for(k=0;k<3;k++) + { + if(store[k][k]=='_') + score[k][k]+=1000; + } + break; + } + t=0; + for(i=0;i<3;i++) + t+=store[i][2-i]; + if(t==2*'O'+'_') + sum=5; + else if(t=='O'+2*'_') + sum=3; + else if(t=='X'+2*'_') + sum=2; + else if(t==3*'_') + sum=1; + else if(t==2*'X'+'_') + sum=6; + else if(t=='X'+'O'+'_') + sum=4; + switch(sum) + { + case 1: + for(k=0;k<3;k++) + { + if(store[k][2-k]=='_') + score[k][2-k]+=1; + } + break; + case 2: + for(k=0;k<3;k++) + { + if(store[k][2-k]=='_') + score[k][2-k]+=10; + } + break; + case 3: + for(k=0;k<3;k++) + { + if(store[k][2-k]=='_') + score[k][2-k]+=50; + } + break; + case 4: + for(k=0;k<3;k++) + { + if(store[k][2-k]=='_') + score[k][2-k]+=200; + } + break; + case 5: + for(k=0;k<3;k++) + { + if(store[k][2-k]=='_') + score[k][2-k]+=500; + } + break; + case 6: + for(k=0;k<3;k++) + { + if(store[k][2-k]=='_') + score[k][2-k]+=1000; + } + break; + } + int maxRow = 0, maxCol = 0; + for (i=0; i<3; i++) + for (j=0;j<3;j++) + { + if (score[i][j] > score[maxRow][maxCol]) + { + maxRow = i; + maxCol = j; + } + } + store[maxRow][maxCol]='O'; + print_map(); +} +void scan_number() +{ + int x,y; + printf("请输入要走的棋格行号和列号:"); + scanf("%d%d",&x,&y); + printf("%d,%d",x,y) ; + x=number_mend(x); + while(x>3||x<=0||y>3||y<=0||store[x-1][y-1]!='_') + { + printf("非法输入,请重新输入\n"); + getchar(); + scanf("%d%d",&x,&y); + x=number_mend(x); + } + store[x-1][y-1]='X'; + print_map(); +} +int main() +{ + int count,i; + printf("这是一个井字棋游戏!按回车选择下棋顺序\n"); + getchar(); + system("cls"); + print_map(); + for(count=0;count<10;count+=2) + { + i=judge_win(); + if(judge_win()) + break; + if(count==9) + { + i=0; + break; + } + scan_number(); + Computer(); + } + judge_final(i); + return 0; +} diff --git a/鎵撳垎.cpp b/鎵撳垎.cpp new file mode 100644 index 0000000..856ce3e --- /dev/null +++ b/鎵撳垎.cpp @@ -0,0 +1,372 @@ +#include +#include +int store[][3]={'_','_','_','_','_','_','_','_','_'},i,j,k,flag=1; +void print_map() +{ + char boundary='|'; + system("cls"); + for(i=0;i<3;i++) + + { + for(j=0;j<3;j++) + { + printf("%c%c",boundary,store[i][j]); + if(j==2) + { + putchar(boundary); + putchar('\n'); + } + + } + } +} +int judge_win(int f=0) +{ + if(store[0][0]+store[0][1]+store[0][2]==3*'X'||store[1][0]+store[1][1]+store[1][2]==3*'X' + ||store[2][0]+store[2][1]+store[2][2]==3*'X'||store[0][0]+store[1][1]+store[2][2]==3*'X' + ||store[2][0]+store[1][1]+store[0][2]==3*'X'||store[0][0]+store[1][0]+store[2][0]==3*'X' + ||store[0][1]+store[1][1]+store[2][1]==3*'X'||store[0][2]+store[1][2]+store[2][2]==3*'X') + return 1; + else if(store[0][0]+store[0][1]+store[0][2]==3*'O'||store[1][0]+store[1][1]+store[1][2]==3*'O' + ||store[2][0]+store[2][1]+store[2][2]==3*'O'||store[0][0]+store[1][1]+store[2][2]==3*'O' + ||store[2][0]+store[1][1]+store[0][2]==3*'O'||store[0][0]+store[1][0]+store[2][0]==3*'O' + ||store[0][1]+store[1][1]+store[2][1]==3*'O'||store[0][2]+store[1][2]+store[2][2]==3*'O') + return -1; + return f; +} +void judge_final(int i) +{ + if(i==0) + printf("平局"); + else if(i==1) + printf("VICTORY"); + else if(i==-1) + printf("FILE") ; +} +int number_mend(int x) +{ + switch(x) + { + case 1:x=3;break; + case 3:x=1;break; + default:; + } + return x; +} +void Computer() +{ + + int sum,t=0,score[3][3]; + for(i=0;i<3;i++) + for(j=0;j<3;j++) + score[i][j]=0; + for(i=0;i<3;i++) + { + for(j=0;j<3;j++) + t+=store[i][j]; + if(t==2*'O'+'_') + sum=5; + else if(t=='O'+2*'_') + sum=3; + else if(t=='X'+2*'_') + sum=2; + else if(t==3*'_') + sum=1; + else if(t==2*'X'+'_') + sum=6; + else if(t=='X'+'O'+'_') + sum=4; + switch(sum) + { + case 1: + for(k=0;k<3;k++) + { + if(store[i][k]=='_') + score[i][k]=1; + } + break; + case 2: + for(k=0;k<3;k++) + { + if(store[i][k]=='_') + score[i][k]=10; + } + break; + case 3: + for(k=0;k<3;k++) + { + if(store[i][k]=='_') + score[i][k]=50; + } + break; + case 4: + for(k=0;k<3;k++) + { + if(store[i][k]=='_') + score[i][k]+=200; + } + break; + case 5: + for(k=0;k<3;k++) + { + if(store[i][k]=='_') + score[i][k]=500; + } + break; + case 6: + for(k=0;k<3;k++) + { + if(store[i][k]=='_') + score[i][k]=1000; + } + break; + } + t=0; + } + for(j=0;j<3;j++) + { + for(i=0;i<3;i++) + t+=store[i][j]; + if(t==2*'O'+'_') + sum=5; + else if(t=='O'+2*'_') + sum=3; + else if(t=='X'+2*'_') + sum=2; + else if(t==3*'_') + sum=1; + else if(t==2*'X'+'_') + sum=6; + else if(t=='X'+'O'+'_') + sum=4; + switch(sum) + { + case 1: + for(k=0;k<3;k++) + { + if(store[k][j]=='_') + score[k][j]+=1; + } + break; + case 2: + for(k=0;k<3;k++) + { + if(store[k][j]=='_') + score[k][j]+=10; + } + break; + case 3: + for(k=0;k<3;k++) + { + if(store[k][j]=='_') + score[k][j]+=50; + } + break; + case 4: + for(k=0;k<3;k++) + { + if(store[k][j]=='_') + score[k][j]+=200; + } + break; + case 5: + for(k=0;k<3;k++) + { + if(store[k][j]=='_') + score[k][j]+=500; + } + break; + case 6: + for(k=0;k<3;k++) + { + if(store[k][j]=='_') + score[k][j]+=1000; + } + break; + } + t=0; + } + t=0; + for(i=0;i<3;i++) + t+=store[i][i]; + if(t==2*'O'+'_') + sum=5; + else if(t=='O'+2*'_') + sum=3; + else if(t=='X'+2*'_') + sum=2; + else if(t==3*'_') + sum=1; + else if(t==2*'X'+'_') + sum=6; + else if(t=='X'+'O'+'_') + sum=4; + switch(sum) + { + case 1: + for(k=0;k<3;k++) + { + if(store[k][k]=='_') + score[k][k]+=1; + } + break; + case 2: + for(k=0;k<3;k++) + { + if(store[k][k]=='_') + score[k][k]+=10; + } + break; + case 3: + for(k=0;k<3;k++) + { + if(store[k][k]=='_') + score[k][k]+=50; + } + break; + case 4: + for(k=0;k<3;k++) + { + if(store[k][k]=='_') + score[k][k]+=200; + } + break; + case 5: + for(k=0;k<3;k++) + { + if(store[k][k]=='_') + score[k][k]+=500; + } + break; + case 6: + for(k=0;k<3;k++) + { + if(store[k][k]=='_') + score[k][k]+=1000; + } + break; + } + t=0; + for(i=0;i<3;i++) + t+=store[i][2-i]; + if(t==2*'O'+'_') + sum=5; + else if(t=='O'+2*'_') + sum=3; + else if(t=='X'+2*'_') + sum=2; + else if(t==3*'_') + sum=1; + else if(t==2*'X'+'_') + sum=6; + else if(t=='X'+'O'+'_') + sum=4; + switch(sum) + { + case 1: + for(k=0;k<3;k++) + { + if(store[k][2-k]=='_') + score[k][2-k]+=1; + } + break; + case 2: + for(k=0;k<3;k++) + { + if(store[k][2-k]=='_') + score[k][2-k]+=10; + } + break; + case 3: + for(k=0;k<3;k++) + { + if(store[k][2-k]=='_') + score[k][2-k]+=50; + } + break; + case 4: + for(k=0;k<3;k++) + { + if(store[k][2-k]=='_') + score[k][2-k]+=200; + } + break; + case 5: + for(k=0;k<3;k++) + { + if(store[k][2-k]=='_') + score[k][2-k]+=500; + } + break; + case 6: + for(k=0;k<3;k++) + { + if(store[k][2-k]=='_') + score[k][2-k]+=1000; + } + break; + } + int maxRow = 0, maxCol = 0; + for (i=0; i<3; i++) + for (j=0;j<3;j++) + { + if (score[i][j] > score[maxRow][maxCol]) + { + maxRow = i; + maxCol = j; + } + } + store[maxRow][maxCol]='O'; + print_map(); + printf("电脑走的棋格行号和列号是:%d %d\n",maxRow+1,maxCol+1); +} +void scan_number() +{ + int x,y; + printf("请输入要走的棋格行号和列号:"); + scanf("%d%d",&x,&y); + printf("%d,%d",x,y) ; + x=number_mend(x); + while(x>3||x<=0||y>3||y<=0||store[x-1][y-1]!='_') + { + printf("非法输入,请重新输入\n"); + getchar(); + scanf("%d%d",&x,&y); + x=number_mend(x); + } + store[x-1][y-1]='X'; + print_map(); +} +int main() +{ + int count=0,i; + char ch,*p=&ch; + printf("\t这是一个井字棋游戏!\n在游戏之前请先阅读以下注意事项:\n"); + printf("1.你可以选择下棋的先后顺序\n"); + printf("2.您输入的第一个数是行,第二个是列,且第一行在最下面。输入的正确形式为:x空y\n"); + printf("3.本程序还有许多不足,请多多包涵!爱你哦!!!!!\n") ; + printf("按回车即可进入\n"); + getchar(); + system("cls"); + printf("是否先下(y/n)"); + scanf("%c",&ch); + print_map(); + if(ch=='N'||ch=='n') + goto lp; + for(count=0;count<10;count++) + { + i=judge_win(); + if(judge_win()) + break; + if(count==9) + { + i=0; + break; + } + scan_number(); + lp: Computer(); + count+=1; + } + judge_final(i); + return 0; +}