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


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

相关文章
|
3天前
|
存储 SQL 网络协议
C语言C/S架构PACS影像归档和通信系统源码 医院PACS系统源码
医院影像科PACS系统,意为影像归档和通信系统。它是应用在医院影像科室的系统,主要的任务是把日常产生的各种医学影像(包括核磁、CT、超声、各种X光机、各种红外仪、显微仪等设备产生的图像)通过各种接口(模拟、DICOM、网络)以数字化的方式海量保存起来,并在需要的时候在一定授权下能够快速地调回使用。同时,PACS系统还增加了一些辅助诊断管理功能。
40 11
|
3天前
|
算法 C语言 C++
【C语言实战项目】三子棋游戏
【C语言实战项目】三子棋游戏
33 1
|
3天前
|
C语言
C语言之三子棋小游戏
C语言之三子棋小游戏
|
3天前
|
C语言
用c语言实现三子棋
用c语言实现三子棋
12 0
|
3天前
|
程序员 C语言
C语言设计三子棋
C语言设计三子棋
|
3天前
|
存储 小程序 编译器
C语言之三子棋小游戏的应用
C语言之三子棋小游戏的应用
|
3天前
|
C语言
C语言之详解数组【附三子棋和扫雷游戏实战】(二)
C语言之详解数组【附三子棋和扫雷游戏实战】(二)
|
3天前
|
存储 人工智能 搜索推荐
【C语言/C++】电子元器件管理系统(C源码)【独一无二】
【C语言/C++】电子元器件管理系统(C源码)【独一无二】
|
3天前
|
存储 人工智能 机器人
【C/C++】C语言 学生信息管理系统(源码)【独一无二】
【C/C++】C语言 学生信息管理系统(源码)【独一无二】
|
3天前
|
人工智能 机器人 测试技术
【C/C++】C语言 21点桌牌游戏 (源码) 【独一无二】
【C/C++】C语言 21点桌牌游戏 (源码) 【独一无二】