2017-10-10 21 views
1

如何將我的craps代碼的輸出添加到數組my_list中? 我想最終輸出的樣子:如何將我的craps代碼的輸出添加到數組中?

1's: {No. Of One's} 
2's: {No. Of Two's} 
3's: {No. Of Three's} 
4's: {No. Of Four's} 

顯然,它打印的遊戲輸出 我嘗試添加追加數組行至底部,然後打印my_list所以它不過之後運行做到這一點後,沒有工作

我的代碼如下所示:

my_list = [] 
for i in range(1,2): 
    def RollDice(): 
     import random 
     d1 = random.randint(1, 6) 
     d2 = random.randint(1, 6) 
     return int(d1 + d2) 


    def ComeOutRoll(): 
     print('Come-Out Roll') 
     roll = RollDice() 
     if roll in [7, 11]: 
      print('You win!') 
     elif roll in [2,3,12]: 
      # craps lose 
      print('Craps! You lose!') 
     elif roll in [4,5,6,8,9,10]: 
      # the point 
      print('Point %d' % roll) 
      Finished = False 
      while not Finished: Finished = ReRoll(roll) 

    def ReRoll(point): 
     roll = RollDice() 
     print(' Roll: %d' % (roll)) 
     if not roll in [7, point]: 
      # lose 
      print('Roll again!') 
     elif roll in [point]: 
      # point match 
      print('Point-Match') 
     elif roll in [7]: 
      # seven-out lose 
      # game over 
      print('Seven-Out!\nYou lose!\nGame Over!') 
      return True 
     return False 

    ComeOutRoll() 
    my_list.append(RollDice) 
print(my_list) 

Output: 

Come-Out Roll 
You win! 
[<function RollDice at 0x000000CAEFAAFAE8>] 
+0

你想知道它的霸氣多少次推出的具體數量? –

+1

您將該方法追加到您的列表中,而不是調用它的結果(您錯過了括號) – AK47

+0

我想打印出每個數字打印的次數,例如打印1:4,就好像數字1被用過4次 –

回答

0

試試這個

my_list = [] 
my_num = [] 
for i in range(1,2): 
def RollDice(): 
    import random 
    d1 = random.randint(1, 6) 
    d2 = random.randint(1, 6) 
    UpdArray(d1) 
    UpdArray(d2) 
    return int(d1+d2) 
def UpdArray(x): 
    my_num.append(x) 
def ComeOutRoll(): 
    print('Come-Out Roll') 
    roll = RollDice() 
    if roll in [7, 11]: 
     print('You win!') 
    elif roll in [2,3,12]: 
     # craps lose 
     print('Craps! You lose!') 
    elif roll in [4,5,6,8,9,10]: 
     # the point 
     print('Point %d' % roll) 
     Finished = False 
     while not Finished: Finished = ReRoll(roll) 

def ReRoll(point): 
    roll = RollDice() 
    print(' Roll: %d' % (roll)) 
    if not roll in [7, point]: 
     # lose 
     print('Roll again!') 
    elif roll in [point]: 
     # point match 
     print('Point-Match') 
    elif roll in [7]: 
     # seven-out lose 
     # game over 
     print('Seven-Out!\nYou lose!\nGame Over!') 
     return True 
    return False 

ComeOutRoll() 
my_list.append(RollDice()) 
print(my_list) 
print("req. ", my_num) 

for x in set(my_num): 
    print(x,"'s", my_num.count(x), "\n") 

輸出示例:

Come-Out Roll 
Point 10 
Roll: 7 
Seven-Out! 
You lose! 
Game Over! 
[9] 
req. [4, 6, 6, 1, 3, 6] 
1 's 1 
3 's 1 
4 's 1 
6 's 3 
+0

這可能是我的錯,id是這樣的,所以它打印出每個數字在程序中被編輯過的數量:1ns:3 2s:4等,但低於彼此 –

相關問題