三子棋小游戏

简介: 三子棋小游戏

1.概述

       今天我给大家带来的是三子棋小游戏,三子棋小游戏主要包括菜单,打印棋盘,电脑下棋,玩家下棋,判断输赢,这五部分,想要全部代码的小伙伴们可以点击https://gitee.com/steventom/class/tree/master/%E4%B8%89%E5%AD%90%E6%A3%8B/%E4%B8%89%E5%AD%90%E6%A3%8B链接,我将他分为三个文件分别盛放声明定义的函数和头文件,定义的函数,主函数三个。

这样分文件写有很大的好处,当我们写一个几千行的代码时份文件可以让我们的代码看起来整齐,并且寻找时容易寻找;

2.菜单函数

菜单主要包括打印菜单和输入选择的序号两部分,具体代码如以下:

int menu()
{
  printf("******************\n");
  printf("*** 1.开始游戏 ***\n");
  printf("*** 2.结束游戏 ***\n");
  printf("******************\n");
  printf("请输入你想要选择的序号:");
  int num;
  scanf("%d", &num);
  return num;
}

3.打印棋盘

 主要通过一个循环以及在对循环次数进行判断,以实现打印不同的结果

void print(char arr[N][N])
{
  int i, j;
  for (i = 0; i < N; i++)
  {
    printf("%c |%c |%c \n", arr[i][0], arr[i][1], arr[i][2]);
    if (i != N - 1)
      printf("__|__|__\n");
  }
  printf("  |  |  \n");
  printf("\n");
}

4.电脑下棋

       电脑下棋我们需要引入随机数,它主要靠rang()函数以及赋予他一个种子srand(time(NULL)),实现,其中srand(time(NULL))的头文件是include<stdlib.h>;rand()函数的头文件是include <time.h>;

       产生随机数是电脑下棋的核心,利用产生的随机数进行%3,得到0,1,2中的一个数来确定电脑下在哪里;具体代码如下:

void ai(char arr[N][N])
{
  count++;
  srand(time(NULL));
  int i, j;
flag:
  i = rand() % 3;
  j = rand() % 3;
  if (arr[i][j] == ' ')
    arr[i][j] = '#';
  else
    goto flag;
}

5.玩家下棋

玩家下棋就是用户直接输入坐标进行下棋,代码如下

void my(char arr[N][N])
{
  count++;
  int i, j;
flag:
  printf("请输入你想下的位置:");
  scanf("%d%d", &i, &j);
  if (arr[i - 1][j - 1] == ' ')
    arr[i - 1][j - 1] = '*';
  else
    goto flag;
}

6.判断输赢

       接下来就是最后的环节,我们对斜着,横着,竖着进行判断看是否能赢,当下9次时还没有人胜出则平局。具体代码如下:

char win(char arr[N][N])
{
  int i;
  //斜着
  if (arr[1][1] != ' ' && (arr[0][0] == arr[1][1] &&arr[1][1] == arr[2][2]) )
    return arr[1][1];
  if (arr[1][1] != ' ' && (arr[0][2] == arr[1][1] && arr[2][0] == arr[0][2]))
    return arr[1][1];
  for (i = 0; i < 3; i++)//横着
  {
    if (arr[i][1] != ' ' && arr[i][0] == arr[i][1] && arr[i][0] == arr[i][2])
      return arr[i][0];
  }
  for (i = 0; i < 3; i++)//竖着
  {
    if (arr[0][i] == arr[1][i] && arr[0][i] == arr[2][i] && arr[0][i] != ' ')
      return arr[i][0];
  }
  if (count == 9)
    return 'a';//平局
}

7.总结

       到这里我们的小游戏已经结束了,想玩的可以将代码拿去。最后希望大家一键三连

目录
相关文章
|
2月前
|
C语言
简易三子棋的实现
简易三子棋的实现
|
4月前
|
存储
三子棋游戏的实现
三子棋游戏的实现
33 0
|
2月前
|
C语言
三子棋游戏(详解+代码)
三子棋游戏(详解+代码)
26 2
|
10月前
三子棋游戏 2020-12-29
三子棋游戏 2020-12-29
|
5月前
|
人工智能 C语言
三子棋小游戏
三子棋小游戏
|
5月前
|
算法 C语言
三子棋小游戏(可改棋盘大小)
三子棋小游戏(可改棋盘大小)
34 0
|
5月前
简单三子棋的实现
简单三子棋的实现
44 0
|
10月前
三子棋游戏
三子棋游戏
57 0
|
10月前
|
C语言
C/【三子棋】
C/【三子棋】
|
10月前
三子棋的实现有这么简单吗?
三子棋的实现有这么简单吗?
32 0