2015-12-29 18 views
0

我必須爲一門課程創建螞蟻模擬。基於網格的螞蟻模擬世界

我必須使用「2D離散(基於網格)的世界」來放置螞蟻。問題是我不知道如何/是什麼。

我只需要有人解釋並告訴我這是什麼。提前感謝!

+0

你真的需要展示一些你自己的工作,因爲我們不能只爲你做這件事,但我建議你根據最終的複雜性來研究這種事情的2D數組。 – haddow64

+1

我會把我的工作放在這裏,但沒有關於我所追求的基於網格的世界。但謝謝你試圖指出我正確的方向。 –

+0

好的,沒問題,就像我說的那樣,這取決於它最終會變得多麼複雜。如果它只是一個簡單的模擬,那麼一個具有代表「世界對象」的各種int值的二維數組將會很好,如果不是這樣的話,可能值得關注XNA以及2D瓦片引擎上的各種教程。 – haddow64

回答

0

是的它應該是非常基本的,就像螞蟻應該四處移動,找到食物和巢。 - d戈布爾

決定後上述答覆的評論,就像我說的,你不會得到你所需要而不發佈一些自己的確切的代碼,但你需要做的(研究)是什麼。

  1. 模擬你的世界。 (有更好的方法可以做到這一點,但是對於一個簡單的世界來看,二維數組中的int值代表瓦片,例如0 =空,1 =螞蟻,2 =食物,3 =巢,4 =障礙物)
  2. 將你的對象在具有屬性的某種結構中。 (例如,你將需要一個Ant對象,其中包含諸如move,eat等各種動作,但如果這是你的第一個C#項目,可以自由地忽略它,直到你更舒服一點)
  3. 遊戲刻度遊戲,查找遊戲狀態管理或遊戲循環。 (再次,這取決於經驗,如果你想要簡單的基本循環會做的事情)。
  4. 爲你的螞蟻提供一個基本的AI,他們只是隨機移動(除非他們試圖碰到障礙物),還是會尋找最近的食物來源,然後返回巢穴? (如果是的話,那裏有很多尋路示例)
  5. 繪製你的遊戲,因爲這只是使用控制檯,不需要任何花哨。有很多C#遊戲機的例子會告訴你如何做到這一點。

如果你對這些術語進行了一些Google搜索,那麼這些術語應該可以幫你實現目標。

+0

'私人位圖worldImage; public ASForm() { InitializeComponent(); randObjectForFood = new Random(); randObjectForNest = new Random(); randObjectForAnt = new Random(); int worldWidth; int worldHeight; worldWidth = 800; worldHeight = 800; worldImage = new Bitmap(worldWidth,worldHeight); 「這就是我爲創造我的'世界'所做的一切,但它不是一個基於網格的世界。 –

+0

由於隨機生成你的世界的代碼只是一個嵌套循環,並且是相當基礎的,所以我將它鏈接到這裏(https://gist.github.com/anonymous/4c568927c4f4924dc3e4),這將生成一個10x10的網格。之後,每一步都在上面列出,下一步可能是創建一個Ant對象[here。](https://msdn.microsoft.com/en-gb/library/aa288470(v = vs.71).aspx) – haddow64