繁体   English   中英

骰子总和游戏

[英]Dice roll sum game

好吧,我不知所措。 我正在尝试制作一个游戏,你可以随意掷骰子,但如果你的掷骰总和大于或等于 14,你就输了。 (注意我对编程很陌生,如果它很糟糕,很抱歉。)问题是代码继续运行,因为它不断询问用户输入“即使“your_list”的总和大于14.

import random
your_list = []


def dice_simulate():
    number = random.randint(1,6)
    print(number)
    while(1):
       flag = str(input("Do you want to dice it up again:Enter 1 and if not enter    0"))
       if flag == '1':
         number = random.randint(1,6)
         your_list.append(number)
         print(number)
         print (your_list)
       elif sum(your_list) >= 14:
         print ('you lose')
       else:
         print("ending the game")
         return

dice_simulate() 

在这种情况下添加获胜和return的条件。 此外,将return添加到您丢失的条件。

改进代码的其他更改:

  • 删除无用的第一个骰子(在您的情况下不计算在内)。

  • 在可能的最小 scope 中声明your_list (此处,在函数内部)。

  • 改进提示。

import random

def dice_simulate():
    your_list = []
    while True:
       flag = str(input("Roll the dice (y/n)? "))
       if flag == 'y':
         number = random.randint(1,6)
         your_list.append(number)
         print(number)
         print (your_list)
         list_sum = sum(your_list)
         if list_sum > 14:
             print ('you lose')
             return
         elif list_sum == 14:
             print ('you win')
             return
       else:
         print("ending the game")
         return

dice_simulate()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM