Python代码之贪吃蛇

这篇具有很好参考价值的文章主要介绍了Python代码之贪吃蛇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python贪吃蛇游戏的最简单代码:

import pygame, sys
from pygame.locals import *

pygame.init()
fpsClock = pygame.time.Clock()

WINDOW = pygame.display.set_mode((400, 300))
pygame.display.set_caption('贪吃蛇')

BLACK = pygame.Color(0, 0, 0)
WHITE = pygame.Color(255, 255, 255)
RED = pygame.Color(255, 0, 0)

snake_position = [100, 50]
snake_body = [[100, 50], [90, 50], [80, 50]]

food_position = [300, 150]
food_spawn = True

direction = 'RIGHT'
change_to = direction

def game_over():
    pygame.quit()
    sys.exit()

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            game_over()
        elif event.type == KEYDOWN:
            if event.key == K_RIGHT or event.key == ord('d'):
                change_to = 'RIGHT'
            if event.key == K_LEFT or event.key == ord('a'):
                change_to = 'LEFT'
            if event.key == K_UP or event.key == ord('w'):
                change_to = 'UP'
            if event.key == K_DOWN or event.key == ord('s'):
                change_to = 'DOWN'
            if event.key == K_ESCAPE:
                pygame.event.post(pygame.event.Event(QUIT))

    if change_to == 'RIGHT' and not direction == 'LEFT':
        direction = 'RIGHT'
    if change_to == 'LEFT' and not direction == 'RIGHT':
        direction = 'LEFT'
    if change_to == 'UP' and not direction == 'DOWN':
        direction = 'UP'
    if change_to == 'DOWN' and not direction == 'UP':
        direction = 'DOWN'

    if direction == 'RIGHT':
        snake_position[0] += 10
    if direction == 'LEFT':
        snake_position[0] -= 10
    if direction == 'UP':
        snake_position[1] -= 10
    if direction == 'DOWN':
        snake_position[1] += 10

    snake_body.insert(0, list(snake_position))
    if snake_position[0] == food_position[0] and snake_position[1] == food_position[1]:
        food_spawn = False
    else:
        snake_body.pop()

    if not food_spawn:
        food_position = [pygame.randint(0, 39) * 10, pygame.randint(0, 29) * 10]
    food_spawn = True
    WINDOW.fill(BLACK)
    for pos in snake_body:
        pygame.draw.rect(WINDOW, RED, pygame.Rect(
            pos[0], pos[1], 10, 10))
    pygame.draw.rect(WINDOW, WHITE, pygame.Rect(
        food_position[0], food_position[1], 10, 10))
    if snake_position[0] >= 400 or snake_position[0] < 0:
        game_over()
    if snake_position[1] >= 300 or snake_position[1] < 0:
        game_over()
    for block in snake_body[1:]:
        if snake_position[0] == block[0] and snake_position[1] == block[1]:
            game_over()
    pygame.display.update()
    fpsClock.tick(12)

这是一个简单的贪吃蛇游戏,它使用了Python的Pygame库。玩家控制蛇在屏幕上移动,并尽可能吃到食物来得分。如果玩家撞到边界或撞到蛇的身体,游戏就会结束。

在这个代码中,我们使用pygame库来创建了一个游戏窗口。我们使用snake_position来跟踪蛇的位置,并使用snake_body来跟踪蛇的身体。蛇的初始长度为3,位于屏幕上方的中央位置。我们使用food_position来跟踪食物的位置,使用food_spawn来判断是否需要生成新的食物。

在游戏循环中,我们处理用户的输入,并根据输入来更新蛇的方向。如果蛇的方向与输入方向相反,则不允许蛇掉头。然后,我们将根据方向更新蛇的位置。我们还将蛇的新位置添加到snake_body列表的开头,并从列表的末尾删除最后一个元素,以确保蛇的身体长度不变。

如果蛇吃到了食物,我们将不再生成新的食物,而是将蛇的身体长度加1。否则,我们将生成新的食物,以便玩家继续游戏。

我们还检查蛇是否碰到了边界或撞到了自己的身体。如果是,游戏就会结束,并调用game_over()函数来退出游戏。

最后,我们使用pygame.display.update()来更新游戏窗口,并使用fpsClock.tick(12)来限制帧率为12FPS,以确保游戏不会运行得太快。文章来源地址https://www.toymoban.com/news/detail-717342.html

到了这里,关于Python代码之贪吃蛇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python之贪吃蛇代码实现

    下面是一个简单的使用 Python 的 pygame 库实现的贪吃蛇游戏。这个示例只是一个简单的版本,没有很多高级功能,但它可以作为一个起点,你可以在此基础上添加更多功能。 《AUTOSAR谱系分解(ETAS工具链)》之总目录

    2024年04月12日
    浏览(23)
  • Python实现贪吃蛇【含代码和讲解】

    Python实现贪吃蛇:打造属于自己的经典游戏 在程序开发中,一些简单有趣的小游戏是最受欢迎的。其中,贪吃蛇游戏是一款经典且受欢迎的小游戏,许多人喜欢玩这个游戏。Python 语言可以帮助我们轻松实现贪吃蛇游戏,本文将介绍如何使用 Python 语言实现这个小游戏。 首先

    2024年02月16日
    浏览(28)
  • python实现自动贪吃蛇,含完整代码

    【Python自动化贪吃蛇游戏实现】- 用代码让AI自动吃食物 贪吃蛇游戏是一款经典、简单却挑战性极高的小游戏,让我们忍不住想用代码去写一个自动化的贪吃蛇游戏。本文将为您提供Python自动化实现游戏的全套代码。 首先,我们需要使用Pygame库来完成游戏界面的创建。然后,

    2024年02月16日
    浏览(28)
  • 教你用322行Python代码编写贪吃蛇

    安装和导入  规则 初始化 设定Surface,变量和显示数字的坐标  函数 线程  主要部分 总结 源码下载   贪吃蛇是一个很常见的小游戏,我们如何用Python去实现呢。 通过命令提示符安装所需模块。(以上非Python代码) 这个程序用到了pygame作为显示模块,keyboard捕获键盘操,

    2023年04月09日
    浏览(38)
  • 简单的贪吃蛇小游戏的 Python 代码

    简单的贪吃蛇小游戏的 Python 代码:

    2024年02月08日
    浏览(40)
  • python简易贪吃蛇小游戏任务书含代码

     目  录 第一章 绪论 1.1 开发的背景 1.2 开发的目的 1.3 开发的意义 1.4 开发工具简介 第二章 需求分析 (1) 利用方向键来改变蛇的运行方向。 (2) 在随机的地方产生食物。 (3) 吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。 第三章 系统概要设计 3.1 设计目

    2024年02月16日
    浏览(29)
  • wasm+pygbag让你在网页上也能运行Python代码:【贪吃蛇游戏】

    最近小伙伴告诉我一种新的方法,可以使用wasm来使浏览器网页能够运行Python代码。这一下子激起了我的兴趣,因为这意味着用户无需安装Python环境就能直接运行我的demo,这真是太方便了。所以,我们的主要目标今天就是让网页能够直接运行我的贪吃蛇游戏。贪吃蛇游戏其实

    2024年02月03日
    浏览(31)
  • 68行Python代码实现带难度升级的贪吃蛇,你能坚持到第10关吗

    之前版本很多小伙伴都觉得难度过高,另外也有粉丝问还能不能精简代码。 所以这版降低了难度 (由原来过关增加5km/h改为3.5KM/h) 并通过反射代替IF ELSE的写法,删除了一些冗余的代码,将代码由85行压缩到了68行 (不必要的压缩代码是不建议的,这里压缩代码只是为了好玩

    2024年02月15日
    浏览(34)
  • 【华为OD机试真题 Python语言】443、贪吃的猴子 | 机试真题+思路参考+代码解析(C卷)

    🍂个人博客首页: KJ.JK   🍂专栏介绍: 华为OD机试真题汇总,定期更新华为OD各个时间阶段的机试真题,每日定时更新,本专栏将使用Python语言进行更新解答,包含真题,思路分析,代码参考,欢迎大家订阅学习

    2024年02月03日
    浏览(52)
  • python贪吃蛇游戏

    为了实现这个游戏,需要用到Python的pygame模块,它是一个专门用于开发游戏的模块,提供了很多方便的功能,比如窗口、图形、音效、事件处理等。 用pygame来创建一个窗口,设置游戏的背景色,画出蛇和食物,处理用户的输入,更新游戏的状态,显示分数等。 首先 ,我们需

    2024年01月18日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包