我正在编写一个简单的Go程序来学习语言。该程序是一个游戏玩家:它exec.Command
是一个基于文本的游戏,然后通过StdinPipe
/StdoutPipe
与它进行通信。在一些鬼混和阅读了很多在线文档后,我设法使骨架工作 - 相当于Hello World,我建立了双向通信并可以处理程序终止等错误。在Go中存储状态
现在我正在尝试编写实际的游戏AI代码。由于我的目的是学习语言,因此我试图对样式非常小心 - 我不只是想在Go中编写C语言(或其他语言)。
程序中明显的分工(一旦完成所有设置)分为两部分。首先,程序查看当前状态并决定应该向游戏发出什么命令。其次,程序查看返回的数据并相应地更新状态。 (是的,这是一个简单的游戏 - 它等待输入,然后回应,没有时间问题。)
我不知道这个状态信息应该去哪里。把它全部扔进全球范围感觉不对,并且制造一个巨大的单身物体似乎更糟糕(而Go不是特别的OO)。无论如何,我不想让这些函数传递并返回20多个变量。
一般建议是好的,但我最关心什么是适合Go的惯用。根据要求我可以分享代码,但我认为这不会有帮助。
谢谢你的回答。如果你不介意我会等到明天才能接受答案 - 我仍然在研究什么解决方案是最好的。 (在此期间+1。) – Charles 2014-10-03 02:47:40