117 lines
2.3 KiB
C
117 lines
2.3 KiB
C
|
#include "game.h"
|
|||
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void initBoard(char board[ROW][COL],int row,int col){
|
|||
|
int i = 0;
|
|||
|
int j = 0;
|
|||
|
for(i = 0;i < row;i++){
|
|||
|
for(j = 0;j < col;j++){
|
|||
|
board[i][j] = ' ';
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
//չʾ<D5B9><CABE><EFBFBD><EFBFBD>
|
|||
|
void displayBoard(char board[ROW][COL],int row,int col){
|
|||
|
int i = 0;
|
|||
|
for(i = 0;i < row;i++){
|
|||
|
int j = 0;
|
|||
|
for(j = 0;j < col;j++){
|
|||
|
printf(" %c ",board[i][j]);
|
|||
|
if(j < col -1)
|
|||
|
printf("|");
|
|||
|
}
|
|||
|
printf("\n");
|
|||
|
if(i < row -1){
|
|||
|
int j = 0;
|
|||
|
for(j = 0;j< col;j++){
|
|||
|
printf("---");
|
|||
|
if(j < col -1)
|
|||
|
printf("|");
|
|||
|
}
|
|||
|
printf("\n");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void playMove(char board[][COL],int row,int col){
|
|||
|
int x = 0;
|
|||
|
int y = 0;
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>\n");
|
|||
|
while(1){
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:>\n");
|
|||
|
scanf("%d %d",&x,&y);
|
|||
|
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD>
|
|||
|
if(x >= 1 && x <= row && y>= 1 && y<= col){
|
|||
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ռ<EFBFBD><D5BC>
|
|||
|
if(board[x-1][y-1] == ' '){
|
|||
|
board[x-1][y-1] = '*';
|
|||
|
break;
|
|||
|
}else{
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD>걻ռ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
}
|
|||
|
}else{
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void computerMove(char board[][COL],int row,int col){
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
while(1){
|
|||
|
int x = rand() % ROW;
|
|||
|
int y = rand() % COL;
|
|||
|
//<2F>ж<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ռ<EFBFBD><D5BC>
|
|||
|
if(board[x][y] == ' '){
|
|||
|
board[x][y] = '#';
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int isFull(char board[ROW][COL],int row,int col){
|
|||
|
int i = 0 ;
|
|||
|
int j = 0;
|
|||
|
for(i = 0;i < row;i++){
|
|||
|
for(j = 0;j< col;j++){
|
|||
|
if(board[i][j] == ' '){
|
|||
|
//<2F><><EFBFBD><EFBFBD>û<EFBFBD><C3BB>
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
return 1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
//<2F>ж<EFBFBD><D0B6><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
|
|||
|
char isWin(char board[ROW][COL],int row,int col){
|
|||
|
int i = 0;
|
|||
|
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
for(i = 0;i < row;i++){
|
|||
|
if(board[i][0] == board[i][1] && board[i][1] == board[i][2] && board[i][1] != ' '){
|
|||
|
return board[i][1];
|
|||
|
}
|
|||
|
}
|
|||
|
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
for(i = 0;i< col;i++){
|
|||
|
if(board[0][i] == board[1][i] && board[1][i] == board[2][i] && board[1][i] != ' '){
|
|||
|
return board[1][i];
|
|||
|
}
|
|||
|
}
|
|||
|
//<2F>ж϶Խ<CFB6><D4BD><EFBFBD>
|
|||
|
if(board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[1][1] != ' '){
|
|||
|
return board[1][1];
|
|||
|
}
|
|||
|
if(board[0][2] == board[1][1] && board[1][1] == board[2][0] && board[1][1] != ' '){
|
|||
|
return board[1][1];
|
|||
|
}
|
|||
|
//<2F>ж<EFBFBD>ƽ<EFBFBD><C6BD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
|
|||
|
int ret = isFull(board,row,col);
|
|||
|
if(ret == 1){
|
|||
|
return 'Q';
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
return 'C';
|
|||
|
|
|||
|
}
|