2014-02-28 74 views
1

在我的空閒時間我正在做一個基於文本的/ ascii(現在)流氓般的遊戲作爲研究(相關因爲上下文的問題) 目前,我試圖產生地形/將在世界上使用的房間。 世界應該是'無盡的'。terrain gen python約束條件

生成隨機地形不是大問題。 我掙扎與尋找一種方法來maintainably添加喜歡的約束: 「平原不能被旁邊的山」

我可以建立一個大decisiontree,然而,這將意味着,如果currentTile ==平:如果不旁邊的山和一個如果currentTile ==山:如果不是文本到平原。

這是不可維護的,因爲每個規則必須在2個地方執行。

我在想這種類型的問題存在哪些標準解決方案?

問候

+0

這不是一個平庸的問題豬頭... – Netwave

+0

是的,我知道,但我努力學習,所以我不介意它是困難或挑戰性 – ShadowFlame

回答

1

我不完全相信我跟隨你的榜樣摘錄,但你可以有2元組的列表,每個包含不允許的組合。然後,你可以查找

disallowed = [set(plain, mountains)] 
if set(currentTile, newTile) not in disallowed: 
    #rest of code 
+0

我有使它不被允許= [set([plain,mountains])] 但這很好。非常感謝 – ShadowFlame