运行如下代码#include<iostream> using namespace std; char out[20][20];//由八个字符串组成 八行九列 int o[20][20]={0};// int sum1=0; int sum2=0; void judgechar(char a,char b,int i){ if((a>='A'&&a<='G')&&(b>='0'&&b<='6')){ int aa=a-'A'; int bb=b-'0'; if(o[bb+1][aa+1]==0){ o[bb+1][aa+1]=i; if(bb%2==1){ out[bb+1][aa+1]='|'; }else{ out[bb+1][aa+1]='-'; } } } } void judgebox(){ for(int i=2;i<=6;i+=2){ for(int j=2;j<=6;j+=2){ if(o[i][j]==3&&o[i-1][j]==1&&o[i+1][j]==1&&o[i][j-1]==1&&o[i][j+1]==1){ o[i][j]=1; out[i][j]='1'; sum1++; } if(o[i][j]==3&&o[i-1][j]==2&&o[i+1][j]==2&&o[i][j-1]==2&&o[i][j+1]==2){ o[i][j]=2; out[i][j]='2'; sum2++; } } } } void print(){ //输出矩阵 for(int i=0;i<=7;i++){ for(int j=0;j<=7;j++){ cout<<out[i][j]; } cout<<endl; } } int main(){ out[0][0]=' '; int win; //设计矩阵 for(int i=1;i<=7;i++){ out[0][i]='A'-1+i; o[0][i]=3; } for(int i=1;i<=7;i++){ out[i][0]='0'+i-1; o[i][0]=3; } for(int i=1;i<=7;i++){ for(int j=1;j<=7;j++){ if(i%2!=0&&j%2!=0){ out[i][j]='*'; o[i][j]=3; }else if(i%2!=0&&j%2==0){ out[i][j]=' '; }else if(i%2==0){ out[i][j]=' '; if(j%2==0){ o[i][j]=3; } } } } for(int i=1;i<=25;i++){ char l,h; cin>>l; if(l=='Q'){ win=i%2; if(win==0){ win=2; } break; }else{ cin>>h; } int ii=i%2; if(ii==0){ ii+=2; } judgechar(l,h,ii); judgebox(); print(); } if(sum1>sum2){ cout<<"1赢了"; } if(sum1<sum2){ cout<<"2赢了"; } }
时间: 2024-01-20 21:02:10 浏览: 50
使用include <iostream>时一定要加using namespace std
这段代码看起来像是一个小游戏,运行时需要输入字符对应的行列坐标,然后程序会在矩阵中标记这个点,并根据规则判断是否有方格被勾选。最后会输出哪个玩家赢了。
具体来说,这个程序设计了一个 $7\times 7$ 的矩阵,其中每个交叉点上都标记了一个数字 $0,1,2,3$。程序会不断读入输入,每输入一对坐标,就将对应的点标记为当前玩家的数字。然后程序会判断是否有方格被勾选,如果是,则将该方格标记为当前玩家的数字。最后,如果有一方的方格数多于另一方,则输出该方胜利。
需要注意的是,这段代码的实现方式并不是很严谨,比如没有进行输入格式的检查,也没有处理输入越界的情况。同时,该游戏规则也比较简陋,只有两个玩家轮流在矩阵中标记点,没有其他操作。
阅读全文