python實現貪吃蛇
import turtle
from turtle import *
from random import randrange
from time import sleep
import pygame
snake = [[0,0],[10,0],[20,0],[30,0],[40,0],[50,0]]
apple_x = randrange(-20,18)*10
apple_y = randrange(-19,19)*10
aim_x = 10
aim_y = 0
def square(x,y,size,color_name):
up()
goto(x,y)
down()
# 設定顏色
color(color_name)
# 填充
begin_fill()
forward(size)
left(90)
forward(size)
left(90)
forward(size)
left(90)
forward(size)
left(90)
end_fill()
def change(x,y):
global aim_x,aim_y
aim_x = x
aim_y = y
def inside_snake():
for i in range(len(snake)-1):
if snake[i][0] == snake[-1][0] and snake[i][1] == snake[-1][1]:
# 蛇咬住自己
return True
return False
def inside_map():
if -200 <= snake[-1][0] <= 180 and -190 <= snake[-1][1] <= 190:
# 沒出界
return True
else:
return False
def sound1(): # 播放吃食物音效
file1 = r' 吃食物音效 .mp3'
# 初始化混音器模組
pygame.mixer.init()
# 建立聲音物件
track = pygame.mixer.Sound(file1)
# 播放
track.play()
def sound2(): # 播放蛇 over 音效
file2 = r' 貪吃蛇掛了 .mp3'
pygame.mixer.init()
track = pygame.mixer.Sound(file2)
track.play()
pygame.mixer.init()
file = r' 貪吃蛇大作戰背景音樂 .mp3'
pygame.mixer.music.load(file)
pygame.mixer.music.play(-1)
def gameLoop():
global apple_x,apple_y,snake,aim_x,aim_y
snake.append([snake[-1][0]+aim_x,snake[-1][1]+aim_y])
if snake[-1][0] != apple_x or snake[-1][1] != apple_y:
snake.pop(0)
else:
# 遲到食物
sound1() # 播放音效
# 更新食物位置
apple_x = randrange(-20, 18)*10
apple_y = 外匯跟單gendan5.comrandrange(-19, 19)*10
# 出界或者蛇咬住自己 , 結束
if (not inside_map()) or inside_snake():
square(snake[-1][0],snake[-1][1],10,"red")
update()
# 播放遊戲結束音效
sound2()
# 等待兩秒重開
sleep(2)
snake = [[0, 0], [10, 0], [20, 0], [30, 0], [40, 0], [50, 0]]
apple_x = randrange(-20, 18)*10
apple_y = randrange(-19, 19)*10
aim_x = 10
aim_y = 0
clear()
square(-210, -200, 410, "black")
square(-200, -190, 390, "white")
square(apple_x, apple_y, 10, "red")
for i in range(len(snake)):
square(snake[i][0],snake[i][1],10,"black")
# 更新
update()
# 過 130ms 再次執行 gameLoop
ontimer(gameLoop,130)
# 畫布
turtle.setup(420, 420, 0, 0)
hideturtle()
# 隱藏繪圖,直接顯示繪畫效果
tracer(False)
# 監視鍵盤和滑鼠操作
listen()
# 右手操控
onkey(lambda: change(0,10), "Up")
onkey(lambda: change(0,-10), 'Down')
onkey(lambda: change(10,0), 'Right')
onkey(lambda: change(-10,0), 'Left')
# 左手操控
onkey(lambda: change(0,10), "w")
onkey(lambda: change(0,-10), 's')
onkey(lambda: change(10,0), 'd')
onkey(lambda: change(-10,0), 'a')
sleep(3)
gameLoop()
done()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2842283/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python實現貪吃蛇大作戰Python
- Java實現貪吃蛇Java
- OpenGL實現貪吃蛇程式碼
- Python:遊戲:貪吃蛇Python遊戲
- Python3 貪吃蛇Python
- 貪吃蛇
- C語言實現桌面貪吃蛇C語言
- 04 貪吃蛇
- 貪吃蛇jsJS
- 利用python實現簡易版的貪吃蛇遊戲(面向python小白)Python遊戲
- h5+js實現單機版貪吃蛇H5JS
- 【Python】 Python小遊戲-貪吃蛇大冒險Python遊戲
- 100行Python程式碼實現貪吃蛇小遊戲(超詳細)Python遊戲
- 貪吃蛇c原始碼原始碼
- 用 Python 寫個貪吃蛇,保姆級教程!Python
- 《貪吃蛇巴士》:《貪吃蛇》和《瘋狂計程車》的「完美結晶」
- js+jquery實現貪吃蛇經典小遊戲JSjQuery遊戲
- [譯] RxJS 遊戲之貪吃蛇JS遊戲
- C語言貪吃蛇原始碼C語言原始碼
- 貪吃蛇完整版小案例
- (完整原始碼)貪吃蛇小遊戲——HTML+CSS+JavaScript實現原始碼遊戲HTMLCSSJavaScript
- Android-貪吃蛇小遊戲-分析與實現-Kotlin語言描述Android遊戲Kotlin
- c/c++實現簡單的貪吃蛇視覺化遊戲C++視覺化遊戲
- pygame試水,寫一個貪吃蛇GAM
- 貪吃蛇大作戰JavaFx版完整原始碼Java原始碼
- 溫習資料演算法—貪吃蛇演算法
- arduino uno+LCD12864(ST7735S)+藍芽模組實現貪吃蛇UI藍芽模組
- html+js 實現 推箱子 貪吃蛇和簡單的飛機大戰HTMLJS
- 純JS實現貪吃蛇遊戲 —— 可能是全網程式碼最優雅的實現。JS遊戲
- .NET分散式Orleans - 9 - 貪吃蛇專案演示分散式
- STM32最小系統板OLED貪吃蛇
- C語言小遊戲------貪吃蛇----小白專用C語言遊戲
- 自動玩貪吃蛇的小白痴機器人機器人
- 開發Windows貪吃蛇遊戲——(一)前期準備Windows遊戲
- GUI 基於Swing製作貪吃蛇小遊戲GUI遊戲
- 一步步教你怎麼用python寫貪吃蛇遊戲Python遊戲
- .NET分散式Orleans - 8 - 貪吃蛇專案實戰(準備階段)分散式
- 爽!用golang 手擼了個簡單的貪吃蛇Golang