三子棋的实现

 今天学习了三子棋的算法,让我感受到算法的奇妙与复杂。

以下是关于我对三子棋的一些理解;如有不对或改善的地方希望能得到大家的反馈;

要实现三子棋,我们先要把三子棋运行的思路想好:

首先我们要有游戏菜单供玩家选择

游戏运行的大体结构如下:

然后我们在看游戏实现的过程 :

1.初始化棋盘

 初始化棋盘前,我们先定义一个二维数组 

 然后我们初始化棋盘,在这里我们可以调用自己写的函数,如果代码全放在同一个.c文件会让代码变得很长且难阅读,我这里创建一个game.h头文件用来调用(后文中调用的函数名都在这)

所谓初始化就是将棋盘里的位置全变为空格

2.打印棋盘

 初始化棋盘后,我们要打印棋盘。棋盘的行列数为3x3,我们可以在game.h里定义他们的行列数,这样我们可以随意的改动棋盘的大小。

我们要打印棋盘的大概是这样的:

用循环来录入数据

 

 3.玩家与电脑落子

搞定棋盘后,开始想怎么实现录入坐标,让电脑与人对弈。我们要让玩家与电脑每次输入都打印棋盘。我们用一个循环来实现。

接着我们来看录入坐标,让人与电脑落子。首先是提示玩家走,然后输入坐标,在棋盘上打印,如果输入坐标不对,我们需提示玩家,让其重新输入。

而电脑则不需要这么麻烦,但我们要使用随机数函数和时间戳。因为我们随机数的生成应在棋盘坐标范围内,所以我们可让随机数对行列数取余。 4.判断输赢

 我们下棋肯定要要结果,不然游戏将陷入死循环。在每次我们和电脑输入坐标、打印棋盘后,我们要进行一次判断,如果出现三子连成线的话,停止下棋并输出结果。我们定义一个字符ret,如果ret=‘*’为玩家赢,‘#’为电脑赢,‘Q'为平局,’C‘则继续。

第一次写这种相关的博客,不好的方面希望大家能提出一些意见。

最后,大家一起努力啊!!! 

 

 

 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>