2013-01-17 60 views
5

在我說別的之前,我想提一下,我幾乎是全新的編碼,並且對python只有非常基本的理解。如何爲一個變量分配一個隨機數?

既然這樣,我的問題是,我試圖編碼一個文本冒險遊戲,沿着D & D.我卡在早期階段,即如何分配一個1到18之間的隨機整數給一個變量。

我已經看到了這樣做的一些方法,但每次調用變量的值都會發生變化。這不可能發生。其原因是因爲我希望統計數據(力量,智慧,智力,敏捷,魅力和體質)是一個隨機生成但固定的數字,每次都可以調用它並使其相同。

我試過用Str = random.randomint(1,18)這樣的東西來試用,使用隨機模塊。

我最近來的是使用lambda函數,所以當我調用變量時,它會生成一個隨機數,每次都是不同的。這些都沒有集會工作,我真的想知道我做錯了什麼。

+0

如果你模擬3卷6邊骰子,不應該是3到18之間的隨機數? –

+6

@MarceloAssis:不,它應該是1到6之間的3個隨機數加在一起(儘管OP沒有提到實際使用3d6)。 – geoffspear

+0

@Wooble當使用3個隨機數時,結果會不一樣? –

回答

7

我看你很接近你所擁有一切:

Str = random.randomint(1,18)應該Str = random.randint(1,18)

這是分配隨機的int變量Str行了,而當你問Str你應該得到每次都是相同的數字。

如果您一直致電Str = random.randint(1,18),它會每次更改Str。所以只做一次。

如果您瞭解或瞭解classes,您應該使用它們來包含您的角色/物品/法術/冒險/怪物等,它們可以具有屬性和屬性以及庫存等等,就像遊戲本身一樣,在不同類型下的東西。

注意:您提到您使用了lambda,這可能意味着您已將Str分配給函數,該函數每次都返回一個隨機變量,這意味着每次您詢問Str時您實際上都會要求函數返回一個隨機數。

+1

它是'random.randint','random.randomint'不存在:) – mgilson

+0

+1瞭解OP真正想要的內容:) –

+0

@mgilson謝謝,我複製了OPS代碼,沒有看太緊密。 –

1

歡迎使用編碼。

我一直是一個Web開發人員一段時間,我最近也開始沉浸在比php更好的東西我的牙齒(在我看來)。我也會使用:

Str = random.randomint(1,18) 

您是否正在使用IDE?由於代碼完成,當您第一次學習新語言時,我發現它們非常棒。它可以幫助您更快地瞭解自己的語言方式,因爲無需前往各種網站查看語法。祝你好運!基於文本的冒險遊戲是開始學習的好方法!

相關問題