python貪吃蛇開發 python簡單貪吃蛇開發

2021-10-18 15:51:53 字數 3360 閱讀 2424

import sys

import random

import pygame

from pygame.locals import *

# 目標方塊的顏色 紅色

redcolor = pygame.color(255, 0, 0)

# 遊戲介面的背景顏色 純黑色

blackcolor = pygame.color(0, 0, 0)

# 貪吃蛇的顏色 白色

whitecolor = pygame.color(255, 255, 255)

# 定義遊戲結束的函式

def gameover():

pygame.quit()

sys.exit()

# 定義main函式

def main():

# 初始化pygame

pygame.init()

# 定義乙個控制速度的函式

fpsclock = pygame.time.clock()

# 建立顯示層

playsu***ce = pygame.display.set_mode((640,480)) # 介面的大小

pygame.display.set_caption('貪吃蛇')

# 初始化蛇的位置

snake_position=[100,100]

# 初始化蛇的長度

snake_body = [[100,100],[80,100],[60,100]]

# 初始化目標方塊的位置

target_position = [300,300]

# 目標方塊的狀態

target_flag = 1

# 初始化乙個方向

direction = 'right'

# 定義蛇的方向變數

changedirection = direction

while true:

# pygame的互動模組和事件佇列

for event in pygame.event.get():

# 是否推出

if event.type == quit:

pygame.quit()

sys.exit()

# 判斷鍵盤事件

elif event.type == keydown:

if event.key == k_right:

changedirection = 'right'

if event.key == k_left:

changedirection = 'left'

if event.key == k_up:

changedirection = 'up'

if event.key == k_down:

changedirection = 'down'

if event.key == k_space:

pygame.event.post(pygame.event.event(quit))

# 根據鍵盤反應確定方向

if changedirection == 'left' and not direction == 'right':

direction = changedirection

if changedirection == 'right' and not direction == 'left':

direction = changedirection

if changedirection == 'up' and not direction == 'down':

direction = changedirection

if changedirection == 'down' and not direction == 'up':

direction = changedirection

# 根據方向移動蛇頭的座標

if direction == 'right':

snake_position[0] += 20

if direction == 'left':

snake_position[0] -= 20

if direction == 'up':

snake_position[1] -= 20

if direction == 'down':

snake_position[1] += 20

# 蛇與自身的碰撞檢測

for body in snake_body:

if snake_position[0] == body[0] and snake_position[1] == body[1]:

gameover()

# 蛇移動

snake_body.insert(0,list(snake_position))

if snake_position[0] == target_position[0] and snake_position[1] == target_position[1]:

target_flag = 0

else:

# 如果沒吃到,蛇尾彈出棧

snake_body.pop()

# 如果吃掉目標方塊,重新生成乙個目標方塊

if target_flag == 0:

x = random.randrange(1,32)

y = random.randrange(1,24)

# 20*20的畫素為乙個小矩形

target_position = [int(x*20),int(y*20)]

target_flag = 1

# 繪製顯示層

playsu***ce.fill(blackcolor)

# 繪製蛇

for position in snake_body:

pygame.draw.rect(playsu***ce, redcolor, rect(position[0],position[1],20,20))

# 畫目標方塊

pygame.draw.rect(playsu***ce, whitecolor, rect(target_position[0], target_position[1], 20, 20))

pygame.display.flip()

# 判斷死亡

if snake_position[0] > 620 or snake_position[1] < 0:

gameover()

elif snake_position[1] > 460 or snake_position[1] < 0:

gameover()

# 控制遊戲的速度

fpsclock.tick(5)

if __name__ == '__main__':

main()

Python 貪吃蛇遊戲

coding utf 8 引入turtle庫,製作snake,food的動畫 from turtle import 引入random庫,使food隨機出現 from random import randrange 引入freegames庫,這個庫中封裝了許多元素 我們可以使用正方形元素表示food,...

Python 遊戲 貪吃蛇

貪吃蛇是個非常簡單的遊戲,適合練手。先來看一下我的遊戲截圖 玩法介紹 回車鍵 開始遊戲 空格鍵 暫停 繼續 方向鍵 或 wsad 鍵 控制移動方向。食物分紅 綠 藍三種,分別對應 10 分 20 分 30 分,每吃乙個食物增加對應分值,每增加 100 分速度加快一級,沒有設定關卡,我玩到 1100 ...

貪吃蛇遊戲

貪吃蛇遊戲 結構化程式設計 c語言程式設計 重要的的是結構化的程式設計思想 include include include include include include define field width 300 就做20個格仔的 define field height 300 define f...