【问题标题】:Iteratively searching through a looped list迭代地搜索循环列表
【发布时间】:2017-04-30 13:26:49
【问题描述】:

我目前正在学习如何使用 Python,并且我正在尝试构建一个 Monopoly 模拟器(对于初学者,我只想模拟一个玩家如何在棋盘上移动)。

我如何迭代地浏览董事会职位列表:例如。范围(0, 39)?因此,如果玩家当前在位置 35,并且掷出 6,他最终会在位置 1。

希望您能提供帮助!一切顺利:)

【问题讨论】:

    标签: python arrays list loops iteration


    【解决方案1】:

    你可以从玩家到棋盘末端的距离减去掷出的数字。

    如果差值小于 0,则将玩家送回棋盘起点,并将差值的绝对值添加到玩家的位置。

    【讨论】:

      【解决方案2】:

      您可以使用% 运算符,如上述答案所述。例如——

      Position        Place
      0               Go
      1               Mediterranean Avenue
      ...
      35              Short Line
      36              Chance
      37              Park Place
      38              Luxury Tax
      39              Boardwalk
      

      现在,如果用户在位置 35(短线)并掷出 6,他们的新位置将是:

      Old_Position = 35
      Roll         = 6
      New_Position = (35 + 6) % 40 = 1
      

      所以他们现在将位于位置 1,即地中海大道。

      【讨论】:

        【解决方案3】:

        没关系,我自己找到了答案。我一定是在打瞌睡。取当前字段,对其取模,给出答案。

        playerField = ((playerField + random.choice(diceRoll)%40)
        

        工作。

        【讨论】:

          【解决方案4】:

          您需要查看模数/余数运算符 %。

          https://en.wikipedia.org/wiki/Modulo_operation

          例如,表达式“5 mod 2”的计算结果为 1,因为 5 除以 2 的商为 2,余数为 1,而“9 mod 3”的计算结果为 0,因为 9 除以 3商为 3,余数为 0; 3 乘以 3 后,9 没有什么可减去的。

          当用户“环绕”板时,您可以使用它来自动处理。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-05-08
            • 2020-04-08
            • 2017-11-20
            • 1970-01-01
            • 1970-01-01
            • 2017-09-22
            • 2021-07-12
            • 2021-04-11
            相关资源
            最近更新 更多