python用海龜繪圖寫貪吃蛇游戲
一個(gè)簡(jiǎn)單的貪吃蛇程序,供大家參考,具體內(nèi)容如下
如圖顯示
導(dǎo)入海龜繪圖庫(kù)
from turtle import * from random import randrange
常量設(shè)置
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__': # 設(shè)置主窗口的大小和位置 # width,height,startx,starty(初始位置距離屏幕左邊和右邊多少,默認(rèn)中間) setup(800, 800) # 禁用海龜動(dòng)畫 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) # 調(diào)用 Tkinter 的 mainloop 函數(shù) # 必須作為一個(gè)海龜繪圖程序的結(jié)束語句 done()
畫正方形
def draw_square(x, y, size, color_name): ''' 畫正方形 :param x 表示在畫布的x位置 :param y 表示畫布的y位置 :param size 表示正方形的長(zhǎng)度 :param color_name 表示正方形的顏色 :return ''' # 畫筆抬起,移動(dòng)的時(shí)候不畫線 up() # 是海龜不可見 ht() # 將海龜移動(dòng)到這個(gè)位置 goto(x, y) # 畫筆落下 -- 移動(dòng)時(shí)將畫線 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 刷新。在禁用追蹤時(shí)使用 update()
控制方向
def control(x,y): global dir_x, dir_y dir_x = x dir_y = y
碰撞檢測(cè)
def is_zhangqiang(): if -400 <= snack[-1][0] <= 380 and -400 <= snack[-1][1] <= 380: return True else: return False
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)自動(dòng)化發(fā)送郵件
大家好,本篇文章主要講的是Python實(shí)現(xiàn)自動(dòng)化發(fā)送郵件,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01python爬蟲爬取股票的北上資金持倉(cāng)數(shù)據(jù)
這篇文章主要介紹了python爬蟲爬取股票的北上資金持倉(cāng)數(shù)據(jù),文章基于python的相關(guān)資料展開爬取數(shù)據(jù)的詳細(xì)內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-05-05Python3實(shí)現(xiàn)旋轉(zhuǎn)數(shù)組的3種算法小結(jié)
旋轉(zhuǎn)數(shù)組是一種常見的數(shù)據(jù)結(jié)構(gòu)問題,通常是指一個(gè)有序數(shù)組經(jīng)過旋轉(zhuǎn)后,使得所有元素逆序排列,本文主要介紹了Python3實(shí)現(xiàn)旋轉(zhuǎn)數(shù)組的3種算法小結(jié),感興趣的可以了解一下2023-12-12基于Python實(shí)現(xiàn)網(wǎng)頁(yè)文章轉(zhuǎn)PDF文檔
有時(shí)候看到一篇好的文章,想去保存下來,傳統(tǒng)方式一般是收藏書簽、復(fù)制粘貼到文檔或者直接復(fù)制鏈接保存,但這也太麻煩了。本文將用Python語言實(shí)現(xiàn)將網(wǎng)上的文章轉(zhuǎn)存為PDF文檔,保存電腦上慢慢看2022-05-05python 字符串轉(zhuǎn)列表 list 出現(xiàn)\ufeff的解決方法
下面小編就為大家?guī)硪黄猵ython 字符串轉(zhuǎn)列表 list 出現(xiàn)\ufeff的解決方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06pytorch中.to(device) 和.cuda()的區(qū)別說明
這篇文章主要介紹了pytorch中.to(device) 和.cuda()的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05