gpt4 book ai didi

python - 该函数一次又一次地运行,没有任何循环

转载 作者:行者123 更新时间:2023-12-04 08:31:50 27 4
gpt4 key购买 nike

我正在制作石头剪刀布游戏,但即将出现错误。

from tkinter import *
from PIL import Image, ImageTk

def get_random_token():
tokens = ['rock', 'paper', 'scissor']
comp_token = random.choice(tokens)
print(comp_token)
return comp_token

def show_comp_token():
if get_random_token() == 'rock':
rock_token = ImageTk.PhotoImage(Image.open('./gallery/rock_token.png'))
comp_label.configure(image=rock_token, width=80, height=80)
comp_label.image = rock_token

if get_random_token() == 'paper':
paper_token = ImageTk.PhotoImage(Image.open('./gallery/paper_token.png'))
comp_label.configure(image=paper_token, width=80, height=80)
comp_label.image = paper_token

if get_random_token() == 'scissor':
scissor_token = ImageTk.PhotoImage(Image.open('./gallery/scissor_token.png'))
comp_label.configure(image=scissor_token, width=80, height=80)
comp_label.image = scissor_token

def logic():
if get_user_token() == 'rock':
if get_random_token() == 'rock':
return 'user TIE'
if get_random_token() == 'paper':
return 'user LOST'
if get_random_token() == 'scissor':
return 'user WON'

if get_user_token() == 'paper':
if get_random_token() == 'rock':
return 'user WON'
if get_random_token() == 'paper':
return 'user TIE'
if get_random_token() == 'paper':
return 'user LOST'

if get_user_token() == 'scissor':
if get_random_token() == 'rock':
return 'user LOST'
if get_random_token() == 'paper':
return 'user WON'
if get_random_token() == 'scissor':
return 'user TIE'
def main_func():
logic()
这只是程序的一部分,但错误仅在这一部分。
当我运行程序并打印 comp_token在函数中 get random tokens打印了六个实例,但我只想要一个,这导致了问题。
请帮忙
paper
scissor
scissor
rock
rock
rock

最佳答案

logic方法,您正在调用 get_random_token一次又一次的方法(其中包含 print 语句)。相反,您应该做的是调用该方法一次并将值存储在变量中,然后检查它。你也应该做同样的 get_user_token方法。
像这样:

def logic():
random_token = get_random_token()
user_token = get_user_token()
if user_token == 'rock':
if random_token == 'rock':
return 'user TIE'
if random_token == 'paper':
return 'user LOST'
if random_token == 'scissor':
return 'user WON'

if user_token == 'paper':
if random_token == 'rock':
return 'user WON'
if random_token == 'paper':
return 'user TIE'
if random_token == 'paper':
return 'user LOST'

if user_token == 'scissor':
if random_token == 'rock':
return 'user LOST'
if random_token == 'paper':
return 'user WON'
if random_token == 'scissor':
return 'user TIE'

关于python - 该函数一次又一次地运行,没有任何循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64986103/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com