python用海龜繪圖寫貪吃蛇游戲
一個簡單的貪吃蛇程序,供大家參考,具體內容如下
如圖顯示
導入海龜繪圖庫
from turtle import *from random import randrange
常量設置
food_x = randrange(-20, 20) * 20food_y = randrange(-20, 20) * 20snack = [[0, 0], [20, 0], [40, 0], [40, 20]]dir_x = 20dir_y = 0
主函數
if __name__ == ’__main__’: # 設置主窗口的大小和位置 # width,height,startx,starty(初始位置距離屏幕左邊和右邊多少,默認中間) setup(800, 800) # 禁用海龜動畫 tracer(False) loop_view() listen() onkey(lambda: control(0, 20), 'w') onkey(lambda: control(0, -20), 's') onkey(lambda: control(-20, 0), 'a') onkey(lambda: control(20, 0), 'd') # 開始事件循環 # 調用 Tkinter 的 mainloop 函數 # 必須作為一個海龜繪圖程序的結束語句 done()
畫正方形
def draw_square(x, y, size, color_name): ’’’ 畫正方形 :param x 表示在畫布的x位置 :param y 表示畫布的y位置 :param size 表示正方形的長度 :param color_name 表示正方形的顏色 :return ’’’ # 畫筆抬起,移動的時候不畫線 up() # 是海龜不可見 ht() # 將海龜移動到這個位置 goto(x, y) # 畫筆落下 -- 移動時將畫線 down() color('red', color_name) begin_fill() forward(size) left(90) forward(size) left(90) forward(size) left(90) forward(size) left(90) end_fill() pass
在畫布上畫食物和蛇
def loop_view(): ’’’ 循環界面 ’’’ global food_x, food_y if not is_zhangqiang():return snack.append([snack[-1][0] + dir_x, snack[-1][1] + dir_y]) if snack[-1][0] != food_x or snack[-1][1] != food_y:snack.pop(0) else:food_x = randrange(-20, 20) * 20food_y = randrange(-20, 20) * 20 clear() # 畫食物 draw_square(food_x, food_y, 20, 'red') # 畫蛇 for s in range(len(snack)):if s == len(snack) - 1: draw_square(snack[s][0], snack[s][1], 20, 'yellow') continuedraw_square(snack[s][0], snack[s][1], 20, 'black') ontimer(loop_view, 100) # 執行一次 TurtleScreen 刷新。在禁用追蹤時使用 update()
控制方向
def control(x,y): global dir_x, dir_y dir_x = x dir_y = y
碰撞檢測
def is_zhangqiang(): if -400 <= snack[-1][0] <= 380 and -400 <= snack[-1][1] <= 380:return True else:return False
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章: