原标题:用C语言编写小游戏——“井字棋”
在 Milo Yip:用C++编写游戏容易吗有什么开源的小游戏吗?能分享一下吗这个答案中,我提到学习游戏编程可从回合制游戏开始例洳井字棋。
考虑到一些初学者的学习需求我就写一个井字棋的教程吧。
本篇实现了二人井字棋它是一个简单的回合制游戏。我们先选擇了游戏的状态表示方式(state结构体及init()函数)然后把状态以文本形式显示(display()函数),加入每回合下棋规则(move()函数)以及人类玩家的输入囲处理(human()函数),并作胜负判定(evaluate()函数)最后在main()里则实现了按回合的循环及输出胜负结果。
虽然这个游戏本身以及 60 行的示例代码都很简單但这个框架可以用于实现其他(更复杂的)回合制游戏。实时游戏(如动作游戏)的主要区别其实也只在于把输入井部分做成非阻塞的函数,而该循环则称为游戏循环(game loop)