【初阶C语言】实现三子棋(详解+全部源码)(一)

简介: 【初阶C语言】实现三子棋(详解+全部源码)(一)

1. 配置运行环境


本游戏用到了三个文件

两个源文件:三子棋做法.c ,game.c

一个头文件:game.h


2. 三子棋游戏的初步实现


2.1 建立三子棋分布模块

想要做好游戏,首要任务就是要把模块想好。

先打印一个游戏菜单

void menu()
{
  printf("********************************\n");
  printf("**********  1.play   ***********\n");
  printf("**********  0.exit   ***********\n");
  printf("********************************\n");
}


玩家选择是否(1\0)是否进入游戏

#include <stdio.h>
void menu()
{
  printf("********************************\n");
  printf("**********  1.play   ***********\n");
  printf("**********  0.exit   ***********\n");
  printf("********************************\n");
}
int main()
{
  int input = 0;
  do
  {
  menu();
  printf("请选择:>");
  scanf("%d", &input);
  switch (input)
  {
  case 1:
    printf("三子棋\n");
    break;
  case 2:
    printf("选择错误,请重新选择\n");
    break;
  default:
    break;
  }
  } while (input);
  return 0;
}


2.2 创建一个名为board的二维数组并进行初始化

数组类型为char

char board[ ][ ] = { 0 };

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


另一种写法,但要包含头文件string.h

memset(&board[0][0], ' ', row * col * sizeof(board[0][0]));


2.3 搭建棋盘

在game.c文件中实现棋盘的搭建功能


错误代码的两种形式

1. void DisplayBoard(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++)
  {
    printf("%c ", board[i][j]);
  }
  printf("\n");
  }
}
2. void DisplayBoard(char board[ROW][COL], int row, int col)
{
  int i = 0;
  int j = 0;
  for (i = 0; i < row; i++)
  {
  printf(" %c | %c | %c \n", board[i][0], board[i][1], board[i][2]);
  if(i < row-1)
    printf("---|---|---\n");
  }
}


能正确搭建功能的棋盘,可以灵活创建棋盘大小,改变宏定义的变量

void DisplayBoard(char board[ROW][COL], int row, int col)
{
  int i = 0;
  for (i = 0; i < row; i++)
  {
  //打印数据
  int j = 0;
  for (j = 0; j < col; j++)
  {
    printf(" %c ", board[i][j]);
    if(j<col-1)
    printf("|");
  }
  printf("\n");
  //打印分割的行
  if (i < row - 1)
  {
    for (j = 0; j < col; j++)
    {
    printf("---");
    if (j < col - 1)
      printf("|");
    }
    printf("\n");
  }
  }
}


该代码的目的是:构建完成打印出的棋盘,大概形状就是一个“井”框架。

相关文章
|
6天前
|
C语言
C语言初阶:如何判断是否为素数并且输出
C语言初阶:如何判断是否为素数并且输出
10 0
|
5天前
|
C语言
【海贼王编程冒险 - C语言海上篇】C语言如何实现简单的三子棋游戏?
【海贼王编程冒险 - C语言海上篇】C语言如何实现简单的三子棋游戏?
7 1
|
6天前
|
存储 定位技术 API
C语言实战 -- 经典贪吃蛇游戏(含完整源码)
C语言实战 -- 经典贪吃蛇游戏(含完整源码)
9 1
|
27天前
|
C语言
【初始C语言8】详细讲解初阶结构体的知识
【初始C语言8】详细讲解初阶结构体的知识
|
6天前
|
编译器 程序员 Linux
C语言编程的各种源码文件
C编程的各种源码文件
|
1月前
|
C语言
万字详解:C语言三子棋进阶 + N子棋递归动态判断输赢(二)
我们可以通过创建并定义符号常量NUMBER,来作为判断是否胜利的标准。如三子棋中,令NUMBER为3,则这八个方向中有任意一个方向达成3子连珠,则连珠的这个棋子所代表的玩家获胜。
28 1
|
1月前
|
算法 C语言 C++
万字详解:C语言三子棋进阶 + N子棋递归动态判断输赢(一)
三子棋游戏设计的核心是对二维数组的把握和运用。
28 1
|
1月前
|
编译器 C语言
【C语言入门小游戏】三子棋
【C语言入门小游戏】三子棋
28 0
【C语言入门小游戏】三子棋
|
17天前
|
程序员 C语言 索引
【️C语言-游戏设置】---三子棋(N满)
【️C语言-游戏设置】---三子棋(N满)
|
1月前
|
C语言
C语言初阶测评
C语言初阶测评
22 0