婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python貪吃蛇小游戲實例分享

Python貪吃蛇小游戲實例分享

熱門標簽:高德地圖標注收入咋樣 沈陽防封電銷電話卡 萊蕪電信外呼系統 鶴壁手機自動外呼系統違法嗎 B52系統電梯外呼顯示E7 地圖標注多個 怎么辦理400客服電話 企業微信地圖標注 銀川電話機器人電話

本文實例為大家分享了Python實現貪吃蛇小游戲的具體代碼,供大家參考,具體內容如下

使用的庫

pygame 、random 、pyautogui

流程簡述

1.設置初始參數

設置每個網格大小為 20 px ,size可以隨意修改但最好為20的倍數,設置初始方向向右,初始蛇長為 3 。

# 初始化參數
size = 320
screen = pygame.display.set_mode([size,size],0 , 32)
pygame.display.set_caption("貪吃蛇")
cell_size = 20
cell_num = int(size/20)
x , y = [60,0]
# 初始方向向右
dir_snake = 'R'
body_snake = [[0,0],[20,0],[40,0],[60,0]]
# 初始蛇長為3
len_snake = 3
# 初始食物坐標
food_coor = [random.randint(0, cell_num - 1) * 20, random.randint(0, cell_num - 1) * 20, 20, 20]
# 蛇移動速度
clock = pygame.time.Clock()

2.鍵盤控制

鍵盤上下左右控制蛇方向,禁止反向。

3.食物

蛇頭吃到食物后,蛇長加一 ,random 一個隨機坐標,如果坐標再蛇身上則繼續 random。

if [x,y] == food_coor[:2]:
    food_coor = [random.randint(0, cell_num - 1) * 20, random.randint(0, cell_num - 1) * 20, 20, 20]
    if food_coor[:2] in body_snake[-2:-len_snake -1 :-1]:
        food_coor = [random.randint(0, cell_num - 1) * 20, random.randint(0, cell_num - 1) * 20, 20, 20]
    len_snake +=1

4. 勝負判斷

蛇頭與蛇身碰撞判輸,彈出游戲結束窗口,說明最終蛇長為多長。

if body_snake[-1] in body_snake[-2:-len_snake -1 :-1]:
    pyautogui.alert(text='游戲結束,最終蛇長為{}'.format(len_snake))
    exit()

代碼及結果

代碼

import pygame , random ,pyautogui
from pygame.locals import *
# 初始化參數
size = 500
screen = pygame.display.set_mode([size,size],0 , 32)
pygame.display.set_caption("貪吃蛇")
cell_size = 20
cell_num = int(size/20)
x , y = [60,0]
# 初始方向向右
dir_snake = 'R'
body_snake = [[0,0],[20,0],[40,0],[60,0]]
# 初始蛇長為3
len_snake = 3
# 初始食物坐標
food_coor = [random.randint(0, cell_num - 1) * 20, random.randint(0, cell_num - 1) * 20, 20, 20]
# 蛇移動速度
clock = pygame.time.Clock()
# bg
def bg():
    for i in range(0, size , int(cell_size)):
        pygame.draw.line(screen,[72,72,72],[i,0],[i,size])
    for i in range(0, size, int(cell_size)):
        pygame.draw.line(screen, [72, 72, 72], [0, i], [size,i])
# 蛇
def snake(K):
    for x,y in K[:-len_snake - 1:-1]:
        pygame.draw.rect(screen,[255,255,255],[x,y,20,20],0)
# 食物
def food():
    pygame.draw.rect(screen,[255,0,0],food_coor,0)
# 主循環
def running():
    global x ,y , dir_snake ,food_coor , len_snake
    while True:
        for event in pygame.event.get():
            if event.type == QUIT:
                exit()
        screen.fill((40, 43, 46))
        # 方向規則
        if dir_snake == 'U':
            y -= 20
        elif dir_snake == 'R':
            x += 20
        elif dir_snake == 'D':
            y += 20
        elif dir_snake == 'L':
            x -= 20
        # 鍵盤方向控制
        if event.type == KEYDOWN:
            if event.key == K_LEFT and dir_snake != 'R':
                dir_snake = 'L'
            elif event.key == K_DOWN and dir_snake != 'U':
                dir_snake = 'D'
            elif event.key == K_RIGHT and dir_snake != 'L':
                dir_snake = 'R'
            elif event.key == K_UP and dir_snake != 'D':
                dir_snake = 'U'
        # 撞墻之后
        if x  0:
            x += size
        elif x >= size:
            x -= size
        elif y  0:
            y += size
        elif y >= size:
            y -= size
        # draw蛇體
        body_snake.append([x,y])
        snake(body_snake)
        food()
        # 吃到食物后food換位置
        if [x,y] == food_coor[:2]:
            food_coor = [random.randint(0, cell_num - 1) * 20, random.randint(0, cell_num - 1) * 20, 20, 20]
            if food_coor[:2] in body_snake[-2:-len_snake -1 :-1]:
                food_coor = [random.randint(0, cell_num - 1) * 20, random.randint(0, cell_num - 1) * 20, 20, 20]
            len_snake +=1
        # 游戲結束
        if body_snake[-1] in body_snake[-2:-len_snake -1 :-1]:
            pyautogui.alert(text='游戲結束,最終蛇長為{}'.format(len_snake))
            exit()
        # 格線
        bg()
        # 右下角顯示蛇長
        font = pygame.font.SysFont("simsunnsimsun", 40)
        text_surface = font.render("{}".format(len_snake), True, (255,255, 255))
        screen.blit(text_surface , (size-40,size-40))
        pygame.display.update()
        # 蛇的移動速度隨著蛇的長度而越來越快
        clock.tick(len_snake * 2)

if __name__ == '__main__':
    pygame.init()
    running()

輸出結果

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 童年回憶錄之python版4399吃豆豆小游戲
  • 基于python pygame實現的兔子吃月餅小游戲
  • Python五子棋小游戲實例分享
  • python游戲的魅力之冒險島實戰項目

標簽:呼倫貝爾 湘西 三亞 烏魯木齊 安慶 銀川 葫蘆島 呼倫貝爾

巨人網絡通訊聲明:本文標題《Python貪吃蛇小游戲實例分享》,本文關鍵詞  Python,貪吃,蛇,小游戲,實例,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python貪吃蛇小游戲實例分享》相關的同類信息!
  • 本頁收集關于Python貪吃蛇小游戲實例分享的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久国产精品99久久人人澡| 国产精品国产自产拍高清av王其 | 色婷婷狠狠综合| 日韩欧美一二三四区| 国产精品进线69影院| 一本到高清视频免费精品| 一区二区三区不卡在线观看| 国产.精品.日韩.另类.中文.在线.播放| 欧美在线观看一区| 亚洲欧美在线视频观看| 国产电影精品久久禁18| 欧美成人女星排行榜| 日韩高清在线电影| 欧美性色欧美a在线播放| 亚洲黄一区二区三区| 91视频91自| 国产精品久久久久久久浪潮网站| 色av成人天堂桃色av| 亚洲精品国产第一综合99久久 | 日韩午夜在线观看| 午夜精品福利一区二区三区蜜桃| 色综合一区二区| 自拍偷拍欧美精品| 色婷婷综合久久久| 蜜桃精品视频在线| 欧美成人官网二区| 99久久精品国产精品久久| 亚洲欧美综合色| 日韩一区二区在线免费观看| 国产不卡免费视频| 午夜电影网亚洲视频| 久久精品亚洲国产奇米99| 国产一区二区三区在线观看精品| 久久亚洲精精品中文字幕早川悠里 | 亚洲国产欧美日韩另类综合 | 精品国产免费一区二区三区香蕉| 精品一区二区在线看| 精品欧美黑人一区二区三区| 粉嫩13p一区二区三区| 亚洲国产美国国产综合一区二区| 国产性天天综合网| 欧美人牲a欧美精品| 日韩国产在线观看| 中文字幕在线不卡视频| 91麻豆精品国产91久久久资源速度 | 91在线视频网址| 免费在线看成人av| 久久综合久久久久88| 欧美亚洲日本一区| 国产成人精品免费视频网站| 石原莉奈一区二区三区在线观看| 日韩欧美你懂的| 日本高清成人免费播放| 国产中文一区二区三区| 中文字幕av一区二区三区免费看 | 成人免费视频免费观看| 中文字幕在线视频一区| 日韩久久精品一区| 欧美午夜免费电影| 波波电影院一区二区三区| 一区二区三区视频在线观看| 久久久99精品久久| 日韩一区二区三免费高清| 色88888久久久久久影院按摩| 国产+成+人+亚洲欧洲自线| 六月婷婷色综合| 亚洲a一区二区| 欧美精品一区二区三区高清aⅴ | 亚洲国产综合色| 国产精品久久久久四虎| 欧美精品一区男女天堂| 欧美一区二区性放荡片| 国产成a人亚洲| 狠狠色丁香婷综合久久| 日韩电影在线一区二区| 亚洲国产成人高清精品| 亚洲精品一二三| 国产精品久久国产精麻豆99网站| 精品国产一区a| 日韩欧美高清一区| 在线不卡的av| 成人深夜福利app| 国产高清亚洲一区| 国产精品一区二区你懂的| 亚洲激情五月婷婷| 亚洲人成伊人成综合网小说| 日韩欧美黄色影院| 欧美一区永久视频免费观看| 欧美日韩激情在线| 欧美性一区二区| 一本色道久久综合亚洲91| 91欧美激情一区二区三区成人| a在线播放不卡| 成人aaaa免费全部观看| 麻豆91精品视频| 免费成人美女在线观看.| 天天免费综合色| 日韩不卡手机在线v区| 石原莉奈一区二区三区在线观看| 日日夜夜精品免费视频| 日韩高清一级片| 热久久久久久久| 久久99这里只有精品| 精品一区二区在线免费观看| 黄一区二区三区| 国产精品18久久久久久久网站| 国产激情视频一区二区三区欧美 | 在线一区二区视频| 欧美写真视频网站| 欧美久久久久中文字幕| 欧美一区二区三区男人的天堂| 欧美一区二区三级| 亚洲精品一区二区三区福利| 国产视频在线观看一区二区三区 | 国产亚洲午夜高清国产拍精品| 久久久久久久久一| 777久久久精品| 日韩免费在线观看| 久久久综合网站| 国产精品美女久久久久高潮| 久久免费的精品国产v∧| 中文字幕免费在线观看视频一区| 国产精品福利一区| 一区二区三区蜜桃网| 午夜国产精品影院在线观看| 老司机免费视频一区二区| 国产精品18久久久久久久网站| av电影在线观看一区| 欧美午夜不卡视频| 日韩欧美国产成人一区二区| 国产日产亚洲精品系列| 精品国产3级a| 国产精品丝袜一区| 亚洲一区二区三区美女| 亚洲视频1区2区| 天使萌一区二区三区免费观看| 久久精品国产免费看久久精品| 成人午夜在线免费| 欧美最新大片在线看| 日韩你懂的在线播放| 中文字幕一区二区三区不卡| 午夜激情一区二区| 国产精品综合一区二区三区| 色综合久久久网| 91精品国产91久久久久久一区二区 | 日韩福利视频网| 国产激情视频一区二区三区欧美 | 国产电影一区在线| 在线观看日韩av先锋影音电影院| 日韩一级高清毛片| 国产精品久久久久婷婷| 亚洲成人在线免费| 国产精品一区二区久久不卡| 色美美综合视频| 欧美成人综合网站| 亚洲丝袜自拍清纯另类| 美日韩一级片在线观看| 99麻豆久久久国产精品免费| 在线播放中文一区| 国产精品素人一区二区| 日本一不卡视频| 99v久久综合狠狠综合久久| 欧美一区二区精品在线| 亚洲图片激情小说| 久久er精品视频| 在线精品视频一区二区三四| 久久视频一区二区| 亚洲午夜精品一区二区三区他趣| 国产剧情在线观看一区二区| 精品视频123区在线观看| 正在播放一区二区| 亚洲天堂网中文字| 加勒比av一区二区| 欧美性色黄大片| 国产精品人妖ts系列视频| 毛片一区二区三区| 欧美做爰猛烈大尺度电影无法无天| 国产精品自在在线| 成人久久18免费网站麻豆| 欧美少妇xxx| 亚洲国产精品成人综合| 日韩电影在线观看网站| 99久久精品99国产精品| 精品国产乱码久久| 亚洲丰满少妇videoshd| 成人污污视频在线观看| 日韩欧美的一区| 亚洲成人免费在线| 色综合天天狠狠| 亚洲国产成人在线| 国产一区二区三区四区五区入口 | 国产精品三级av| 久久se精品一区二区| 欧美日韩中文一区| 亚洲欧洲国产日本综合| 国产aⅴ综合色| 欧美变态凌虐bdsm| 日韩成人午夜精品| 欧美三级三级三级爽爽爽| 亚洲人精品午夜|