【发布时间】:2017-04-30 13:26:49
【问题描述】:
我目前正在学习如何使用 Python,并且我正在尝试构建一个 Monopoly 模拟器(对于初学者,我只想模拟一个玩家如何在棋盘上移动)。
我如何迭代地浏览董事会职位列表:例如。范围(0, 39)?因此,如果玩家当前在位置 35,并且掷出 6,他最终会在位置 1。
希望您能提供帮助!一切顺利:)
【问题讨论】:
标签: python arrays list loops iteration
我目前正在学习如何使用 Python,并且我正在尝试构建一个 Monopoly 模拟器(对于初学者,我只想模拟一个玩家如何在棋盘上移动)。
我如何迭代地浏览董事会职位列表:例如。范围(0, 39)?因此,如果玩家当前在位置 35,并且掷出 6,他最终会在位置 1。
希望您能提供帮助!一切顺利:)
【问题讨论】:
标签: python arrays list loops iteration
你可以从玩家到棋盘末端的距离减去掷出的数字。
如果差值小于 0,则将玩家送回棋盘起点,并将差值的绝对值添加到玩家的位置。
【讨论】:
您可以使用% 运算符,如上述答案所述。例如——
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,即地中海大道。
【讨论】:
没关系,我自己找到了答案。我一定是在打瞌睡。取当前字段,对其取模,给出答案。
playerField = ((playerField + random.choice(diceRoll)%40)
工作。
【讨论】:
您需要查看模数/余数运算符 %。
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 没有什么可减去的。
当用户“环绕”板时,您可以使用它来自动处理。
【讨论】: