我想編碼一個遺傳算法,學習玩類似於俄羅斯方塊的遊戲。遊戲本身相對簡單;我已經寫下了它的完整行爲。我將如何去編碼這個遺傳算法?
遊戲:
- 基於柵格,12x16。
- 您必須清除網格中的塊。
- 每5個刻度線添加一排新塊,向下推動塊。
- 您只能清除相同類型塊的簇。
- 隨着遊戲的進行,塊的類型數量會增加。
- 您只能清除3或以上的簇。
- 對於每個羣集清除,
(CLUSTER_SIZE - 3)^2
被添加到BLOCK_SCORE。 - 將簇從網格中移除後,上面的塊將向下滑動以填充間隙,並且如果在此之後存在任何水平間隙(在底行),則間隙的左側移動以填充它。
- 這個遊戲的目標是儘可能長存。時間以蜱或者你所做的動作數來衡量。
- 您的得分(或健身)取決於
(TIME_ALIVE * BLOCK_SCORE)
- 一旦一塊到達網格頂部,遊戲結束。
這個遊戲的分數合併長壽和效率。您清除的羣集越大,適應度就越高。
我已經編寫了幾個GAs,但他們一直基於本地競爭,像收集目標之類的東西,VS其他個人。 我的問題是我不知道如何解決這個問題。這個新的GA的每個不同的個人應該只有當前的網格作爲輸入。 (至少,這是我認爲會需要的)
我該如何開始爲此編碼GA?我不能爲了我的生活而努力。
。
感謝所有,
STEFFAN 'Ruirize' 詹姆斯
從你的行爲中,每個人都會玩遊戲並獲得可以與其他人比較的分數 - 我不確定問題出在哪裏? –
問題是在代碼中設置它;我需要什麼樣的特質等等。 –
什麼是'移動'?你有選擇添加什麼類型的塊,或者你可以移動一個剛添加的塊,或者是什麼? –