【问题标题】:I've overcomplicated adding variables for my dice roll game我为我的掷骰子游戏添加变量过于复杂
【发布时间】:2021-03-19 20:05:26
【问题描述】:

我正在做一个掷骰子任务。规则是:

  • 每位玩家掷骰子的点数会加到他们的分数中。
  • 如果总数为偶数,则在其得分上增加 10 分。
  • 如果总分是奇数,则从他们的分数中减去 5 分。
  • 如果他们掷出双倍,他们可以多掷一个骰子,并将掷出的点数加到他们的分数中。
  • 玩家的得分在任何时候都不能低于 0。
  • 5 轮结束时得分最高的人获胜。

基本上,我所做的是创建 2 个独立玩家在 2 轮游戏中滚动的变量,现在我尝试将这些变量加在一起,以便玩家可以将第 1 轮和第 2 轮的总数合并.我的老师提到了一些关于 while 函数的事情,但他只能这么说,而且我不知道该怎么做。

我觉得我所做的事情过于复杂,而且它甚至不起作用。

if (round2scoreP1 % 2) == 0 + (round1scoreP1 % 2) == 0:
    addedscoreround2P1even=(totalround1scoreP1even)+(totalround2scoreP1even)
    print(username1,"'s total for round 1 and 2 is",addedscoreround2P1even,".")
elif (round1scoreP1 % 2) != 0 + (round2scoreP1 % 2) != 0:
    addedscoreround2P1odd=(totalround1scoreodd)+(totalround2scoreodd)
    print(username1,"'s total for round 1 and 2 is",addedscoreround2P1odd,".")
elif (round1scoreP1 % 2) == 0 + (round2scoreP1 % 2) != 0:
    addedscoreround2P1evenodd=(totalround1scoreP1even)+(totalround1scoreP1odd)
    print(username1,"'s total for round 1 and 2 is",addedscoreround2P1evenodd,".")
elif (round1scoreP1 % 2) != 0 + (round2scoreP1 % 2) == 0:
    addedscoreround2P1oddeven=(totalround1scoreP1odd)+(totalround1scoreP1even)
    print(username1," obtained",addedscoreround2P1oddeven,".")

【问题讨论】:

  • 这太低了,无法提供帮助...给我们游戏规则,以及您如何代表各种演员(玩家,得分,滚动等),而不是希望我们可以对您的 if 块进行逆向工程!

标签: python


【解决方案1】:

我不会给你写完整的作业,但你可以考虑使用 Player-class 来存储滚动和总分:

class Player():
    
    def __init__(self):
        self.rolls = []
        self.total_score = 0

    def roll_dice():
        self.rolls.append(random.randint(1, 6))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-24
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多