randint stops changing values in a loop - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: randint stops changing values in a loop (/thread-15715.html) |
randint stops changing values in a loop - Naito - Jan-28-2019 hi! i have a problem i can't understand, randint stops popping new randdom values even if the variables are in the loop: def pvp(): dicesonboard = [] dicesused = [] dicesonship = [] dicesremaining = [] socres = {} rounds = 0 print("if you want to quit type quit") while rounds < 3: dice1 = randint(1, 6) dice2 = randint(1, 6) dice3 = randint(1, 6) dice4 = randint(1, 6) dice5 = randint(1, 6) dice6 = randint(1, 6) userinput = input("to start the game type throw: ").lower() rounds += 1 if userinput == "quit": break if userinput == "throw": print("let the game begin") print("Round", rounds) dices = [dice1, dice2, dice3, dice4, dice5, dice6] print("Thrown Dices: ""Dice I: ", dice1, "Dice II: ", dice2, "Dice III: ", dice3, "Dice IV: ", dice4, "Dice V: ", dice5, "Dice VI: ", dice6) if 6 not in dicesonship: if 6 in dices: print("you have a ship now gather a captain and a crew") for i in dices: if i == 6: dicesonship.append(i) dicesused.append(randint(1, 6)) breakas you can see, i did put ranind inside of an append fund while looping but the value stays the same focus on the list with the int 5 (don't care about the other list), i did try to change randint to the variables (dice1,2 etc) but that dosent work..anyone can explain to me how does this work because i just don't get it, thank you! RE: randint stops changing values in a loop - SheeppOSU - Jan-28-2019 I don't know if this will solve the problem but I thought you have to import random and it should look like this import random def pvp(): dicesonboard = [] dicesused = [] dicesonship = [] dicesremaining = [] socres = {} rounds = 0 print("if you want to quit type quit") while rounds < 3: dice1 = random.randint(1, 6) dice2 = random.randint(1, 6) dice3 = random.randint(1, 6) dice4 = random.randint(1, 6) dice5 = random.randint(1, 6) dice6 = random.randint(1, 6) userinput = input("to start the game type throw: ").lower() rounds += 1 if userinput == "quit": break if userinput == "throw": print("let the game begin") print("Round", rounds) dices = [dice1, dice2, dice3, dice4, dice5, dice6] print("Thrown Dices: ""Dice I: ", dice1, "Dice II: ", dice2, "Dice III: ", dice3, "Dice IV: ", dice4, "Dice V: ", dice5, "Dice VI: ", dice6) if 6 not in dicesonship: if 6 in dices: print("you have a ship now gather a captain and a crew") for i in dices: if i == 6: dicesonship.append(i) dicesused.append(randint(1, 6)) break RE: randint stops changing values in a loop - woooee - Jan-29-2019 Obviously 6 is either not in dices, or is in dicesonship, which should be an empty list. Print to see. RE: randint stops changing values in a loop - Naito - Jan-29-2019 well, that dosen't work, yes i printed the lists too see, what i have copied here is not the ful code, the 6 is in dicesonship but that's not the problem the problem is that the value of ranint is a constant and not random while looping in a while loop. RE: randint stops changing values in a loop - perfringo - Jan-30-2019 (Jan-29-2019, 07:10 PM)Naito Wrote: the problem is that the value of ranint is a constant and not random while looping in a while loop. I could not replicate your problem: import random rounds = 0 while rounds < 3: dice1 = random.randint(1, 6) dice2 = random.randint(1, 6) dice3 = random.randint(1, 6) dice4 = random.randint(1, 6) dice5 = random.randint(1, 6) dice6 = random.randint(1, 6) print(dice1, dice2, dice3, dice4, dice5, dice6) rounds += 1 1 5 5 4 1 3 5 4 2 5 2 5 4 4 2 4 1 4 |