python用海龜繪圖寫貪吃蛇游戲
更新時間:2021年06月18日 08:58:39 作者:dr-y
這篇文章主要為大家詳細介紹了python用海龜繪圖寫貪吃蛇游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
一個簡單的貪吃蛇程序,供大家參考,具體內容如下
如圖顯示

導入海龜繪圖庫
from turtle import * from random import randrange
常量設置
food_x = randrange(-20, 20) * 20 food_y = randrange(-20, 20) * 20 snack = [[0, 0], [20, 0], [40, 0], [40, 20]] dir_x = 20 dir_y = 0
主函數(shù)
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")
# 開始事件循環(huán)
# 調用 Tkinter 的 mainloop 函數(shù)
# 必須作為一個海龜繪圖程序的結束語句
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():
'''
循環(huán)界面
'''
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) * 20
food_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")
continue
draw_square(snack[s][0], snack[s][1], 20, "black")
ontimer(loop_view, 100)
# 執(zhí)行一次 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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
python爬蟲爬取股票的北上資金持倉數(shù)據(jù)
這篇文章主要介紹了python爬蟲爬取股票的北上資金持倉數(shù)據(jù),文章基于python的相關資料展開爬取數(shù)據(jù)的詳細內容,具有一定的參考價值,需要的小伙伴可以參考一下2022-05-05
Python3實現(xiàn)旋轉數(shù)組的3種算法小結
旋轉數(shù)組是一種常見的數(shù)據(jù)結構問題,通常是指一個有序數(shù)組經(jīng)過旋轉后,使得所有元素逆序排列,本文主要介紹了Python3實現(xiàn)旋轉數(shù)組的3種算法小結,感興趣的可以了解一下2023-12-12
基于Python實現(xiàn)網(wǎng)頁文章轉PDF文檔
有時候看到一篇好的文章,想去保存下來,傳統(tǒng)方式一般是收藏書簽、復制粘貼到文檔或者直接復制鏈接保存,但這也太麻煩了。本文將用Python語言實現(xiàn)將網(wǎng)上的文章轉存為PDF文檔,保存電腦上慢慢看2022-05-05
python 字符串轉列表 list 出現(xiàn)\ufeff的解決方法
下面小編就為大家?guī)硪黄猵ython 字符串轉列表 list 出現(xiàn)\ufeff的解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06
pytorch中.to(device) 和.cuda()的區(qū)別說明
這篇文章主要介紹了pytorch中.to(device) 和.cuda()的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05

