python开发入门实操学习-Python实现贪吃蛇
小职 2021-12-21 来源 : 阅读 752 评论 0

摘要:本篇介绍了python开发入门实操学习-Python实现贪吃蛇,通过具体的内容展现,希望对大家Python的学习有所帮助。

本篇介绍了python开发入门实操学习-Python实现贪吃蛇,通过具体的内容展现,希望对大家Python的学习有所帮助。

python开发入门实操学习-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 = 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()


演示效果:

python开发入门实操学习-Python实现贪吃蛇


✅  扫码免费获取IT基础课程 · IT技术干货 · 答疑解惑 · 职业测评

python开发入门实操学习-Python实现贪吃蛇


本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程