我的目標是創建一個模擬賽馬的程序,我的問題是當我用Tkinter繪製時,我得到一個空白畫布。我確定它有一些明顯的錯誤,但我找不到它。任何幫助?有問題用我的Python類繪圖
class Horse():
def __init__ (self, color, number, slot):
self.xPos = 0
self.yPos = self.xPos - 59
self.move = 0
self.slot = slot
self.size = 40
self.color = color
self.number = number
def horseMove (self):
self.Erase()
self.move= random.randint(20,80)
self.xPos = self.xPos + self.move
self.Draw()
myCanvas.update()
return self.xPos
def Erase (self):
myCanvas.create_rectangle (self.xPos, self.yPos, self.xPos + 75, self.yPos + 40, fill = 'white', outline ='white')
def Draw (self):
myCanvas.create_oval (self.xPos, self.yPos, self.xPos + 75, self.yPos + 40, fill = color)
myCanvas.create_text (self.xPos + 35, self.yPos, text = self.number, fill = 'blue', font = ("Times","17"))
time.sleep (0.5)
這是我的類代碼
Horses= []
slot=0
for i in range (0,3):
number=input("what is the horses number: ")
color=input("what is the horses color: ")
slot += 1
animal=Horse(color, number, slot)
Horses.append(animal)
import random
from tkinter import *
import time
root = Tk()
myCanvas = Canvas (root, width =1000, height=1000, background='white')
myCanvas.pack()
while True:
for i in range (0,len(Horses)):
animal.horseMove()
這是我的主線
您有好幾個問題,即''myCanvas'沒有在Horse類中定義,這是一個無限循環,它會鎖定你的程序,並且爲我在範圍內(0,len(Horses)):'不使用'i'的循環。從簡單的事情開始。 – 2013-04-09 17:28:10