目標效果:
黃色為小鳥,空格鍵控制向上飛,若小鳥碰到小球或者跑出畫面遊戲結束
**:
##############引用資料庫與函式##############
from turtle import *
from random import randrange
##############定義變數##############
bird=[-100,80]
ball=[[240,0]]
bird_size=30 #鳥的大小
ball_size=50 #球的大小
##############定義函式##############
def change():
bird[1]=bird[1]+bird_size
def distance(a,b,x,y):
return ((a-x)**2+(b-y)**2)**0.5 #返回兩個座標的直線距離
def hit():
for i in range(len(ball)):
if distance(ball[i][0],ball[i][1],bird[0],bird[1])
return true #撞到小球
return false
def inside():
if bird[1]300-bird_size/2: #如果小鳥的位置超出了上下邊界
return false
else:
return true #還在畫布上
def draw():
clear() #清空畫布
for i in range(len(ball)): #遍歷小球佇列
up() #舉起小烏龜
goto(ball[i][0],ball[i][1]) #去到第i個小球的座標位置
dot(ball_size,"black")
ball[i][0]=ball[i][0]-3 #小球x座標減1,模擬向左移
up() # 舉起小烏龜
goto(bird[0], bird[1]) # 去到小鳥的位置
dot(bird_size, "yellow")
bird[1] = bird[1] - 5 #小鳥自動往下墜落,即y座標一直遞減
update()
def gameloop():
global bird,ball
if randrange(30)==1: #1/30的概率生成小球
x=240 #小球座標
y=randrange(-300,300)
if len(ball)!=0: #如果小球長度不為0
if ball[0][0]
ball.pop(0) # 去掉第乙個小球
draw() #將小球畫出來
if (not inside()) or hit(): #小鳥撞到小球或者跑出畫布
return
ontimer(gameloop,30) #30毫秒一迴圈
##############主程式##############
setup(420,420,0,0) #畫布大小為420*420,一開始座標為(0,0)
hideturtle() #隱藏小烏龜
tracer(false) #隱藏繪製過程
listen() #新增監聽
onkey(lambda:change()," ") #如果按了空格,執行change函式
gameloop()
done() #結束函式,畫布停留
python實現彈跳小球
前言 學習python的過程中,比較喜歡通過實際的小專案進行鞏固學習,決定寫乙個彈跳小球的程式。這個實戰例程是在 上看到的,他的編寫過程比較完整,步驟清晰,貼的 並不完整,但是我還是決定嘗試一下,在嘗試的過程中由於自己的基礎知識並沒有學到類這裡,所以是在摸索的階段,一邊學習基礎知識,一邊編寫這個例程...
ccf小球碰撞Python實現
輸入的第一行包含三個整數n,l,t,用空格分隔,分別表示小球的個數 線段長度和你需要計算t秒之後小球的位置。第二行包含n個整數a1,a2,an,用空格分隔,表示初始時刻n個小球的位置。輸出一行包含n個整數,用空格分隔,第i個整數代表初始時刻位於ai的小球,在t秒之後的位置。樣例輸入 3 10 5 4...
ccf碰撞的小球python
輸入格式 輸入的第一行包含三個整數n,l,t,用空格分隔,分別表示小球的個數 線段長度和你需要計算t秒之後小球的位置。第二行包含n個整數a1,a2,an,用空格分隔,表示初始時刻n個小球的位置。輸出格式 輸出一行包含n個整數,用空格分隔,第i個整數代表初始時刻位於ai的小球,在t秒之後的位置。樣例輸...