C语言自定义棋盘大小的三子棋小游戏(具体步骤及代码)

代码汇总在最后

一、源文件及头文件的创建       

首先,对于三子棋来说所有代码放在一个源文件中不利于编写和查找代码。因此可将其分为test.c实现三旗子的大致流程,game.c实现具体游戏过程(如打印棋盘,玩家下棋,电脑下棋,判断输赢),以及game.h包含头文件及函数。

二、三子棋游戏的逻辑和基本流程

  1. 打印游戏菜单,让玩家选择进入游戏或退出游戏。
  2. 初始化棋盘
  3. 打印棋盘
  4. 玩家下棋
  5. 判断是否满足游戏结束的条件(输赢及和棋)
  6. 电脑下棋
  7. 判断是否满足游戏结束的条件(输赢及和棋)
  8. 重复3-7,直到出现输赢或和棋(即棋盘下满)

三、代码实现

1.游戏菜单及进入游戏 

void menu()
{
	printf("***********************\n");
	printf("*******三子棋游戏******\n");
	printf("*****1.play 0.exit*****\n");
	printf("***********************\n");
}

根据游戏逻辑,编写出主函数,游戏具体实现过程在game()函数中实现 。

int main()
{
	srand((unsigned int)time(NULL));//设置随机数的生成起点,电脑下棋时要用到
	int input = 0;
	do//do while语句使得一打开程序先打印一遍菜单,
在游戏结束后或者选择错误时通过循环再次打印
	{
		menu();
		printf("请选择:");
		scanf("%d", &input);
		switch (input) 
		{
		case 1:
			game();//游戏具体实现
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("选择错误,请重新选择\n");
			break;
		}
	} while (input);
	return 0;
}

2.头文件

将上述整理好的下棋流程分别用函数实现之前,先在头文件中包含这些函数。

棋盘使用的二维char数组来表示。数组的行列数用宏定义,方便修改棋盘的大小。

#define _CRT_SECURE_NO_WARNINGS
#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//宏定义
#define ROW 4
#define COL 4

//初始化棋盘
void InitBoard(char board[ROW][COL], int row, int col);

//打印棋盘
void DispalyBoard(char board[ROW][COL], int row, int col);

//玩家下棋
void PlayerMove(char board[ROW][COL], int row, int col);

//电脑下棋
//找没有下棋的随机下棋
void ComputerMove(char board[ROW][COL], int row, int col);

//玩家赢 - '*'
//电脑赢 - '#'
//平局 - 'Q'
//继续 - 'C'
char IsWin(char board[ROW][COL], int row, int col);

3.初始化棋盘

void InitBoard(char board[ROW][COL], int row, int col)
{
	int i = 0;
	int j = 0;
	for (i = 0; i < row; i++)
	{
		for (j = 0; j < col; j++)
		{
			board[i][j] = ' ';
		}
	}
}

4.打印棋盘

void DispalyBoard(char board[ROW][COL], int row, int col) 
{
	int i = 0;
	int j 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值