目录
🌱🌱 到目前为止,初阶C语言已经学了一半,相信大家学完了选择循环,函数,数组,一直想找些题目来练练手,今天就让我们来实现一下三子棋。也当做是复习之前学过的内容。
1、何为三子棋,三子棋的规则如何?
三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉棋、一条龙、井字棋等。游戏分为双方对战,双方依次在9宫格棋盘上摆放棋子,率先将自己的三个棋子走成一条线就视为胜利,而对方就算输了,但是三子棋在很多时候会出现和棋的局面。
2、 游戏的整体框架
该游戏我们采用分模块去实现:
- test.c ---- 测试游戏
- game.h ---- 函数的声明
- game.c ---- 游戏函数的实现
2.1 创建游戏菜单
test.c
首先肯定有main函数,做游戏时,main函数里面的东西尽量要少,因为是分模块写。
回到游戏设计本身,main函数里面包含一个test函数,这个test函数是通过你输入的值来进行菜单的选择,究竟是玩还是不玩,得看玩家自己。这里的选择采用switch。当然了,一个游戏的开始必然离开不了菜单,在此之前,还要打印menu函数。这里的开始整体逻辑与猜数字是一样的。猜数字我在之前的文章里写过,不熟悉的同学可以先去看看猜数字。下面放一下猜数字那篇博客的链接:http://t.csdn.cn/Z9JJD
#include <stdio.h> void menu() { printf("*********************\n"); printf("***** 1.play *****\n"); printf("***** 0.exit *****\n"); printf("*********************\n"); } void test() { int input = 0; do { menu(); printf("请输入:1/0->"); scanf("%d", &input); switch (input) { case 1: printf("sanziqi\n"); break; case 0: printf("退出游戏!\n"); break; default: printf("重新选择!\n"); } } while (input); } int main() { test(); return 0; }
接下来测试一下目前游戏代码是否能正常运行:
我们目前发现游戏代码没有错误,下面只需在switch(1)里面放置game(),来实现游戏的基本逻辑。
接下来我们来到game()函数里面,写三子棋,肯定要先有棋盘,没有棋盘,游戏根本无法进行。这个棋盘(3*3)不就是我们学过的数组嘛。
game.h
这里在创建的过程中,数组的行列需要从game.h里面导入,由于后面的game.c也需要从game.h中导入。所以为了避免代码的冗余,我们直接将#include <stdio.h>直接放到game.h里面。这里选用宏定义,其实也是对这个游戏的优化,我们可以将他改成10*10。
2.2 初始化棋盘
有了棋盘之后,第一步是清空棋盘,