#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void munu()//简易的游戏菜单
{
printf("######################################\n");
printf("######################################\n");
printf("###### 输入:1 开始游戏 #######\n");
printf("###### 输入:0 退出游戏 #######\n");
printf("######################################\n");
printf("######################################\n");
}
void game_base()
{ //游戏的规则
printf("在四子棋游戏中;‘ * ’ 代表黑色方;‘ # ’号代表白色方\n");
printf("黑色方先下棋\n");
printf("请开始落子\n");
printf("请输入下棋的坐标;如同(x y)样式,前面数字表示横坐标,后面数字表示纵坐标\n");
}
void game()
{
char board[8][8];
int i = 0;
int j = 0;
int k = 0;
int x = 0;
int y = 0;
int m = 0;
int n = 0;
for (i = 0; i < 8; i++)
{
for (j = 0; j < 8; j++)
{
board[i][j] = ' ';//初始化棋盘,把数组全部填充为空格
}
}
for (i = 0; i < 8; i++)
{
printf(" %c | %c | %c | %c | %c | %c | %c | %c | \n", board[i][0], board[i][1], board[i][2], board[i][3], board[i][4], board[i][5], board[i][6], board[i][7], board[i][8]);
if (i < 7)
{
printf("---|---|---|---|---|---|---|---|\n");//打印棋盘
}
}
game_base();
while(1)
{
//pandaun
while (1)
{
printf("请黑色方开始落子");
scanf("%d %d", &x, &y);
if (x >= 1 && x <= 8 && y >= 1 && y <= 8)
{
if (board[x - 1][y - 1] == ' ')
{
board[x - 1][y - 1] = '*';
for (i = 0; i < 8; i++)
{
printf(" %c | %c | %c | %c | %c | %c | %c | %c | \n", board[i][0], board[i][1], board[i][2], board[i][3], board[i][4], board[i][5], board[i][6], board[i][7], board[i][8]);
if (i < 7)
{
printf("---|---|---|---|---|---|---|---|\n");
}
}
//判断黑色方输赢的底层逻辑
for (i = 0; i < 8; i++)
{
for (j = 0; j < 8; j++)
{
if (board[i][j] == board[i][j + 1] && board[i][j + 1] == board[i][j + 2] &&board[i][j+2]==board[i][j+3]&&board[i][j]=='*')
{
//当‘*’四个横着连在一起,即黑色获胜
printf("黑色方四个棋子横向连在了一起,恭喜黑色方获胜\n");
return;
}
if (board[i][j] == board[i + 1][j] && board[i + 1][j] == board[i + 2][j] && board[i + 2][j] == board[i + 3][j] && board[i]