2015-02-11 47 views
-2

所以這是我創建的第一個(我自己的)程序之一。 我卡上的某一部分雖然不會列出整個劇本,只是部分卻困:爲什麼我不能在列表中存儲數字並使用該數字來導致「選擇」?

import random 
roll_dice = random.randint(0,11) 
Player_Number = [] 

def char_creation(): 
    ROLL = ("YOU ROLLED A %d !" % roll_dice) 
    Player_Number.append(ROLL) 


def player_choices(char_creation): 
    if Player_Number == 0: 
     print ("Your character is Super Man!") 
    elif Player_Number == 1: 
     print ("Your character is Bat Man!") 

    (Not going to continue listing choices) 



char_creation() 
player_choices(char_creation) 

基本上這是我遇到什麼有問題的。和理解。我不能隨機輸入一個數字,將它存儲在一個列表中,並讓號碼根據該數字選擇一個選項?對不起,我對編程真的很陌生。任何提示將不勝感激!

編輯:其實另一個問題浮現在腦海當我讀這比:

class character_(object): 
    def __init__(self, name, health, moral): 
     self.name = name 
     self.health = health 
     self.moral = moral 

class Super_Man(object): 
    def __init__(self, name="Super Man", health=200, moral=25): 
     self.name = name 
     self.health = health 
     self.moral = moral 
     print (" {0} is your character! ".format(self.name)) 

所以我只是困惑。如果我想要分開的班級(具有特定屬性數量的人物),我是否必須創建我創建的第一堂課? 或者我可以根據字符/字符的屬性來製作單獨的類嗎? 如果我想根據決策減去或添加健康/道德,這種影響會如何?

+0

查看Python類創建的文檔,你正在做你不能在列表比較了一些,但你可以比較它的元素之一,許多。但目前還不清楚這份清單的目的是什麼。 – interjay 2015-02-11 18:13:00

+0

列表的目的是爲了選擇一個隨機數,然後存儲在一個列表中。使用這個數字,它將決定玩家將會得到哪個角色。因此,您可以使用len(Player_Number),但不是專門比較該數字並將其用於決策? – eSs 2015-02-11 18:14:16

+0

什麼是不明確的是爲什麼你需要一個列表,而不是隻是將數字存儲在一個變量。 – interjay 2015-02-11 18:15:14

回答

0

你會爲第二部分做的是創建超人作爲角色對象。你已經定義了角色對象以具有名稱,健康和士氣。然後,您使用該模板創建一個超人物體。

SuperMan = character(); 

SuperMan.name = "Super Man" 
SuperMan.health = 250 
SuperMan.morale = 25 

這將是你將如何實現在Python中隨機字符選擇。

import random 
roll_dice = random.randint(0,2) 

def player_choices(x): 
    if Player_Number == 0: 
     print ("Your character is Super Man!") 
    else Player_Number == 1: 
     print ("Your character is Bat Man!") 

player_choices(roll_dice) 

我會建議你在https://docs.python.org/2/tutorial/classes.html

+0

如何獲取Player_Number並創建類實例? (在這種情況下 - 超人)。創建另一個函數並執行if/elif/elif?如果Player_Number == 0:SuperMan = Super_Man(自我,名字,健康,道德)?一直告訴我,我不是因爲(自己)而給予足夠的爭論?如果我使用名稱/健康/道德,它說3個參數,4個需要.. – eSs 2015-02-11 18:06:05

+0

至於爲什麼你不能存儲玩家號碼,這是因爲Player_Number聲明認爲Player_Number是一個類或類型,而不是變量名。它應該讀取像Player_Number numbers = []; – richtarj 2015-02-11 18:06:26

+0

你說得對@interjay,我沒有給予適當的關注。聲明基本上是正確的,但它仍將Player_Name作爲類或類型。也許使用括號中的int值初始化它,然後刪除它會更合適。 – richtarj 2015-02-11 18:21:14

相關問題