【豆包MarsCode蛇年编程大作战】花样贪吃蛇

 

目录

引言

展示效果

prompt提示信息

第一次提示(实现基本功能)

初次实现效果

第二次提示(美化UI)

第一次美化后的效果

 第二次美化后的效果

代码展示

实现在线体验链接

码上掘金使用教程


体验地址: 花样贪吃蛇

控制键盘的↑↓←→键即可控制。也可以通过WSAD来进行控制,W是向上,S是向下,A是向左,D是向右。

官方活动地址:活动地址


引言

当新春的脚步伴随着蛇年的灵动气息悄然临近,科技与创意的火花也在此时被点燃。豆包倾力推出的 “MarsCode 蛇年编程大作战” 盛大起航,为编程爱好者们开启一扇通往奇幻创作天地的大门。此刻,无论你登录便捷高效的豆包 MarsCode 编程助手,还是功能强大的 MarsCode IDE,只需轻启 AI 问答功能,就能获取源源不断的灵感助力。在这里,你将以代码为丝线,编织出独具蛇年韵味的编程佳作,在数字世界中留下属于自己的闪耀印记,开启这场充满惊喜与挑战的蛇年创意编程征程。

下面我将展示我如何使用豆包MarsCodeAI来实现一个创意贪吃蛇的项目!

展示效果

prompt提示信息

我现在要你帮我实现了一个贪吃蛇的游戏,使用HTML+JS+JS,用Canvas来绘制游戏界面比较合适。这样可以在网页上直接运行,用户容易访问。

美化画布UI,画图居中显示,在画布的上面要有“豆包MarsCode 花样贪吃蛇”这个标题,同样也是居中显示。
游戏的基本结构应该包括初始化蛇的移动、食物的生成、碰撞检测以及得分机制。蛇的移动通常通过一个数组来保存每个身体部分的坐标,每隔一定时间更新位置。食物要在随机位置生成,但需要确保不在蛇的身体上。得分每吃一次食物就增加,同时蛇的身体变长。
用户界面部分需要显示得分和游戏标题。标题“豆包MarsCode 花样贪吃蛇”要显眼,可能放在画布上方居中。得分实时更新,可以用一个独立的div元素来显示。
碰撞检测是关键部分,包括蛇头是否碰到墙壁或者自己的身体。碰到的话游戏结束,弹出提示,并重新开始。这里可能需要一个游戏循环,用setInterval或者requestAnimationFrame来不断更新游戏状态。
控制蛇的移动方向需要监听键盘事件,通常是方向键或者WASD。要注意防止蛇直接反向移动,比如在向右移动时不能立即向左转。
测试各个功能是否正常,比如食物生成是否在正确位置,得分是否正确增加,游戏结束条件是否触发等。可能还需要调整游戏速度,让难度适中。
最后,确保代码结构清晰,注释充分,方便用户理解和修改。可能还需要考虑不同浏览器的兼容性,但现代浏览器一般支持Canvas和键盘事件。
总结下来,步骤大致是:设置画布和基本变量,绘制游戏元素,处理用户输入,更新游戏状态,检测碰撞,管理得分,以及处理游戏结束和重新开始。确保所有功能整合后运行流畅,没有明显bug。

第一次提示(实现基本功能)

下面我将上面给出的prompt提示信息扔给豆包MarsCode看看实现的效果:

初次实现效果

这里我们能看的出来基本功能都已经实现。能够自动生成食物,贪吃蛇吃完后长度会增加,分数正常累计,触碰到自己的时候就会失败!

但是目前的话这个UI还是不怎么好看,所以接下来让我们来继续使用豆包来美化UI样式!

第二次提示(美化UI)

提示信息:

请对画布和按钮以及文本的CSS样式进行优化和调整,达到圆润,色彩绚丽!

第一次美化后的效果

这个时候豆包已经对画布和按钮进行了美化,但是我感觉以我的美感感觉还是不够美观,下面让我们继续优化:

对代码进行优化,包括美化文本样式、将字体颜色设置为红色,以及美化背景,将背景设置成渐变色。

 第二次美化后的效果

这次看来确实好看了许多,背景也优化成了渐变色,文本的样式也进行了优化!!!

截至目前,我对这一过程极为满意。在实现贪吃蛇程序的过程中,我还同步进行了写博客与录屏操作,即便如此,整体耗时也未超过 20 分钟,效率堪称惊人。倘若单算实现贪吃蛇程序本身所需的时间,更是能控制在 3 分钟以内,着实高效。

代码展示

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>豆包MarsCode 花样贪吃蛇</title><style>body {display: flex;flex-direction: column;justify-content: center;align-items: center;height: 100vh;margin: 0;background-color: #f0f0f0;background-image: linear-gradient(to bottom right, #ffcccc, #ccffff); /* 添加渐变色背景 */}canvas {border: 2px solid #000;border-radius: 10px;box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);}#score {position: absolute;top: 20px;left: 50%;transform: translateX(-50%);font-size: 24px;font-weight: bold;color: red; /* 将字体颜色设置为红色 */text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); /* 添加文本阴影 */}#title {position: absolute;top: 60px;left: 50%;transform: translateX(-50%);font-size: 36px;font-weight: bold;color: red; /* 将字体颜色设置为红色 */text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); /* 添加文本阴影 */}#startButton, #restartButton {margin-top: 20px;padding: 10px 20px;font-size: 18px;font-weight: bold;cursor: pointer;border: none;border-radius: 5px;background-color: #4CAF50;color: white;box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);transition: background-color 0.3s ease;}#startButton:hover, #restartButton:hover {background-color: #45a049;}#gameOver {display: none;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);font-size: 36px;font-weight: bold;color: red; /* 将字体颜色设置为红色 */text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); /* 添加文本阴影 */}</style>
</head>
<body><canvas id="gameCanvas" width="400" height="400"></canvas><div id="score">得分: 0</div><div id="title">豆包MarsCode 花样贪吃蛇</div><button id="startButton">开始游戏</button><div id="gameOver">游戏结束!</div><button id="restartButton">重新开始</button><script>// 获取画布和上下文const canvas = document.getElementById('gameCanvas');const ctx = canvas.getContext('2d');// 游戏变量let snake = [{ x: 200, y: 200 }];let food = { x: 300, y: 300 };let dx = 20;let dy = 0;let score = 0;let gameInterval;// 绘制蛇function drawSnake() {snake.forEach(segment => {ctx.fillStyle = 'green';ctx.fillRect(segment.x, segment.y, 20, 20);});}// 绘制食物function drawFood() {ctx.fillStyle = 'red';ctx.fillRect(food.x, food.y, 20, 20);}// 生成食物function generateFood() {food = {x: Math.floor(Math.random() * (canvas.width / 20)) * 20,y: Math.floor(Math.random() * (canvas.height / 20)) * 20};}// 更新游戏状态function update() {// 移动蛇头const head = { x: snake[0].x + dx, y: snake[0].y + dy };snake.unshift(head);// 检查是否吃到食物if (head.x === food.x && head.y === food.y) {score++;generateFood();} else {snake.pop();}// 检查是否碰撞到墙壁或自己的身体if (head.x < 0 || head.x >= canvas.width || head.y < 0 || head.y >= canvas.height || snake.slice(1).some(segment => segment.x === head.x && segment.y === head.y)) {clearInterval(gameInterval);gameOver();}}// 绘制游戏function draw() {ctx.clearRect(0, 0, canvas.width, canvas.height);drawSnake();drawFood();document.getElementById('score').innerText = '得分: ' + score;}// 游戏循环function gameLoop() {update();draw();}// 监听键盘事件document.addEventListener('keydown', event => {const key = event.key;if (key === 'ArrowUp' || key === 'w' || key === 'W') {if (dy !== 20) {dx = 0;dy = -20;}} else if (key === 'ArrowDown' || key === 's' || key === 'S') {if (dy !== -20) {dx = 0;dy = 20;}} else if (key === 'ArrowLeft' || key === 'a' || key === 'A') {if (dx !== 20) {dx = -20;dy = 0;}} else if (key === 'ArrowRight' || key === 'd' || key === 'D') {if (dx !== -20) {dx = 20;dy = 0;}}});// 开始游戏按钮点击事件document.getElementById('startButton').addEventListener('click', () => {if (!gameInterval) {gameInterval = setInterval(gameLoop, 100);document.getElementById('restartButton').style.display = 'none';}});// 重新开始按钮点击事件document.getElementById('restartButton').addEventListener('click', () => {resetGame();});// 游戏结束function gameOver() {document.getElementById('gameOver').style.display = 'block';document.getElementById('restartButton').style.display = 'block';}// 重置游戏function resetGame() {clearInterval(gameInterval);snake = [{ x: 200, y: 200 }];dx = 20;dy = 0;score = 0;generateFood();document.getElementById('gameOver').style.display = 'none';document.getElementById('restartButton').style.display = 'none';gameInterval = setInterval(gameLoop, 100);}// 初始化游戏generateFood();document.getElementById('restartButton').style.display = 'none';</script>
</body>
</html>

实现在线体验链接

豆包官方要求要实现在线体验链接,下面就教给你们一种非常简便的方式来实现在线体现链接,这里我们使用稀土掘金推出的一款面向开发者的在线code playground平台码上掘金

码上掘金地址:码上掘金

码上掘金使用教程

首先进入码上掘金平台,然后点击新建代码片段

因为目前我的代码是纯HTML+CSS+JS,这里直接新建空白项目,如果你们的代码使用Vue或者Java,Python之类的来实现的话,可以选择对应的模版。

创建后是这个排版

由于我们只有一个html文件,那么我们直接将刚刚的代码复制到对应的HTML编辑区域中,复制进来后点击运行即可看到代码的运行效果!!!

测试一下代码没有问题后,这个时候点击右上角的发布,等待审核通过即可!

审核通过展示

体验地址: 花样贪吃蛇

@豆包MarsCode 

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

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

相关文章

【Maui】注销用户,采用“手势”点击label弹窗选择

文章目录 前言一、问题描述二、解决方案三、软件开发&#xff08;源码&#xff09;3.1 方法一&#xff1a;前端绑定3.2 方法二&#xff1a;后端绑定3.3 注销用户的方法 四、项目展示 前言 .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架&#xff0c;用于使用 C# 和 XAML 创…

RoCE网络及其协议栈详解(没有中间商赚差价的网络)

引言 随着数据中心对高性能、低延迟通信需求的不断增长&#xff0c;传统的TCP/IP以太网连接已经难以满足现代应用的要求。为了解决这些问题&#xff0c;RDMA&#xff08;Remote Direct Memory Access&#xff09;技术应运而生。RDMA是一种允许网络中的不同计算机直接访问对方内…

数据结构:二叉树—面试题(一)

目录 1、相同的树 2、另一棵树的子树 3、翻转二叉树 4、平衡二叉树 5、对称二叉树 6、二叉树遍历 7、二叉树的分层遍历 1、相同的树 习题链接https://leetcode.cn/problems/same-tree/description/https://leetcode.cn/problems/same-tree/description/ 描述&#xff1a…

2025年新开局!谁在引领汽车AI风潮?

汽车AI革命已来。 在2025年伊始开幕的CES展上&#xff0c;AI汽车、AI座舱无疑成为了今年汽车行业的最大热点。其中不少车企在2025年CES上展示了其新一代AI座舱&#xff0c;为下一代智能汽车的人机交互、场景创新率先打样。 其中&#xff0c;东软集团也携带AI驱动、大数据支撑…

HarmonyOS Next 应用UI生成工具介绍

背景 HarmonyOS Next适配开发过程中难买难要参考之前逻辑&#xff0c;但是可能时间较长文档不全&#xff0c;只能参考Android或iOS代码&#xff0c;有些逻辑较重的场景还可以通过AI工具将Android 的Java代码逻辑转成TS完成部分复用。对于一些UI场景只能手动去写&#xff0c;虽…

python学opencv|读取图像(四十一 )使用cv2.add()函数实现各个像素点BGR叠加

【1】引言 前序已经学习了直接在画布上使用掩模&#xff0c;会获得彩色图像的多种叠加效果&#xff0c;相关文章链接为&#xff1a; python学opencv|读取图像&#xff08;四十&#xff09;掩模&#xff1a;三通道图像的局部覆盖-CSDN博客 这时候如果更进一步&#xff0c;直接…

宝塔Linux+docker部署nginx出现403 Forbidden

本文主要讲述了宝塔docker部署nginx出现403 Forbidden的原因&#xff0c;以及成功部署前端的方法步骤。 目录 1、问题描述2、问题检测2.1 检测监听端口是否异常2.2 检测Docker容器是否异常2.2.1 打开宝塔Linux的软件商店&#xff0c;找到Docker管理器&#xff0c;查看前端容器是…

PVE 虚拟机安装 Debian 无图形化界面服务器

Debian 安装 Debian 镜像下载 找一个Debian镜像服务器&#xff0c;根据需要的版本和自己硬件选择。 iso-cd/&#xff1a;较小&#xff0c;仅包含安装所需的基础组件&#xff0c;可能需要网络访问来完成安装。有镜像 debian-12.9.0-amd64-netinst.isoiso-dvd/&#xff1a;较…

docker环境搭建,docker拉取mysql,docker制作自定义C++镜像

目录 centos 安装和使用 dockerdocker拉取mysql使用可执行文件制作docker镜像Dockerfile文件优化Dockerfile简介Dockerfile优化 centos 安装和使用 docker yum install docker systemctl start docker systemctl status docker# 查询docker版本 docker version # 查询docker基…

2025牛客寒假算法营2

A题 知识点&#xff1a;模拟 打卡。检查给定的七个整数是否仅包含 1,2,3,5,6 即可。为了便于书写&#xff0c;我们可以反过来&#xff0c;检查这七个整数是否不为 4 和 7。 时间 O(1)&#xff1b;空间 O(1)。 #include <bits/stdc.h> using namespace std;signed main()…

STM32 FreeRTOS中断管理

目录 FreeRTOS的中断管理 1、STM32中断优先级管理 2、FreeRTOS任务优先级管理 3、寄存器和内存映射寄存器 4、BASEPRI寄存器 5、FreeRTOS与STM32中断管理结合使用 vPortRaiseBASEPRI vPortSetBASEPRI 6、FromISR后缀 7、在中断服务函数中调用FreeRTOS的API函数需注意 F…

【ComfyUI】python调用生图API,实现批量出图

官方给的示例&#xff1a; https://github.com/comfyanonymous/ComfyUI/blob/master/script_examples/websockets_api_example.pyhttps://github.com/comfyanonymous/ComfyUI/blob/master/script_examples/websockets_api_example.pyhttps://github.com/comfyanonymous/ComfyU…

在Docker 容器中安装 Oracle 19c

在 Docker 容器中安装 Oracle 19c 是可行的&#xff0c;但它相较于其他数据库&#xff08;如 MySQL、PostgreSQL 等&#xff09;会复杂一些&#xff0c;因为 Oracle 数据库有一些特定的要求&#xff0c;如操作系统和库的依赖&#xff0c;以及许可证问题。 不过&#xff0c;Ora…

macos的图标过大,这是因为有自己的设计规范

苹果官方链接&#xff1a;App 图标 | Apple Developer Documentation 这个在官方文档里有说明&#xff0c;并且提供了sketch 和 ps 的模板。 figma还提供了模板&#xff1a; Figma

告别手动编辑:如何用Python快速创建Ansible hosts文件?

在自动化运维领域&#xff0c;Ansible是一款非常强大的工具&#xff0c;它可以帮助我们管理和配置大量的服务器。为了让Ansible能够有效地管理这些服务器&#xff0c;我们需要一个hosts清单文件&#xff0c;该文件定义了Ansible要管理的目标主机。在实际应用中&#xff0c;我们…

macOS安装Gradle环境

文章目录 说明安装JDK安装Gradle 说明 gradle8.5最高支持jdk21&#xff0c;如果使用jdk22建议使用gradle8.8以上版本 安装JDK mac系统安装最新&#xff08;截止2024.9.13&#xff09;Oracle JDK操作记录 安装Gradle 下载Gradle&#xff0c;解压将其存放到资源java/env目录…

【嵌入式】总结——Linux驱动开发(三)

鸽了半年&#xff0c;几乎全忘了&#xff0c;幸亏前面还有两篇总结。出于快速体验嵌入式linux的目的&#xff0c;本篇与前两篇一样&#xff0c;重点在于使用、快速体验&#xff0c;uboot、linux、根文件系统不作深入理解&#xff0c;能用就行。 重新梳理一下脉络&#xff0c;本…

【29】Word:李楠-学术期刊❗

目录 题目​ NO1.2.3.4.5 NO6.7.8 NO9.10.11 NO12.13.14.15 NO16 题目 NO1.2.3.4.5 另存为手动/F12Fn光标来到开头位置处→插入→封面→选择花丝→根据样例图片&#xff0c;对应位置填入对应文字 (手动调整即可&#xff09;复制样式&#xff1a;开始→样式对话框→管理…

ThinkPHP 8请求处理-获取请求对象与请求上下文

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用Composer初始化ThinkPHP 8应用_thinkphp8 compos…

某书x-s 、x-t 算法 python纯算56版本

文章目录 声明iv的获取key的获取python 算法还原声明 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请私信我立即删除! xhs xs自从2023年5月31号更新之后直到2024年7月之前好像就没有再怎么更新了 但是7月之…