腾讯云AI代码助手编程挑战赛——贪吃蛇小游戏

作品介绍

贪吃蛇小游戏需要控制蛇的移动方向,使其吃掉地图上随机出现的食物,每吃掉一个食物,蛇的身体就会增长一格,是一款老少皆宜的小游戏,我们可以用腾讯ai助手生成全部代码,简单方便快捷。

技术架构

python语言的tk库来完成的GUI页面设计,通过代码来完成具体的业务逻辑。

实现过程

我们通过对腾讯ai助手进行提问,并不断改进,最后得到完整代码。

项目源码

import pygame
import time
import random# 初始化 Pygame
pygame.init()# 设置窗口大小
width = 600
height = 400
dis = pygame.display.set_mode((width, height))# 设置游戏标题
pygame.display.set_caption('美化版贪吃蛇游戏')# 定义颜色
white = (255, 255, 255)
yellow = (255, 255, 102)
black = (0, 0, 0)
red = (213, 50, 80)
green = (0, 255, 0)
blue = (50, 153, 213)# 加载背景图片
background = pygame.image.load('background.jpg')  # 确保你有背景图片# 设置时钟以控制游戏速度
clock = pygame.time.Clock()snake_block = 20  # 蛇的尺寸
snake_speed = 10  # 降低蛇的速度# 设置字体样式
font_style = pygame.font.SysFont("bahnschrift", 25)
score_font = pygame.font.SysFont("comicsansms", 35)def our_snake(snake_block, snake_list):"""绘制蛇"""for x in snake_list:pygame.draw.rect(dis, black, [x[0], x[1], snake_block, snake_block])def message(msg, color):"""显示消息"""mesg = font_style.render(msg, True, color)dis.blit(mesg, [width / 6, height / 3])def gameLoop():"""游戏主循环"""game_over = Falsegame_close = False# 初始位置x1 = width / 2y1 = height / 2# 变化量x1_change = 0y1_change = 0snake_List = []Length_of_snake = 1# 食物位置foodx = round(random.randrange(0, width - snake_block) / 20.0) * 20.0foody = round(random.randrange(0, height - snake_block) / 20.0) * 20.0while not game_over:while game_close == True:dis.blit(background, (0, 0))  # 显示背景图片message("游戏结束! 按 Q 退出或按 C 重新开始", red)pygame.display.update()for event in pygame.event.get():if event.type == pygame.KEYDOWN:if event.key == pygame.K_q:game_over = Truegame_close = Falseif event.key == pygame.K_c:gameLoop()for event in pygame.event.get():if event.type == pygame.QUIT:game_over = Trueif event.type == pygame.KEYDOWN:if event.key == pygame.K_LEFT:x1_change = -snake_blocky1_change = 0elif event.key == pygame.K_RIGHT:x1_change = snake_blocky1_change = 0elif event.key == pygame.K_UP:y1_change = -snake_blockx1_change = 0elif event.key == pygame.K_DOWN:y1_change = snake_blockx1_change = 0# 检查边界if x1 >= width or x1 < 0 or y1 >= height or y1 < 0:game_close = Truex1 += x1_changey1 += y1_changedis.blit(background, (0, 0))  # 显示背景图片pygame.draw.rect(dis, green, [foodx, foody, snake_block, snake_block])snake_Head = []snake_Head.append(x1)snake_Head.append(y1)snake_List.append(snake_Head)if len(snake_List) > Length_of_snake:del snake_List[0]# 检查是否吃到自己for x in snake_List[:-1]:if x == snake_Head:game_close = Trueour_snake(snake_block, snake_List)pygame.display.update()# 检查是否吃到食物if x1 == foodx and y1 == foody:foodx = round(random.randrange(0, width - snake_block) / 20.0) * 20.0foody = round(random.randrange(0, height - snake_block) / 20.0) * 20.0Length_of_snake += 1clock.tick(snake_speed)pygame.quit()quit()if __name__ == "__main__":gameLoop()

使用说明

上下左右键控制蛇蛇移动方向,使其吃掉地图上随机出现的食物,每吃掉一个食物,蛇的身体就会增长一格,蛇撞墙或咬身体则游戏结束,按 Q 退出或按 C 重新开始。

开发环境

系统:win11系统

工具:VS Code

插件:安装腾讯云AI代码助手插件

腾讯云AI代码助手在上述过程中全程助力

完整的助力于开发的整个生命周期,包括初始页面到数据展示以及操作,最后进行打包exe文件。

效果展示

腾讯云AI代码助手编程挑战赛——贪吃蛇小游戏_哔哩哔哩_bilibili

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/504204.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【linux系统之redis6】redisTemplate的使用方法

新版本的application.yml配置文件 spring:data:redis:host: 192.168.1.102port: 6379lettuce:pool:max-active: 8min-idle: 1max-idle: 0max-wait: 100redisTemplate使用方法 <dependencies><dependency><groupId>org.springframework.boot</groupId>…

【算法】字符串算法技巧系列

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 引入&#xff1a;字符串相关算法技巧 1&#xff1a;字符串转数组 2&#xff1a;子字符串 3&#xff…

掌握正则表达式:从入门到精通的实战指南

文章目录 &#x1f30d;一.正则表达式❄️1.为什么学习正则表达式❄️ 2.基本介绍❄️3.分析底层实现 &#x1f30d;二.正则表达式的语法❄️1.字符匹配❄️2.量词❄️3.定位符4.分组和引用❄️6.非贪婪匹配❄️7.分支结构❄️实际应用 &#x1f30d; 三.正则标表达式的三个常用…

leetcode 5. 最长回文子串

题目如下 本题可以这么来想设有一个回文串s"112211"当我们去掉左右两边的"1"时s任然是回文串。 反过来说现有字符串 "x1221y"(x,y都是未知字符)当且仅当x y时这个字符串是回文串。 故我们可以令i j为某一个字符串的左右两端然后有如下情况: i…

BoltzGnu Boltztrap数据绘图脚本

BoltzGnu包含四个Gnuplot脚本&#xff0c;允许绘制BoltzTraP输出数据。 下载网址&#xff1a; https://github.com/K4ys4r/BoltzGnu 1. pTRACE_E.gp -> To plot Trasport proporties as a function of energy at define Temperature2. pTRACE_E_multT.gp -> To pl…

AIA - APLIC之三(附APLIC处理流程图)

本文属于《 RISC-V指令集基础系列教程》之一,欢迎查看其它文章。 1 APLIC复位 APLIC复位后,其所有状态都变得有效且一致,但以下情况除外: 每个中断域的domaincfg寄存器(spec第 4.5.1 节);可能是machine-level interrupt domain的MSI地址配置寄存器(spec第4.5.3 和4.5…

【MySQL】深度学习数据库开发技术:使用CC++语言访问数据库

**前言&#xff1a;**本节内容介绍使用C/C访问数据库&#xff0c; 包括对数据库的增删查改操作。 主要是学习一些接口的调用&#xff0c; 废话不多说&#xff0c; 开始我们的学习吧&#xff01; ps:本节内容比较容易&#xff0c; 友友们放心观看哦&#xff01; 目录 准备mysql…

微信小程序map组件所有markers展示在视野范围内

注意&#xff1a;使用include-points属性不生效&#xff0c;要通过createMapContext实现 <template><view class"map-box"><map id"map" class"map" :markers"markers" :enable-traffic"true" :enable-poi&…

全新免押租赁系统打造便捷安全的租赁体验

内容概要 全新免押租赁系统的推出&#xff0c;标志着租赁行业的一次重大变革。这个系统的最大特点就是“免押金”&#xff0c;大大减轻了用户在租赁过程中的经济负担。从此&#xff0c;不再需要为一部手机或其他商品支付高昂的押金&#xff0c;用户只需通过简单的信用评估&…

【C++】B2106 矩阵转置

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目解析&#x1f4af;第一种实现方式&#xff1a;我的初始做法实现思路优缺点分析 &#x1f4af;第二种实现方式&#xff1a;我的优化做法实现思路优缺点分析 &#x1f4a…

xxl-job回调执行器,发生NPE空指针异常

一、背景 xxl-job管理后台报错&#xff1a; 22:33:26.615 logback [http-nio-8090-exec-9] ERROR c.x.j.a.c.r.WebExceptionResolver - WebExceptionResolver:{} java.lang.NullPointerException: nullat com.xxl.job.admin.service.impl.AdminBizImpl.callback(AdminBizImpl…

UE 5.3 C++ 管理POI 如何对WidgetComponent 屏幕模式进行点击

一.首先对很多对 World 模式下的点击&#xff0c;选择接受 硬件输入&#xff0c;就可以实现点击。 二。Screen 模式下&#xff0c;的POI。如果想要点击&#xff0c; 设置好 Layers。 在Widget下&#xff0c;加个Button。 即使上面有其他&#xff0c;但也能点击到。 。 如果相…

CDP集成Hudi实战-Hive

[〇]关于本文 本文测试一下使用Hive和Hudi的集成 软件版本Hudi1.0.0Hadoop Version3.1.1.7.3.1.0-197Hive Version3.1.3000.7.3.1.0-197Spark Version3.4.1.7.3.1.0-197CDP7.3.1 [一]部署Jar包 1-部署hudi-hive-sync-bundle-1.0.0.jar文件 [rootcdp73-1 ~]# for i in $(se…

腾讯云AI代码助手编程挑战赛——智能音乐推荐系统

作品简介 智能音乐推荐系统是一种利用人工智能和数据分析技术&#xff0c;根据用户的音乐偏好来推荐音乐的系统。 它主要基于用户的历史收听记录&#xff0c;如歌曲、专辑、歌手的收藏和播放次数等数据进行分析。同时也会考虑用户的基本信息&#xff0c;像年龄、性别等可能和…

在JavaScript开发中,如何判断对象自身为空?

前言 如何判断一个对象为空是我们在开发中经常会遇到的问题&#xff0c;今天我们来聊聊几种经常使用的方法&#xff0c;以及在不同的场景下我们如何去使用。 1. JSON.stringify JSON.stringify 方法可以使对象序列化&#xff0c;转为相应的 JSON 格式。 const obj {};cons…

SpringCloud系列教程:微服务的未来(十)服务调用、注册中心原理、Nacos注册中心

本博客将重点介绍服务调用和注册中心的原理&#xff0c;特别是以 Nacos 为例&#xff0c;详细讲解 Nacos 注册中心如何实现服务的注册与发现。同时&#xff0c;分析 Nacos 注册中心在分布式微服务中的应用&#xff0c;帮助开发者更好地理解其工作机制。 目录 前言 微服务拆分…

NRC优先级中比较特殊的—NRC0x13和NRC0x31

1、基础知识 大家都了解 NRC0x13&#xff0c;表示长度错误和格式错误 NRC0x31&#xff0c;表示DID不支持和数据格式不支持 2、为什么说这两个NRC比较特殊 看下图的标注部分&#xff1a; 2.1、先看NRC0x13 步骤一&#xff1a;仔细看是先判断Minmun Length Check &#xff0…

Redis 笔记(二)-Redis 安装及测试

一、什么是 Redis 中文网站 Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的使用 ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value&#xff0c;并提供多种语言的 API。 Redis 开源&#xff0c;遵循 BSD 基…

eNSP之家——路由器--入门实例详解

eNSP路由器配置&#xff1a;IP、DHCP与DNS详解-CSDN博客 练习1&#xff1a;两个路由器配置ip地址&#xff0c;并用ping命令测试连通性。 打开ensp&#xff0c;拉进来两个路由器AR2220,再用auto连接两个路由器。 选中两个路由器&#xff0c;右键启动&#xff0c;等待半分钟路由…

Electron快速入门——跨平台桌面端应用开发框架

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…