python设置循环次数_pythontkinter:循环计算机的循环次数

我在写一个骰子游戏程序(猪)。在游戏中,玩家将掷一个d6直到他们决定保持他们的分数(传给计算机)或直到他们掷1,这将自动轮到计算机。在

我遇到的问题是,我需要一个让计算机循环十次的函数。我想让电脑掷骰子十次,它要么掷一个骰子,然后传给玩家,要么在掷十次骰子后保持不动。如何让计算机在不使用Tk内部循环的情况下滚动模具十次?在

代码如下:from Tkinter import *

from random import *

class App(Tk):

def __init__(self):

Tk.__init__(self)

self.headerFont = ("courier new", "16", "bold")

self.title("Pig, The Dice Game")

self.headers()

self.rollDie()

def headers(self):

Label(self, text = "Instructions", font = self.headerFont).grid(columnspan = 4)

Label(self, text = "Text", font = self.headerFont).grid(row = 1, columnspan = 4)

Label(self).grid(row = 1, columnspan = 4)

Label(self, text = "The Game of Pig", font = self.headerFont).grid(row = 2, columnspan = 4)

def rollDie(self):

self.btnRoll = Button(self, text = "Roll The Die")

self.btnRoll["state"] = 'active'

self.btnRoll.grid(row = 3, columnspan = 4)

self.btnRoll["command"] = self.playerTurn

self.btnHold = Button(self, text = "Hold")

self.btnHold["state"]= 'active'

self.btnHold.grid(row = 4, columnspan = 4)

self.btnHold["command"] = self.compTurn

self.btnPass = Button(self, text = "Pass")

self.btnPass.grid(row = 5, columnspan = 4)

self.btnPass["command"] = self.compTurn

Label(self, text = "You Rolled:").grid(row = 6, column = 0)

self.lblYouRolled = Label(self, bg = "#fff", anchor = "w", relief = "groove")

self.lblYouRolled.grid(row = 6, column = 1, columnspan = 1, sticky = "we")

Label(self, text = "Options:").grid(row = 7, column = 0)

self.lblOptions = Label(self, bg = "#fff", anchor = "w", relief = "groove")

self.lblOptions.grid(row = 7, column = 1, sticky = "we")

Label(self, text = "Player One Turn Score:").grid(row = 8, column = 0)

self.lblPlayerOneTurnScore = Label(self, bg = "#fff", anchor = "w", relief = "groove")

self.lblPlayerOneTurnScore.grid(row = 8, column = 1, sticky = "we")

def playerTurn(self):

self.oneTurnTotal = [0]

self.oneRoll = randint(1,6)

self.btnHold["state"] = 'active'

self.lblYouRolled["text"] = self.oneRoll

if self.oneRoll != 1:

self.oneTurnTotal.append(self.oneRoll)

self.lblOptions["text"] = "Roll again, or hold and pass the dice to Player Two."

else:

self.lblOptions["text"] = "You rolled a 1! Click 'Pass' to pass your turn to the computer."

self.oneTurnTotal = [0]

self.btnRoll["state"] = 'disabled'

self.btnHold["state"] = 'disabled'

def calculatePlayerOneTurnScore(self):

turnScore = sum(self.oneTurnTotal)

self.lblPlayerOneTurnScore["text"] = turnScore

def compTurn(self):

self.compTurnTotal = [0]

self.compRoll = randint(1,6)

self.lblYouRolled["text"] = self.compRoll

if self.compRoll != 1:

self.compTurnTotal.append(self.compRoll)

self.lblOptions["text"] = "The computer will roll again."

else:

self.lblOptions["text"] = "The computer rolled a 1! Its turn has ended."

self.compTurnTotal = [0]

self.btnRoll["state"] = 'active'

def calculatePlayerTwoTurnScore(self):

turnScore = sum(self.twoTurnTotal)

self.lblPlayerTwoTurnScore["text"] = turnScore

def main():

app = App()

app.mainloop()

if __name__ == "__main__":

main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值