整体做下来发现,难的不是代码而是逻辑,也可以说是代码思维,这一点勤能补拙;
说一下代码流程
首先我们需要三个源文件,分别写入主函数,整体的游戏过程和思路;第二个文件分别封装各种函数来完成主函数中所需的各种功能;最后一个是头文件,用来写入函数名,以及各种头文件;
再说一下游戏主要思路:
1 打印菜单;用一个函数专门来打印菜单,之后让玩家做出选择。
小技巧,玩家做出开始或者退出游戏时可以用固定的组合:do while+swich,选择1开始,选择0退出游戏,这样做的好处,将玩家输入的数作为do while的判断条件,若玩家想要退出输入0时,不仅退出了switch,同时也结束了循环,这样下一轮游戏就不会开始,代码参考如下:
2格式化棋盘(创建棋盘)
每轮游戏都必须要格式化棋盘,而做棋盘的思路是二维数组加“—|”,通过调节打印的顺序从而完成棋盘。二维数组在最开始都存放‘ ’(空格);代码参考如下:
3 然后是下棋
人下棋:玩家输入相应坐标,该位置在判定完是否有坐标后,就可以落子或者重新输入;
机器人同理只不过,坐标是由随机数产生;
小技巧,当产生的随机数%3(井字棋时3*3)那么生成的数就只可能时0,1,2了。
4判定输赢:
通过判断每行或者每列或者斜对角是否相同时且不为空格时来定夺;
此次代码中至关重要的一个小细节:当对char类型的数组遍历赋值或者判断时必须用单引号,不能用双引号;