Python While循环,它应该在每次运行后返回一个新的随机整数
我目前正在做一个棋盘游戏。我在编码骰子时遇到了一些麻烦。出于某种原因,while循环在每次运行后都会返回相同的随机整数,而不是新的整数 这就是我所取得的成绩:Python While循环,它应该在每次运行后返回一个新的随机整数,python,for-loop,if-statement,random,while-loop,Python,For Loop,If Statement,Random,While Loop,我目前正在做一个棋盘游戏。我在编码骰子时遇到了一些麻烦。出于某种原因,while循环在每次运行后都会返回相同的随机整数,而不是新的整数 这就是我所取得的成绩: def dice(): turtle.addshape("bull.gif") player1 = turtle.Turtle() player1.shape("bull.gif") player1.penup() player1.goto(-240,
def dice():
turtle.addshape("bull.gif")
player1 = turtle.Turtle()
player1.shape("bull.gif")
player1.penup()
player1.goto(-240, -260)
turtle.addshape("cow.gif")
player2 = turtle.Turtle()
player2.shape("cow.gif")
player2.penup()
player2.goto(-240, -220)
dice1 = random.randint(1, 6)
p1_list = ([-240, -260], [-120, -260], [0, -260], [120, -260], [240, -260], [240, -140], [120, -140], [0, -140], [-120, -140], [-240, -140], [-240, -20], [-120, -20], [0, -20], [120, -20], [240, -20], [240, 100], [120, 100], [0, 100], [-120, 100], [-240, 100], [-240, 220], [-120, 220], [0, 220], [120, 220], [240, 220])
p2_list = ([-240, -220], [-120, -220], [0, -220], [120, -220], [240, -220], [240, -100], [120, -100], [0, -100], [-120, -100], [-240, -100], [-240, 20], [-120, 20], [0, 20], [120, 20], [240, 20],[ 240, 140], [120, 140], [0, 140], [-120, 140], [-240, 140], [-240, 260], [-120, 260], [0, 260], [120, 260], [240, 260])
dieValue = dice1
P1_pos = player1.goto(p1_list[0])
pos = 0
w = True
while w == True:
player1_dice = input("\nBULL (P1): Please press 'ENTER' to roll the dice ")
if player1_dice == "":
print("BULL (P1) rolled a", dice1)
elif player1_dice != "":
print("BULL (P1): Please make sure to press 'ENTER' ")
for pos in range(dieValue) :
pos += 1
P1_pos = player1.goto(p1_list[pos])
pos = pos
dice()
在这种情况下,整个部分是不必要的,因为它什么也做不了。无论输入什么,他们始终必须按enter键,因此即使他们输入了某些内容,代码也将继续:
if player1_dice == "":
print("BULL (P1) rolled a", dice1)
elif player1_dice != "":
print("BULL (P1): Please make sure to press 'ENTER' ")
您完全可以这样做:
print("BULL (P1) rolled a", dice1)
无论如何,while循环应该是这样的:
import random
while True:
input("\nBULL (P1): Please press 'ENTER' to roll the dice ")
dice1 = random.randint(1, 6)
print("BULL (P1) rolled a", dice1)
只需确保在文件开头随机导入即可
因此,从这一点来说,您应该很好,现在可以使用
dice1
变量,但是必须有一种方法退出循环,否则代码将永远卡在那里。因此,可以使用一些break语句或线程来执行函数,并在最后返回值(这样即使没有循环的意义,也可以在while循环中调用函数),但按照您的意愿执行我已设法为每次运行获得不同的值。我已将dice1变量放入循环中
但是我需要找到一种方法来存储最新的pos值。因此,角色不会从默认位置重新开始,而是应该从上一个位置开始。
dice1=random.randint(1,6)
在循环之前只调用一次。将其移动到循环内部。谢谢,我面临的另一个问题是P1的最新位置不会被存储,它将始终返回到vale inside位置0。我希望保存for循环中的增量,以便P1将从其以前的位置开始,而不是再次从0开始。我想知道是否需要创建一个新的附加变量,如果需要,如何创建?@Kaja何时返回?当您终止程序并再次运行它时?