【三子棋】——玩家VS电脑(C语言实现)

      最后更新:2022-07-30 09:25

      文章目录

      • 前言
      • 1.游戏框架
        • 1.1 game.h
        • 1.2 test.c
        • 1.3 game.c
      • 2.游戏实现
        • 2.1初始化棋盘
        • 2.2打印棋盘
        • 2.3玩家下棋
        • 2.3电脑下棋
        • 2.4判断输赢
        • 2.5游戏结局
      • 3.电脑下棋优化
      • 4.小结

      前言

      三式棋是一种黑白的棋。三个孩子棋是传统的民间游戏,它也被称作九宫棋、圆叉叉、龙棋和精写的棋。把方形连接到角上,兩條棋子分別放在兩側。把你的三个棋子放在一排,对方就算输了。但是,很多情况下, chess会发生这种情况。

      在这里插入图片描述
      好吧,我们不要说太多了,现在我要带你到C语言来实施这个小游戏

      1.游戏框架

      游戏分为三个模块: game.Game.c和test.c

      1.1 game.h

      game.h:用于写相关头条、声明游戏中功能的部分,以及执行预处理指令

      Game.h具体实现:

      1.2 test.c

      test.c:主要函数和游戏逻辑函数实现

      首先我们需要实现一个主要功能,把游戏菜单功能放在主功能中,使用循环来控制我们是否开始游戏,这里我们需要用到rand、srand和time函数来生成随机数,并将其应用于计算机的棋座标
      在这里插入图片描述
      下面是游戏逻辑实现函数play_game函数:

      • 编写二维数值集来实现棋盘,并对其进行初始化。具体实施的棋盘详述如下
        在这里插入图片描述
      • 接下来,玩家和电脑玩象棋,玩家使用角色*进行游戏,电脑棋与字符#,并使用循环来进行玩家与计算机之间的游戏,这里我们需要注意的是,每当一个玩家(或电脑)玩象棋时,它需要一个决定游戏的赢赢状态的函数
      • 游戏赢/输函数的返回值决定游戏是否继续进行。如果游戏继续进行,板上的状态将打印出来,玩家或计算机继续进行游戏
        在这里插入图片描述
      • 当牌子满了或一方赢了,退出比赛,宣布比赛结果
        在这里插入图片描述

      c的实例实现:

      1.3 game.c

      game.c:在游戏中实现每个接口功能

      由于这个模块是游戏过程中的功能的实现,我们把它放在游戏实现这个模块来一一讲述

      2.游戏实现

      2.1初始化棋盘

      这里我们需要使用一个3*3维阵列,将每个元素置于空白字符中,这里我们可以用字符'空'来实现。

      2.2打印棋盘

      为了使纸板的印刷更加漂亮

      • 二维数组数组中的每一个元素都采用”空格 元素 空格“的方式打印
      • 使用符号"|"和"--"部署板"

      2.3玩家下棋

      • 这个函数的最后一个字符,字符x,在玩家打棋时被用来接收字符#。
      • 使用循环来控制玩家的输入。如果输入坐标不符合游戏规则,玩家将被提示重新输入,如果坐标是合法的,则下落
      • 这里需要注意的是:
        由于子组以0开始,我们输入实际坐标,因此必须减少水平坐标以一个,以确定坐标是否合理和下降

      2.3电脑下棋

      这比较简单,但有一点值得注意

      • 我们需要在集合大小范围内通过%ROW和%COL控制生成的随机坐标,如果这个坐标不被占用,则降落

      2.4判断输赢

      • 为了使我们的代码更加灵活,只需要修改二维阵列的行和列N子棋,使用行数形参char ch接收到无论是电脑还是玩家所落子的“字符”,并使用计数器的方式按照行-行-主对角-子对角的顺序依次进行判断,若满足三行三列或者对角线的字符都相同,则返回该字符
      • 如果玩家和计算机不能在判断过程中获胜,则必须分开一个函数来确定板子是否满is_win在函数中调用函数. 如果板满了, 返回 "q”

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类