中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

用python的turtle模塊寫貪吃蛇游戲

發布時間:2021-06-18 10:14:24 來源:億速云 閱讀:214 作者:chen 欄目:開發技術

這篇文章主要講解了“用python的turtle模塊寫貪吃蛇游戲”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“用python的turtle模塊寫貪吃蛇游戲”吧!

一個簡單的貪吃蛇程序,供大家參考,具體內容如下

如圖顯示

用python的turtle模塊寫貪吃蛇游戲

導入海龜繪圖庫

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

主函數

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) * 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)
    # 執行一次 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的turtle模塊寫貪吃蛇游戲”的內容了,經過本文的學習后,相信大家對用python的turtle模塊寫貪吃蛇游戲這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

托里县| 云南省| 水富县| 南丰县| 都江堰市| 璧山县| 武穴市| 肥西县| 安徽省| 黔南| 古丈县| 长乐市| 柳州市| 兴国县| 鄂温| 邓州市| 安塞县| 昆山市| 芒康县| 临西县| 宁德市| 莲花县| 东安县| 古蔺县| 阿拉尔市| 内丘县| 阿坝| 方山县| 山西省| 游戏| 新和县| 辽中县| 六安市| 兴国县| 唐海县| 府谷县| 兴业县| 辽阳市| 紫云| 休宁县| 三台县|