如果我们想要编写这样一个三子棋的小程序,那么我们就得首先在脑海中构建一个大概的框架。
目录
1.设计菜单选项,供用户选择。
首先我们至少要让选项出现一次,而且玩家玩完了一次可以继续选择,那么最好的选择就是
do-while语句
while(i)//当输入结果为0,表达式为假,则退出循环,当非0,为真,再次进入循环。
执行结果:
2.创建二维数组,并且初始化。
三子棋是3*3的格子,故创建三行三列的二维数组,并且全部初始化成空格,以便确定好位置,可供后续的下棋操作执行。并且分装在game()函数中,否则全放在主函数就显得太满。
#define定义常量
初始化在函数进行(函数可供嵌套调用)
3.打印棋盘。
我们知道三子棋的棋盘也就是井字:
如果暴力操作也是可以的,但不提倡,我们知道二维数组的打印是要用到两个循环,这里是否给到你提示呢,同样也是三行三列的棋盘,也可以按照行循环和列循环进行咯。
4玩家和电脑博弈。
下棋肯定是一方下一次,直到有人赢了就停止嘛,所以就可以循环进行。
并且一方落完子肯定是再打印一下棋盘好观看棋子的落处,所以每一方下完棋就要打印棋盘。
那么接下来就看看玩家是如何下棋的,提醒一点:玩家不一定是程序员,可不知道数组,更不知道数组从第0行开始的。
电脑下棋就比较随意了,此时调用随机数:
5.判断输赢。
每一方下完棋子还得判断输赢的,所以判断结果对于玩家来说肯定是赢,输,平局三种结果:
不知道你是否疑问,为什么我设置的返回值是玩家棋子的样式?
:因为这样设置可以很大的减轻代码量,例如赢是一种情况同时也分为两种1.玩家赢2.电脑 赢。所以直接设置返回值的样式就可以省略这一点。
所以从这我们应该可以学到,函数可以实现将一个难的问题封装成一个个小的问题,并逐一实现。