【初阶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");
  }
  }
}


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

相关文章
|
2月前
|
存储 C语言
【C语言】C语言-宾馆客房管理系统(源码+论文)【独一无二】
【C语言】C语言-宾馆客房管理系统(源码+论文)【独一无二】
【C语言】C语言-宾馆客房管理系统(源码+论文)【独一无二】
|
2月前
|
存储 C语言
【C语言】C语言-学生成绩管理系统(源码+数据文件+课程论文)【独一无二】
【C语言】C语言-学生成绩管理系统(源码+数据文件+课程论文)【独一无二】
40 15
|
2月前
|
算法 编译器 C语言
【C语言篇】猜数字游戏(赋源码)
rand函数会返回⼀个伪随机数,这个随机数的范围是在0~RAND_MAX之间,这个RAND_MAX的⼤⼩是依赖编译器上实现的,但是⼤部分编译器上是32767。
|
2月前
|
存储 数据可视化 数据安全/隐私保护
【C语言】C语言-成绩管理系统(管理员+教师+学生 源码)【独一无二】
【C语言】C语言-成绩管理系统(管理员+教师+学生 源码)【独一无二】
|
2月前
|
存储 数据可视化 C语言
【C语言】C语言-身份证管理系统(源码+注释)【独一无二】
【C语言】C语言-身份证管理系统(源码+注释)【独一无二】
|
2月前
|
存储 数据可视化 C语言
【C语言】C语言-学生籍贯信息记录系统(源码+论文)【独一无二】
【C语言】C语言-学生籍贯信息记录系统(源码+论文)【独一无二】
|
2月前
|
存储 C语言
【C语言】C语言-学生选修课程系统(源码)【独一无二】
【C语言】C语言-学生选修课程系统(源码)【独一无二】
|
2月前
|
存储 C语言
【C语言】C语言-设备管理系统(源码+数据文件)【独一无二】
【C语言】C语言-设备管理系统(源码+数据文件)【独一无二】
|
2月前
|
存储 数据可视化 Serverless
【C语言】C语言-学籍管理系统(源码+文件存储)【独一无二】
【C语言】C语言-学籍管理系统(源码+文件存储)【独一无二】
|
2月前
|
存储 数据可视化 C语言
【C语言 】C语言 学生选修课程系统(源码+论文)【独一无二】
【C语言 】C语言 学生选修课程系统(源码+论文)【独一无二】