您的位置:首页 > 其它

棋盘游戏(三子棋)

2016-07-23 14:27 246 查看
棋盘游戏(三子棋)

#include <stdio.h>

#include<stdlib.h>

#include<Windows.h>

enum op

{
EXIT,
PLAY

};

void menu()

{
printf("*****************************************\n");
printf("***************棋盘游戏****************\n");
printf("************0.exit   1.play***************\n");
printf("*****************************************\n");

}

void init(int arr[][3])

{
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
arr[i][j]=' ';

}

void print_game(int arr[][3])

{
int i = 0;
for(i=0;i<3;i++)
{
printf(" %c | %c | %c ",arr[i][0],arr[i][1],arr[i][2]);
if(i!=2)
printf("\n---|---|---\n");
}
printf("\n");

}

int player_move(int arr[][3])

{
int x = 0;
int y = 0;
printf("玩家请输入棋子坐标:");
scanf("%d%d",&x,&y);
while(1)
{
if(x<=3&&y<=3)
{
   x--;
   y--;  
   arr[x][y]='x';

   break;
}
   else
{
printf("您所输入的坐标越界了,请重新输入:");
 
        scanf("%d%d",&x,&y);
}
}

}

int computer_move(int arr[][3])

{
int x = 0;
int y = 0;
int i = 0;
int j = 0;
printf("该我啦:\n");
x=rand()%3;

        y=rand()%3;
for( i=0;i<3;i++)
for(j=0;j<3;j++)
{
if((arr[x][y]!=' ')&&(arr[x][y]=='x'))
{
x=rand()%3;
y=rand()%3;
continue;
}
else
arr[x][y]='0';
}

}

int check_win(int arr[][3])

{
int i = 0;

for( i=0;i<3;i++)
{
if((arr[i][0]=='x')&&(arr[i][1]=='x')&&(arr[i][2]=='x')
||(arr[0][i]=='x')&&(arr[1][i]=='x')&&(arr[2][i]=='x')
||(arr[0][0]=='x')&&(arr[1][1]=='x')&&(arr[2][2]=='x')
||(arr[0][2]=='x')&&(arr[i][1]=='x')&&(arr[2][0]=='x'))
{
printf("恭喜,你赢啦!\n");
return 0;
}
}
for( i=0;i<3;i++)
{
if((arr[i][0]=='0')&&(arr[i][1]=='0')&&(arr[i][2]=='0')
||(arr[0][i]=='0')&&(arr[1][i]=='0')&&(arr[2][i]=='0')
||(arr[0][0]=='0')&&(arr[1][1]=='0')&&(arr[2][2]=='0')
||(arr[0][2]=='0')&&(arr[i][1]=='0')&&(arr[2][0]=='0'))
{
printf("哈哈,我赢啦!\n");
return 0;
}
}

}

int main()

{
int arr[3][3]={0};
int ret = 0;
int input = 1;
int count1 = 0;
int count2 = 0;
 
while(input)
{   menu();
printf("请选择:");
scanf("%d",&input);
switch(input)
{ case EXIT:
           printf("不玩!");
                  Sleep(1000);
                          break;
case PLAY:
         printf("游戏开始啦!\n");

init(arr);
print_game(arr);

         ret=check_win(arr);
         while(ret!=0)
{
player_move(arr);
print_game(arr);
ret=check_win(arr);
 
computer_move(arr);
 
        print_game(arr);
ret=check_win(arr);

}
   }
}
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: