2016-08-13 6 views
-4

私の問題は、現在私のyahtzee用のコードがあることです(私はすべてのコードを投稿しませんが、重要なものはこのように見えています)。Yahtzee、属性のリストの代わりに辞書を使用

from terminaltables import AsciiTable 

class Player: 
    def __init__(self,name): 
     self.name=name 
     self.ones=0 
     self.twos=0 
     self.threes=0 
     self.fours=0 
     self.fives=0 
     self.sixs=0 
     self.abovesum=0 
     self.bonus=0 
     self.onepair=0 
     self.twopair=0 
     self.threepair=0 
     self.fourpair=0 
     self.smalladder=0 
     self.bigladder=0 
     self.house=0 
     self.chance=0 
     self.yatzy=0 
     self.totalsum=0 

def welcome(): 
    global spelarlista 
    spelarlista=[] 
    print("Welcome to the yahtzee game!") 
    players = int(input("How many players: ")) 
    rounds=0 
    while not players==rounds: 
     player=input("What is your name?: ") 
     rounds=rounds+1 
     spelarlista.append(Player(player)) 
    table_data = [["Name"] + spelarlista, 
     ['Ones'] + [player.ones for player in spelarlista], 
     ['Twos'] + [player.twos for player in spelarlista], 
     ['Threes'] + [player.threes for player in spelarlista], 
     ['Fours'] + [player.fours for player in spelarlista], 
     ['Fives'] + [player.fives for player in spelarlista], 
     ['Sixs'] + [player.sixs for player in spelarlista]] 
    table = AsciiTable(table_data) 
    table.inner_row_border = True 
    print(table.table) 
    spelarlista[0].add() 
welcome() 

今の問題は、私は、あなたが私が[player.ones for player in spelarlista]を持っていると私ことを見ることができますあなたは私の歓迎方法を見てみると、すべてのものをself.ones、self.twosなどの代わりに辞書を追加したいということですプレイヤーのポイントを割り当てるためにこれを必要とするのですが、どうすればこの作業を辞書で修正することができますか?好奇心があったら辞書を追加して追加してください!

事前に感謝!

答えて

1
dict_names = ['ones', 'twos', ..., 'totalsum'] 
self.dict = {name:0 for name in dict_names} 

と助けをplayer.fours

+0

おかげで多くの場合は、代わりにplayer.dict['fours']を使用したいアクセスするために!大変感謝しています! –

関連する問題