2014-10-29 57 views
1

我正在設計一個簡單遊戲的AI,我希望實現一個隨機移動。但是這個運動必須滿足遊戲規則。Prolog在區間內連續綁定

選擇隨機整數可以用random_between/3完成,但變量綁定只發生一次。因此,如果我在綁定後檢查規則,如果失敗,該函數將返回false

我想用一個像between/3這樣的隨機整數來綁定一個變量:嘗試一些值,並在失敗的情況下,返回並嘗試另一個綁定。但是between/3不是隨機的。

有沒有簡單的方法來實現這個或類似的結果? (上SWI-Prolog的)

+1

@lurker來自SWI的'random_between/3'只能成功一次。需要Paulo的建議。 – 2014-10-29 00:33:00

+0

@SergeyDymchenko啊好的,我的錯誤。 – lurker 2014-10-29 00:54:39

回答

3

也許你可以寫這樣的:

?- repeat, random_between(1, 10, X). 
X = 6 ; 
X = 2 ; 
X = 9 ; 
X = 5 ; 
... 

只要確保你砍的選擇點,你找到滿意的答案後。

+0

令人尷尬的容易和作爲一種魅力。謝謝! – VillasV 2014-10-29 00:46:31