2012-02-18 61 views
2

我是一名17歲的高中生,1周前剛剛開始學習C編程。我在網頁設計方面也有一些非常基本的經驗(+用javascript和php編寫的一個小網站程序,我曾經用聯繫表格做了一個網站)。 無論如何,我對人工智能非常感興趣,並且作爲一個學校項目,我認爲我會建立一個棋盤引擎和一個機械臂,用於物理移動棋子。 現在,我必須完成發動機的截止日期爲7個月,(並且必須在一年內完成)。 你認爲總共有7個月的初學者編程一個國際象棋引擎是否可行(並最終使用該引擎構建一個機器人手臂?) 非常感謝!C中的國際象棋引擎

+0

我認爲這很坦率地說實話。一個或另一個,但爲什麼呢? – 2012-02-18 21:39:39

+0

還有第三部分 - 你將如何處理輸入?換句話說,你的程序如何知道它的(可能是人類的)對手的動作? – Thomas 2012-02-18 21:44:19

+0

如果移動設置爲文本輸入,他可以在一些簡單的遊戲中節省一些時間。但在國際象棋中,即使是最原始的AI,UI的價格也沒有那麼顯着。 – Gangnus 2012-02-18 21:49:19

回答

2

大聲笑,偉大的雄心壯志,但是要完成它將需要很多努力。空閒時間構建引擎本身需要相當多的時間,因爲國際象棋遊戲的AI非常複雜,您必須告訴程序在考慮最終目標的前提下至少進行7次移動,更不用說您會必須對與機器人手臂相互作用的部件進行編程。理論上你可以通過利用一些開源的國際象棋遊戲來欺騙/不重新發明輪子,並且只需要在那一段時間爲自己節省幾個月的編程時間。

+0

你是說我在7個月內無法自己編程引擎? (我想要自己編寫引擎的原因是我想獲得編程經驗,而不僅僅是完成我的學校項目)。 – geekkid 2012-02-18 21:49:47

+0

不,不是不可能的,只是很多的工作和學習。當你學習和編程的同時,你的速度要慢10倍左右。我只是說要爲你手上的一個大項目做好準備。每當你找到一些你不知道編程的東西時,你必須去閱讀,學習和排除故障,直到找出答案。開始點擊書籍:) – Ryan 2012-02-18 21:53:31

+0

對於正確的編程習慣也需要很長的時間才能獲得良好的感覺,準備好去獲得毫無意義的錯誤,並且完成這些工作是非常困難的,除非你有一個人可以爲您閱讀代碼併爲您提供幫助。祝你好運,我喜歡你的努力:) – Ryan 2012-02-18 21:55:02

1

我認爲,選擇一些真正的任務開始練習會更好。當然,你可以分步驟分配任務。但在國際象棋中,第一步 - GUI - 對你來說是真實的。但第二個 - 最原始的AI - 非常困難。這是遊戲的具體內容。

如果您將逆光/奧賽羅視爲主題遊戲,那麼可以創建一個非常原始的AI。我不認爲你可以管理遞歸思維,但是可以通過一步式思考,對位置進行評估,當然,對於遊戲的GUI也是可能的。但是你必須努力工作。如果你有興趣,我可以給你一個關於這個遊戲實現的建議 - 我在不同的機器上自己做了兩次。但是機器人手並不容易。

當然,如果你是一個天才,你可以管理一切。 (我不是在開玩笑,你永遠不能說......)

而C不是AI的最佳語言。它甚至不是更好的一個。

+0

呵呵,感謝Hanz(和其他人也一樣)。在閱讀你的文章之前,我真的開始爲自己感到難過:d。但是,是的,我只需要這樣做,否則我不會畢業:d – geekkid 2012-02-18 22:15:02