用 C++ 编写游戏容易吗? 有什么开源的小游戏吗? 能分享一下吗? 这个答案中, 我提到学习游戏编程可从回合制游戏开始, 例如井字棋.
下面是小编整理好的一套 C/C++ 资料, 加小编 C/C++ 编程学习群: 825414254, 获取系统性学习 C/C++ 的学习资料
考虑到一些初学者的学习需求, 我就写一个井字棋的教程吧.
1. 游戏状态的表示
首先, 我认为表示方法 (representation) 是编程中应最先要考虑的事情. 对于回合制游戏, 我们需要存储一个回合中的游戏状态(game state).
以下用一个结构体表示井字棋一个回合中的状态, 并加入函数作初始化:
以上用二维数组存储棋盘 (board) 是其中一种表示方式, 另一种方式则是记录每个回合下棋子的位置. 我们采用前者是因为它较容易实现胜负判定. 有些回合制游戏可能使用冗余的表示方式, 以方便实现各种规则.
而使用结构体而不是直接用全局变量, 可带来一些优点, 例如增强可读性及内聚性.
2. 显示游戏状态
编写游戏时, 我们通常希望先显示游戏状态, 之后才加入其他规则, 因为这样可以方便测试.
我希望用这样的文本显示游戏状态, 当空置时写上位置编号(1-9), 以方便玩家输入下棋位置:
来源: http://www.jianshu.com/p/b99c66cda113