所以我正在为类做一个实验室,我的代码似乎很好,但当我运行程序时,框架只产生一个白色屏幕
我试着从头开始重新编写代码。奇怪的是,当我复制到一个模板微风文件,我有我可以让它工作
(卡片脚本)
import random
class Card(object):
RANKS = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
SUITS = ('Spades', 'Diamonds', 'Hearts', 'Clubs')
def __init__(self, rank, suit):
self.rank = rank
self.suit = suit
self.faceup = False
def __str__(self):
if self.rank == 1:
rank = 'Ace'
elif self.rank == 11:
rank = 'Jack'
elif self.rank == 12:
rank = 'Queen'
elif self.rank == 13:
rank = 'King'
else:
rank = self.rank
return str(rank) + ' of ' + self.suit
def turn(self):
self.faceup = not self.faceup
import random
class Deck(object):
def __init__(self):
self.cards = []
for suit in Card.SUITS:
for rank in Card.RANKS:
c = Card(rank, suit)
self.cards.append(c)
def shuffle(self):
random.shuffle(self.cards)
def deal(self):
if len(self) == 0:
return None
else:
return self.cards.pop(0)
def __len__(self):
return len(self.cards)
def __str__(self):
result = ''
for c in self.cards:
result = self.result + str(c) + '\n'
return result
def main():
deck = Deck()
print("A new deck, cards face down:")
while len(deck) > 0:
card = deck.deal()
print(card, card.faceup)
deck = Deck()
deck.shuffle()
print("A deck shuffled once, cards face up:")
while len(deck) > 0:
card = deck.deal()
card.turn()
print(card, card.faceup)
if __name__ == "__main__":
main()
GUI脚本
from breezypythongui import EasyFrame
from tkinter import PhotoImage
from cards import Deck
class CardsGUI(EasyFrame):
def __int__(self):
EasyFrame.__int__(self, title = "cards Demo")
self.deck = Deck()
self.imageLabel = self.addLabel("", row = 0, column = 0, sticky = "NSEW", columnspan = 3)
self.stateLabel = self.addLabel("", row = 1, column = 0,sticky = "NSEW",columnspan = 3)
self.dealBtn = self.addButton(row = 2, column = 0,text = "Deal",command = self.deal)
self.addButton(row = 2, column = 1,text = "Shuffle",command = self.shuffle)
self.addButton(row = 2, column = 2,text = "New deck",command = self.newDeck)
self.refreshimage("G:/Cis 202(Python)/DECK/b.gif")
def deal(self):
card = self.deck.deal()
self.stateLabel["text"] = str(card)
fileName = "Deck/" + str(card.rank) + card.suit[0] + ".gif"
self.refreshimage(fileName)
if len(self.deck) == 0:
self.dealBtn["state"] = "disabled"
def shuffle(self):
self.deck.shuffle()
def newDeck(self):
self.deck = Deck()
self.stateLabel["text"] = ""
self.refreshimage("G:/Cis 202(Python)/DECK/b.gif")
self.dealBtn["state"] = "normal"
def refreshimage(self, fileName):
self.image = PhotoImage(file = fileName)
self.imageLabel["image"] = self.image
def main():
CardsGUI().mainloop()
if __name__ == "__main__":
main()
我期待一个弹出窗口,生成一张卡片,但却一无所获
目前没有回答
相关问题 更多 >
编程相关推荐