1
def gDiceRoll():
gDiceOptions.destroy()
global gDiceRoll
gDiceRoll = Tk()
gDiceRoll.title("Green Dice Roll")
gDiceRoll.config(background="#32cd32")
lbloutcome = Label(gDiceRoll, text="?", width="12", height="8", bg="#32cd32")
play()
while True:
outcomeG = random.randint(1, 100)
lbloutcome = Label(gDiceRoll, text="?", width="12", height="8", bg="#32cd32")
if outcomeG <= 25:
lbloutcome.config(text="G1", font=(25))
gDiceRoll.update()
f = open("Logs.txt", "a")
ts = time.time()
sttime = datetime.datetime.fromtimestamp(ts).strftime('%Y%m%d_%H:%M:%S - ')
f.write(sttime + "G1 \n")
f.close()
photo = PhotoImage(file=r"C:\Temp\Dice_Roll\pics\G1.gif")
lblop = Label(gDiceRoll, image=photo)
lblop.pack()
lbloutcome.pack()
gDiceRoll.mainloop()
gDiceRoll.after(1)
os.execl(sys.executable, sys.executable, *sys.argv)
break
elif outcomeG <= 22:
lbloutcome.config(text="G2", font=(25))
gDiceRoll.update()
f = open("Logs.txt", "a")
ts = time.time()
sttime = datetime.datetime.fromtimestamp(ts).strftime('%Y%m%d_%H:%M:%S - ')
f.write(sttime + "G2 \n")
f.close()
photo = PhotoImage(file=r"C:\Temp\Dice_Roll\pics\G2.gif")
lblop = Label(gDiceRoll, image=photo)
lblop.pack()
lbloutcome.pack()
gDiceRoll.mainloop()
gDiceRoll.after(1)
os.execl(sys.executable, sys.executable, *sys.argv)
break
#etc
私はIRプログラムを実行するたびに常にはG1で出てきます。私はそれを多くの方法で修正しようとしましたが、他の問題を作成します。 elif G1 < = 25は、G1を実行する確率は25%ですが、常にG1を実行することを意味します。同じ結果乱数(パイソン)とするたびに
どうすればこの問題を解決できますか?すべてのヘルプは大幅に
もちろん 'outcomeG <= 25'は 'outcomeG <= 22'よりも強いです。 –
また、 'if' /' elif'文の優先度を変更する必要があります – SneakyTurtle
このコードには多大な誤りがあります。 'mainloop'を呼び出す前に' randint'を一度呼び出すだけで、無限ループでは 'mainloop'を決して呼び出さないでください。 –