超详细的三子棋(C语言实现)—实现人机对战 x 玩家vs玩家


目录

♈️一、三子棋的简介

♉️二、C语言实现思路

        大体框架的构建

        接口的定义

♊️ 三、根据所写接口实现函数主体

        菜单的构建

        game()主体的构建

        💟重点在判断输赢!(肥肠重要!!!)

♋️四、总体代码

        实现效果 


♈️一、三子棋的简介

        三子棋是一种简单的棋类游戏。游戏的目标是在一个3x3或者更大的4x4等等的棋盘上,先将自己的棋子在一条直线上连成三个即可获胜。棋子可以横、竖、斜着连线。游戏通常由两个人轮流下棋进行,一方执X棋子,另一方执O棋子。如果棋盘被填满了且没有一方达成获胜条件,则平局。


♉️二、C语言实现思路

        大体框架的构建

1. 定义棋盘:使用二维数组来表示棋盘,其中0表示空格,1表示*,2表示#。

2. 初始化棋盘:将每个元素初始化为0(空格)。

3. 画出棋盘:使用printf()函数在屏幕上绘制出棋盘,包括行和列的标记。

4. 玩家输入:使用scanf()函数让玩家在控制台上输入他想要下棋的位置。

5. 检查合法性:检查玩家输入的位置是否在棋盘范围内,并且是否为空格(即是否已经下过棋了)。

6. 下棋:如果玩家输入的位置合法,那么在该位置上下一颗棋子(*或#)。

7. 检查胜负:每下一颗棋子都需要检查是否有玩家已经获胜了,如果有,游戏结束。

8. 切换玩家:玩家vs玩家:每次玩家下完一步棋,需要切换到另一个玩家继续游戏。玩家vs电脑:电脑自动下,然后玩家下。

9. 循环游戏:按照上述步骤重复进行游戏,直到有一方获胜或者平局。

10. 打印结果:游戏结束后,使用printf()函数输出结果,说明谁获胜了或者是平局。

        接口的定义

        定义了棋盘的大小,ROW和COL来控制,以及两个主题函数,一个是作为菜单的函数,另外一个是作为游戏的主体函数,较为简单。(●'◡'●)

#define ROW 5
#define COL 5

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void menu();

void game();


♊️ 三、根据所写接口实现函数主体

        菜单的构建

void menu()//菜单
{
	printf("---------------------------\n");
	printf("|*************************|\n");
	printf("|*******  1.play  ********|\n");
	printf("|*******  0.exit  ********|\n");
	printf("|*************************|\n");
	printf("---------------------------\n");
}

                        大道至简,无需多言 !

        game()主体的构建

        首先还是要先构思一下大体框架->要实现什么功能?人机大战! 玩家vs玩家!->这样便又需要一个菜单来供选择了 ε=(´ο`*)))唉 ->用什么来做比较合适?数组!二维数组!->需要什么?棋盘!->用了数组因此需要初始化,需要打印棋盘,需要对于玩家落子和电脑落子进行分别的操作!->最主要的操作!判断输赢!->棋盘满算平局(重点),执子 * 和  # 哪边先达到要求哪边胜出!

        实现如下:

#define _CRT_SECURE_NO_WARNINGS 01

#include"game.h"

void menu()//菜单
{
	printf("---------------------------\n");
	printf("|*************************|\n");
	printf("|*******  1.play  ********|\n");
	printf("|*******  0.exit  ********|\n");
	printf("|*************************|\n");
	printf("---------------------------\n");
}

void Initboard(char board[ROW][COL], int row, int col)//初始化棋盘
{
	for (int i = 0; i < row;i++)
	{
		for (int j = 0; j < col; j++)
	
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值