C语言小游戏之五子棋

//五子棋游戏思路
//1、首先、打印游戏界面菜单(开始游戏、退出游戏)
//2、然后玩家选择开始游戏,打印棋盘。(棋盘用二维数组表示,初始化为空格)
//3、进行游戏,提示玩家输入棋盘坐标,玩家落子。玩家落子后,电脑随机落子
//4、最后进行游戏判断,玩家胜还是电脑胜。
//5、 字符’x’代表玩家棋子,字符’o’代表电脑棋子

#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#define ROW 5
#define COL 5

char qi[ROW][COL];
//打印菜单
void print(char qi[ROW][COL])
{
	for (int row=0;row= ROW || col < 0 || col >= COL)
		{
			printf("输入不合法,请重新输入:");
			continue;
		}
		if (is_exist(qi,row,col) == 1)
		{
			qi[row][col] = 'x';
			print(qi);
			break;
		}
		else 
		{
			printf("该位置已经有子,请重新输入:");
			continue;
		}
	}
}


//电脑落子
void computer_move(char qi[ROW][COL])
{
	printf("电脑落子\n");
	while (1)  
	{
		int row = rand() % ROW;
		int col = rand() % COL;
		if (is_exist(qi, row, col) == 1)
		{
			qi[row][col] = 'o';
			print(qi);
			break;
		}
	}
}

//打印菜单
void  menu()
{
	printf("*********************\n");
	printf("1、开始游戏\n");
	printf("2、退出游戏\n");
	printf("*********************\n");
}
//初始化
int Init(char qi[ROW][COL])
{
	int choice=0;
	menu();//打印菜单
	for (int row = 0; row < ROW; row++)//初始化棋盘为空字符
	{
		for (int col = 0; col < COL; col++)
		{
			qi[row][col] = ' ';
		}
	}
	scanf("%d", &choice);
	if (choice == 1)
	{
		print(qi);//如果选择开始游戏,打印棋盘
	}
	else if (choice == 2)
	{
		printf("Game Over!\n");
	}
	return choice;
}

int main()
{
		//产生随机种子
	    srand((unsigned)time(0));
		while (1)
		{	
			if (Init(qi) == 2 )
			{
				break;
			}
			while (1)
			{	
				//玩家落子
				player_move(qi);
				//检查是否平局
				if (winner(qi) == 'p')
				{
					printf("平局\n");
					break;
				}
				//检查输赢
				if (winner(qi) == 'x')
				{
					printf("游戏结束、玩家胜利!\n");
					break;
				}
				//电脑落子
				computer_move(qi);
				//检查输赢
				if (winner(qi) == 'o')
				{
					printf("游戏结束、电脑胜利!\n");
					break;
				}
			}
		}
	system("pause");
	return 0;
}

C语言小游戏之五子棋_第1张图片
C语言小游戏之五子棋_第2张图片
//由于本游戏中电脑落子是随机产生的,故此,游戏比较简单也比较容易理解,希望可以对大家有所帮助

你可能感兴趣的:(C语言,C语言小游戏)