#include "game.h"
void game2()//五子棋
{
for (;;)
{
//定义行数和列数:
#define ROW 2
#define LINE 2
char board[ROW][LINE];
int gameover = 1;
//初始化棋盘:
for (int i = 0; i < ROW; i++)
{
for (int a = 0; a < LINE; a++)
{
board[i][a] = ' ';
}//for (int a = 0; a < LINE; a++)
}//for (int i = 0; i < ROW; i++)
//打印棋盘:
{
for (int b = 0; b < ROW; b++)
{
for (int c = 0; c < LINE; c++)
{
printf(" %c ", board[b][c]);
printf("|");
}//for (int c = 0; c < LINE; c++)
printf("\n");
for (int c = 0; c < LINE; c++)
{
printf("---");
printf("|");
}//for (int c = 0; c < LINE; c++)
printf("\n");
}//for (int b = 0; b < ROW; b++)
}//打印棋盘
//进行对局:
for (;;)
{
//玩家下棋:
for (;;)
{
int x = 0;
int y = 0;
printf("请输入坐标");
scanf("%d %d", &x, &y);
//判断坐标合法性:
{
if (x >= 1 && x <= LINE && y >= 1 && y <= ROW && board[x - 1][y - 1] == ' ')
{
board[x - 1][y - 1] = '*';
system("cls");
//打印棋盘:
{
for (int b = 0; b < ROW; b++)
{
for (int c = 0; c < LINE; c++)
{
printf(" %c ", board[b][c]);
printf("|");
}//for (int c = 0; c < LINE; c++)
printf("\n");
for (int c = 0; c < LINE; c++)
{
printf("---");
printf("|");
}//for (int c = 0; c < LINE; c++)
printf("\n");
}//for (int b = 0; b < ROW; b++)
}//打印棋盘
break;
}
else
{
printf("坐标不合法,请重下");
Sleep(3000);
system("cls");
//打印棋盘:
{
for (int b = 0; b < ROW; b++)
{
for (int c = 0; c < LINE; c++)
{
printf(" %c ", board[b][c]);
printf("|");
}//for (int c = 0; c < LINE; c++)
printf("\n");
for (int c = 0; c < LINE; c++)
{
printf("---");
printf("|");
}//for (int c = 0; c < LINE; c++)
printf("\n");
}//for (int b = 0; b < ROW; b++)
}//打印棋盘
}
}//判断坐标合法性
}//玩家下棋 for (;;)
//判断输赢:
{
for (int o = 0; o < ROW; o++)
{
if (board[o][0] == board[o][1] && board[o][0] == '*')
{
printf("玩家赢");
gameover = 0;
Sleep(1000);
system("cls");
break;
}//if (board[o][0] == board[o][1] && board[o][0] == '*')
else if (board[o][0] == board[o][1] && board[o][0] == '#')
{
printf("电脑赢");
gameover = 0;
Sleep(1000);
system("cls");
break;
}//if (board[o][0] == board[o][1] && board[o][0] == '#')
else if (board[0][o] == board[1][o] && board[0][o] == '*')
{
printf("玩家赢");
gameover = 0;
Sleep(1000);
system("cls");
break;
}//if (board[0][o] == board[1][o] && board[0][o] == '*')
else if (board[o][0] == board[o][1] && board[o][1] && board[o][0] == '#')
{
printf("玩家赢");
gameover = 0;
Sleep(1000);
system("cls");
break;
}//if (board[o][0] == board[o][1] && board[o][1] && board[o][0] == '#')
else//斜行暂时没做
break;
}//for (int o = 0; o < LINE; o++)
if (gameover == 0)
break;
}//判断输赢
//电脑下棋:
for (;;)
{
srand((unsigned int)time(NULL));
int x = rand() % LINE;
int y = rand() % ROW;
//判断坐标合法性:
{
if (x >= 1 && x <= LINE && y >= 1 && y <= ROW && board[x][y] == ' ')
{
board[x][y] = '#';
system("cls");
//打印棋盘:
{
for (int b = 0; b < ROW; b++)
{
for (int c = 0; c < LINE; c++)
{
printf(" %c ", board[b][c]);
printf("|");
}//for (int c = 0; c < LINE; c++)
printf("\n");
for (int c = 0; c < LINE; c++)
{
printf("---");
printf("|");
}//for (int c = 0; c < LINE; c++)
printf("\n");
}//for (int b = 0; b < ROW; b++)
}//打印棋盘
break;
}
}//判断坐标合法性
}
//判断输赢:
{
for (int o = 0; o < ROW; o++)
{
if (board[o][0] == board[o][1] && board[o][0] == '*')
{
printf("玩家赢");
gameover = 0;
Sleep(1000);
system("cls");
break;
}//if (board[o][0] == board[o][1] && board[o][0] == '*')
else if (board[o][0] == board[o][1] && board[o][0] == '#')
{
printf("电脑赢");
gameover = 0;
Sleep(1000);
system("cls");
break;
}//if (board[o][0] == board[o][1] && board[o][0] == '#')
else if (board[0][o] == board[1][o] && board[0][o] == '*')
{
printf("玩家赢");
gameover = 0;
Sleep(1000);
system("cls");
break;
}//if (board[0][o] == board[1][o] && board[0][o] == '*')
else if (board[o][0] == board[o][1] && board[o][1] && board[o][0] == '#')
{
printf("玩家赢");
gameover = 0;
Sleep(1000);
system("cls");
break;
}//if (board[o][0] == board[o][1] && board[o][1] && board[o][0] == '#')
else//斜行暂时没做
break;
}//for (int o = 0; o < LINE; o++)
if (gameover == 0)
break;
}//判断输赢
}//进行对局
gameover = 1;
printf("再来一遍1\\按其余键返回主菜单:");
scanf("%d", &gameover);
switch (gameover)
{
case 1:
system("cls");
continue;
case 2:
system("cls");
default:
break;
}//switch (gameover)
}//for (;;)
}