Tic- Tac-Toe游戏的实现–未完成
**·**读入一个3*3的矩阵,矩阵中的数字为1表示该位置上有一个X,为0表示为O
**·**程序判断这个矩阵中是否有获胜的一方,输出表示获胜一方的字符X或O,或输出无人获胜
#include <stdio.h>
int main()
{
const int size = 3;
int board[size][size];
int i,j;
int numOfX;
int numOfO;
int result = -1;//-1:没人赢,1:X赢,0:O赢
//读入矩阵
for(i=0;i<size;i++){
for(j=0;j<size;j++){
scanf("%d",&board[i][j]);
}
}
//检查行
for(i=0;i<size&&result==-1;i++){
numOfX = numOfO =0;
for(j=0;j<size;j++){
if(board[i][j]==1) numOfX++;
else numOfO++;
}
if(numOfO==size) result = 0;
else if (numOfX==size) result = 1;
}
//检查列
if(result==-1){
for(j=0;j<size&&result==-1;j++){
numOfX = numOfO =0;
for(i=0;i<size;i++){
if(board[i][j]==1) numOfX++;
else numOfO++;
}
if(numOfO==size) result = 0;
else if (numOfX==size) result = 1;
}
}
//思考:能否用一个两重循环来检查行和列???
//检查正对角线
numOfO = numOfX = 0;
for(i=0;i<size;i++){
if(board[i][j]==1){
numOfX++;
}else {
numOfO++;
}
}
if(numOfO==size){
result = 0;
}else if(numOfX==size){
result = 1;
}
//检查反对角线
numOfO = numOfX = 0;
for(i=0;i<size;i++){
if(board[i][size-i-1]==1){
numOfX++;
}else {
numOfO++;
}
}
return 0;
}