• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于python:python实现贪吃蛇

python 搞代码 3年前 (2022-02-20) 21次浏览 已收录 0个评论

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 = randrange(-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()


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于python:python实现贪吃蛇

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址