我正在編寫一個簡單的Go程序來學習語言。該程序是一個遊戲玩家:它exec.Command
是一個基於文本的遊戲,然後通過StdinPipe
/StdoutPipe
與它進行通信。在一些鬼混和閱讀了很多在線文檔後,我設法使骨架工作 - 相當於Hello World,我建立了雙向通信並可以處理程序終止等錯誤。在Go中存儲狀態
現在我正在嘗試編寫實際的遊戲AI代碼。由於我的目的是學習語言,因此我試圖對樣式非常小心 - 我不只是想在Go中編寫C語言(或其他語言)。
程序中明顯的分工(一旦完成所有設置)分爲兩部分。首先,程序查看當前狀態並決定應該向遊戲發出什麼命令。其次,程序查看返回的數據並相應地更新狀態。 (是的,這是一個簡單的遊戲 - 它等待輸入,然後迴應,沒有時間問題。)
我不知道這個狀態信息應該去哪裏。把它全部扔進全球範圍感覺不對,並且製造一個巨大的單身物體似乎更糟糕(而Go不是特別的OO)。無論如何,我不想讓這些函數傳遞並返回20多個變量。
一般建議是好的,但我最關心什麼是適合Go的慣用。根據要求我可以分享代碼,但我認爲這不會有幫助。
謝謝你的回答。如果你不介意我會等到明天才能接受答案 - 我仍然在研究什麼解決方案是最好的。 (在此期間+1。) – Charles 2014-10-03 02:47:40