我不能用新的总数来代替以前的总数,它只是把它打印出来。还有,如果有人能帮我解释为什么我的经销商卡是无限循环的
这是我代码的一部分,一旦到达while-true语句,它就会出错
def main():
# card deck and shuffle it
win = GraphWin('Blackjack', 800, 600)
deck = CardDeck()
deck.shuffle()
# hit me button
hitp = Point(650, 125)
hitButton = Text(hitp, "Hit me")
hitButton.draw(win)
hitbox = Rectangle(Point(600, 100), (Point(700, 150)))
hitbox.draw(win)
# player's starting hand
card = deck.dealOne()
value, filename = cardInfo(card)
drawCard(filename, 100, 100, win)
playerTotal = value
card = deck.dealOne()
value, filename = cardInfo(card)
drawCard(filename, 200, 100, win)
playerTotal = playerTotal + value
# display total
hand_total = Text(Point(100, 200), playerTotal)
hand_total.draw(win)
# dealer's starting hand
card = deck.dealOne()
value, filename = cardInfo(card)
drawCard(filename, 100, 300, win)
dealerTotal = value
# display total
dhand_total = Text(Point(100, 400), dealerTotal)
dhand_total.draw(win)
while True:
pt = win.getMouse()
x = pt.getX()
y = pt.getY()
if 600 < x < 700 and 100 < y < 150:
value, filename = cardInfo(card)
drawCard(filename, 300, 100, win)
playerTotal = playerTotal + value
hand_total = Text(Point(100, 200), playerTotal)
hand_total.draw(win)
if playerTotal > 21:
break
else:
break
if playerTotal <= 21:
while dealerTotal < 17:
card = deck.dealOne()
value, filename = cardInfo(card)
drawCard(filename, 200, 300, win)
dealerTotal2 = value
dhand_total = Text(Point(100, 400), dealerTotal2)
dhand_total.draw(win)
if dealerTotal >= 21:
break
# wait for mouse click before closing window
win.getMouse()
win.close()
这是一款21点游戏,玩家一旦破产或庄家获得17点或更多,游戏就应该被打破
由于您没有提供足够的代码来运行您的程序,我只能提出未经测试的建议。您的问题似乎是以下代码:
以及经销商的匹配
dhand_total
代码。每次通过循环时都会创建一个新的文本对象,而不会删除旧的文本对象。快速而肮脏的解决方案可能是添加以下行:但更好的方法是将两行替换为一行,该行在不创建新行的情况下更改当前
Text
实例的文本:相关问题 更多 >
编程相关推荐