Python的繪圖模塊turtle可以用來創造很多有趣的動畫,比如我們今天要介紹的一種有趣的競賽賽跑動畫。這個動畫可以模擬多人比賽賽跑的情景,每個選手在屏幕中競相奔跑,最終決出勝負。
下面是代碼實現:
import turtle import random # 創建賽道 def create_track(t, size, color): t.speed(0) t.color(color) for i in range(20): t.penup() t.goto(-250, 180 - i * 20) t.pendown() t.forward(500) # 創建多個選手 def create_racers(colors, num): racers = [] spacingx = 100 / (num-1) for i in range(num): racer = turtle.Turtle() racer.color(colors[i]) racer.shape('turtle') racer.penup() racer.goto(-250 + i * spacingx, 160) racer.pendown() racers.append(racer) return racers # 模擬比賽過程 def race(racers): while True: for racer in racers: distance = random.randint(1, 20) racer.forward(distance) x, y = racer.pos() if y >= 160: return racers.index(racer) + 1 # 主函數 def main(): t = turtle.Turtle() create_track(t, 20, 'grey') racers = create_racers(['red', 'blue', 'green', 'yellow'], 4) winner = race(racers) print('選手{}獲勝!'.format(winner)) turtle.setup(700, 500) turtle.delay(0) main() turtle.done()
賽道由20條平行的線條組成,選手在賽道上奔跑。選手數量可以根據需要自由設置。
create_racers函數用于創建選手的列表。每個選手都有一個不同的顏色,使用不同的turtle.Turtle()對象表示。每個選手的起始位置依次排列在賽道的左側。我們在主函數中調用race函數,這個函數循環遍歷所有選手,讓它們每次向前隨機前進一段距離。當某個選手越過終點線(y >= 160)時,我們返回其編號,表示此選手勝利。最后在主函數中輸出贏家的編號。
使用turtle模塊,我們可以在屏幕上實現比賽賽跑的動畫效果,增加趣味性。