I want to check multiple conditions in my program, but for some reasons it's not working. Here is my code:
def removingStrawsComputer():
removedNumber=random.randint(1,3)
global strawsNumber
if strawsNumber==3:
removedNumber=random.randint(1,2)
if strawsNumber==2:
removedNumber==1
strawsNumber-=removedNumber
return strawsNumber
When executing my code, even when strawsNumber = 3, random.randint sometimes select 3.. Any ideas what I am doing wrong? Any help would be very appreciated.. :)
Edit: this my entire code, it is a NIM game. With multiple if's I am trying to avoid that if remaining straws are 3, computer selects 3 and lose right away..
player1=raw_input("Iveskite savo varda: ")
player2="Kompiuteris"
howMany=0
gameover=False
strawsNumber=random.randint(10,20)
def removingStrawsComputer():
removedNumber=random.randint(1,3)
global strawsNumber
if strawsNumber==3:
removedNumber=random.randint(1,2)
if strawsNumber==2:
removedNumber==1
strawsNumber-=removedNumber
return strawsNumber
def removingStrawsHuman():
global strawsNumber
strawsNumber-=howMany
return strawsNumber
def humanLegalMove():
global howMany
legalMove=False
while not legalMove:
print("Ejima atlieka ",player1)
howMany=int(input("Kiek objektu nori paimti?(nuo 1 iki 3) "))
if howMany>3 or howMany<1:
print("Iveskite skaiciu nuo 1 iki 3")
else:
legalMove=True
while howMany>strawsNumber:
print("Ivestas skaicius didesnis nei liko objektu")
howMany=int(input("Kiek objektu nori paimti?(nuo 1 iki 3) "))
return howMany
def checkWinner(player):
if strawsNumber==0:
print(player," laimejo.")
global gameover
gameover=True
return gameover
def resetGameover():
global gameover
gameover=False
return gameover
def game():
global strawsNumber
strawsNumber=random.randint(10,20)
print("Objektu skaicius ",strawsNumber)
while gameover==False:
print("Ejima atlieka ",player2,". Objektu liko: ",removingStrawsComputer())
checkWinner(player1)
if gameover==True:
break
humanLegalMove()
print("Objektu liko: ",removingStrawsHuman())
checkWinner(player2)
def playAgain():
answer=raw_input("Ar norite zaisti dar karta?(y/n)")
resetGameover()
while answer=="y":
game()
answer=raw_input("Ar norite zaisti dar karta?(y/n)")
else:
print("Aciu uz zaidima!")
game()
playAgain()
I think this is what you're looking for:
def removingStrawsComputer():
removedNumber=random.randint(1,3)
global strawsNumber
if strawsNumber==1 and random.randint(0,1)==1:
return 0
strawsNumber-=removedNumber
if strawsNumber<1:
strawsNumber=1
return strawsNumber
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.