通义灵码×DeepSeek 实战:打造一款小游戏,分享给朋友玩

简介: 通义灵码×DeepSeek 实战:打造一款小游戏,分享给朋友玩

01

开场

我们今天要完成的是这样的一个小游戏。但是我们今天不仅仅是教一个小游戏,而是带着大家走一遍,从一个想法到部署上线的完整的过程。



游戏展示02

共学实践

本节内容:


  • 上手实践 AI 编程
  • 完成一个 AI 编程游戏并部署上线


小游戏案例游戏展示 :https://xintiaostark.github.io/fortune-game/

我们今天要完成的是这样的一个小游戏。但是我们今天不仅仅是教一个小游戏,而是带着大家走一遍,从一个想法到部署上线的完整的过程。
在正常情况下,如果你要做一个“东西”,一定是要有一个目标,无论是一个虚拟的还是真实的。那在我在做这个小游戏的时候,也是有一个目标的,我想做一个这样的小游戏。但是这个想法是一个比较模糊的、不具体、不系统的想法。
我在用文字表述的时候很难表达清晰。我通常会选择使用原型工具,把这个想法画出来。 4b59b02c3b7c7c005cc70fef4cafe5e.png

我使用的墨刀工具,只是为了在呈现的时候,让大家看得更方便,更直观。而通常情况下,我是这样画的,大家可以在纸上画,在文档里拼,不必纠结于工具,只要能够你做的一个小“样品”能够让你整理好你的思绪即可。 89309fd7883f1b86a3057f63e0026d7.png

那我们看到现在的这个小“样品”,就在一定程度上清晰表达了我们的需求。
现在我们,只需要将他转化成语言,描述出来,然后发给 AI,让 AI 理解我们的需求后,来页面的生成。
首先下载通义灵码插件:https://lingma.aliyun.com/lingma/download
VSCode 为例:
1. 打开 Visual Studio Code 扩展窗口,搜索 TONGYI Lingma,找到通义灵码后单击安装。


2. 安装完成后,请重启 Visual Studio Code。

e8a7edc2bf4d9ae987e894547a3aba8.png

3. 通义灵码支持模型选择,大家可以按需选择模型来体验。

3259a8aa351ac4c07e901f2e8748013.png

3259a8aa351ac4c07e901f2e8748013.png


需要实现一个网页版小游戏,游戏主要功能是在30s内,通过电脑键盘左右方向键或手机屏幕滑动操作游戏人物来接住从天而降的福袋,获得积分。游戏一共由三个页面构成,分别为:欢迎页、游戏页、结算弹窗页。
1. 欢迎页:  - 页面构成:    欢迎页由“背景”和“开始接福”按钮组成。“开始接福”按钮放在页面2/3高度的位置。  - 功能操作:    点击“开始接福”按钮,进入“游戏页”,并开始播放背景音乐。
2. 游戏页(重要页面):  - 页面构成:    由(1)背景图,(2)财宝掉落,(3)玩家角色,(4)福气值计算 (5)游戏倒计时 组成。  - 游戏页面画面分布:      - 背景图      - 顶部信息栏          - 50%通明底色          - 福气值          - 倒计时      - 游戏画面          - 底部有玩家角色          - 画面顶部财宝掉落  - 功能操作(主要游戏逻辑,重点实现):     1. 游戏开始,倒计时自动开始30s计时。计时期间,从**屏幕顶部**自动不断掉落不同的“财宝”和“炸弹”。     2. 用户可通过**使用键盘的左、右键或者手机屏幕**滑动,来操作底部的人物,在底部左右平移滑动,接住掉落的“财宝” ,每接住1个财宝,就记10分福气值。如果接住掉落的“炸弹”则游戏结束。     3. 左上角显示的福气值和30s倒计时,实时计数。         4. **当倒计时结束或接到“炸弹”时**,游戏结束。同时,**掉落物暂停**,弹出“结算弹窗”。

3. 结算弹窗页:    - 当倒计时结束或接到“炸弹”时,弹出“结算弹窗”。  - 无需新起一个页面,直接在游戏页中弹出,停止游戏,掉落物暂停,弹出结算弹窗  - 弹窗构成:      - 页面居中弹窗       - 标题:游戏结束       - 小标题:福气值 小标题下方:{最终分数}  - 弹窗下方是一个“再来!”按钮,点击返回游戏欢迎页。
4. 图片素材  - 已准备好游戏图片素材,在当前工程的image文件夹中:    1. 欢迎页-背景:welcome_background.jpeg       2. 游戏页-背景:game_background.jpeg       3. 掉落物素材及对应的图片名:          - 元宝:yuanbao.png          - 红包:hongbao.png          - 福袋:fudai.png          - 金砖:jintiao.png          - 钻石:zhuanshi.png          - 支红包:zhihongbao.png          - 双红包:dahongbao.png           - 用户人物:user.png  -  玩家角色(user.png):120x203px    -  掉落物品大小统一:50x50px 
5. 音频素材 - 当前已准备好需要用到的音频素材,在当前工程的music文件夹中:    - 全局背景音乐,持续循环播放:background_music.mp3     - 开始游戏和再来按钮的按钮点击音效:button.mp3     - 接住炸弹时的音效:bomb.mp3     - 接住元宝、红包的音效:music1.mp3     - 接住福袋、金砖的音效:music2.mp3     - 接住钻石、支红包的音效:music3.mp3     - 接住双红包的音效:music4.mp3

相关素材包:链接:https://pan.baidu.com/s/11X_4r2ml9I6GRV9ihU7NLA?pwd=3j3X提取码:3j3X
因为这个需求描述里依然存在了大量的空白可以让模型自由的发挥,比如物品的下降速度、刷新数量和频率,比如背景图的透明度、弹窗的大小等等。这些都会影响模型的生成。
所以,大家在跟通义灵码 AI 程序员对话的过程中,也能进一步梳理页面的设计、游戏的运行优化等。



一般完整的调试大概是需要 30 分钟来完成,在过程中,大家可以通过自然语言的方式,跟通义灵码 AI 程序员持续对话,提出你的需求并优化。
其他推荐的小游戏:

俄罗斯方块小游戏

HTML 结构:创建一个 <canvas> 元素,用于绘制俄罗斯方块的游戏区域。在 canvas 元素上方,创建一个 <div> 用于显示游戏信息(例如:当前分数、下一个方块、游戏状态等)。页面布局使用 Flexbox,确保游戏区域居中显示,且随着浏览器窗口的变化自适应调整。
CSS 样式:页面背景色为深灰色(#222),canvas 元素有黑色边框(1px solid #000)。使用 flex 布局使游戏区域居中。canvas 居中且上下左右留白适当。游戏区域的背景色为黑色(#000),canvas 边框为黑色。canvas 的边框与背景色形成对比。游戏说明文字区域采用绝对定位,放置在页面顶部,居中显示,文字颜色为浅色(如 #fff)。
JavaScript 游戏逻辑:画布设置:默认画布尺寸为 width = 600px 和 height = 800px,游戏区域的宽度为15列,比例为 scale = 40。默认游戏区的尺寸为 arenaWidth = 15 和 arenaHeight = 20,每个方块的尺寸为 scale = 40(40px x 40px)。方块矩阵和旋转:方块类型使用矩阵表示:'T' 方块:[ [0, 1, 0], [1, 1, 1], [0, 0, 0] ]'O' 方块:[ [2, 2], [2, 2] ]'L' 方块:[ [0, 0, 3], [3, 3, 3], [0, 0, 0] ]'J' 方块:[ [4, 0, 0], [4, 4, 4], [0, 0, 0] ]'I' 方块:[ [0, 5, 0, 0], [0, 5, 0, 0], [0, 5, 0, 0], [0, 5, 0, 0] ]'S' 方块:[ [0, 6, 6], [6, 6, 0], [0, 0, 0] ]'Z' 方块:[ [7, 7, 0], [0, 7, 7], [0, 0, 0] ]每种方块对应一个颜色,颜色映射如下:'T' 方块:#FF0D72'O' 方块:#0DC2FF'L' 方块:#0DFF72'J' 方块:#F538FF'I' 方块:#FF8E0D'S' 方块:#FFE138'Z' 方块:#3877FF方块均设置黑色描边,确保方块单个元素在背景中可以被识别。方块移动与碰撞检测:移动操作:左右移动:当按下左或右箭头键时,方块分别向左或右移动,检测碰撞后停止移动。下落加速:按下下箭头键时,方块的下落速度加快,dropInterval 的值为 1000ms,即每秒下落一次。旋转:按 Q 和 W 键,方块顺时针和逆时针旋转,旋转后会检测是否发生碰撞,若发生碰撞则恢复原状。碰撞检测:每次移动或旋转后,检测当前方块是否与其他已放置方块或边界发生碰撞,若发生碰撞,则停止该次操作。计时器与自动下落:使用 dropCounter 来控制方块的自动下落,dropInterval 初始值为 1000ms,即每秒自动下落一次。当 dropCounter 超过 dropInterval,触发 playerDrop() 方法,进行方块下落,若检测到碰撞,则将方块固定在游戏区域内并生成新方块。清除满行与得分:每当清除一行时,得分增加 1。arenaSweep() 方法负责检查并清除所有满行。每行清除后,上方的方块会下移,并且得分会增加。游戏结束与重置:如果新生成的方块与已放置的方块发生碰撞,则游戏结束。在游戏结束后,游戏区域会重置,得分清零。
动画效果:方块下落时,每次更新画面时,使用 requestAnimationFrame() 平滑过渡

五子棋小游戏


生成一个五子棋游戏的HTML页面
包含以下功能:游戏区域为400*400像素的画布。玩家通过点击画布下棋,黑棋先行。绘制棋子时,你需要通过arc方法绘制一个圆形,使用Math.round来确保棋子落在棋盘的交界处。当一方连成五个相同的棋子时,游戏结束并显示获胜信息。
页面样式要求:背景颜色为#f0f0f0。画布背景颜色为#f3d2b5,并带有轻微阴影效果,阴影的透明度不超过0.2提示信息字体大小为20px,居中显示。
请根据上述要求生成完整的HTML代码。


扫雷小游戏


设计并实现一个完整的扫雷游戏,通过 HTML、CSS 和 JavaScript 构建,以下是详细要求:
HTML 要求使用语义化的 HTML 结构:
包含标题区域,用于显示游戏标题“Minesweeper”和炸弹图标。在游戏容器中动态生成大小可变的网格(例如:10x10)。在网格区域下方添加一个按钮,用于重置游戏。游戏结束时,通过一个覆盖层显示胜利或失败的消息。提供合理的 ID 和类名以便样式化和 JavaScript 操作,示例如下:
每个方块 <div> 应动态分配 data-tile 属性,表示其坐标(例如:data-tile="3,2")。游戏区域的容器使用 .board 类名。CSS 要求颜色和字体:
使用 Google Fonts 的 Arial Black 字体,并设置加粗样式。背景颜色为柔和的淡蓝色:#D5EDFF,网格方块的背景为浅灰色:#d3d3d3。不同的数字颜色需表示炸弹周围的炸弹数:1 - 蓝色 #0101FE2 - 绿色 #0A82093 - 红色 #e74c3c...依次递增(最多到 8)。响应式布局:
游戏容器支持手机和桌面设备的动态调整,网格方块的大小应随设备尺寸变化:小于 600px:方块大小为 15px。其他:方块大小为 30px。方块样式:
未点击的方块显示凸起样式(3D 效果),点击后平坦化。点击方块后,显示内容(数字或炸弹),背景颜色改变为浅灰色 #c1c1c1。动画效果:
添加平滑的过渡效果(transition: all 0.2s ease)用于方块翻转或颜色变化。JavaScript 要求模块化代码结构:
使用独立的函数管理初始化、事件绑定、逻辑处理(如胜利检查、递归翻开)。初始化逻辑:
动态生成网格,大小由变量 size 控制,炸弹分布由 bombFrequency 确定(例如:15%)。将炸弹位置存储在数组中,记录每个方块的炸弹邻居数量。事件绑定:
左键点击:揭开当前方块,若为数字则显示数字,若为炸弹则触发结束逻辑。右键点击:切换标记/取消标记状态(添加红旗图标)。游戏逻辑:
判断胜利条件:所有非炸弹的方块均被揭开。游戏失败:点击炸弹后显示所有炸弹,同时禁用后续操作。递归翻开逻辑:
当点击空白方块(无炸弹邻居)时,自动翻开其相邻区域,直至数字边界。性能优化:
使用事件委托管理方块点击事件,避免对每个方块逐一绑定事件监听器。外部资源使用 Google Fonts 加载 Arial Black:
html复制代码<link href="https://fonts.googleapis.com/css2?family=Arial:wght@900&display=swap" rel="stylesheet">使用阿里巴巴图标库加载炸弹和旗帜图标:
炸弹图标:https://img.alicdn.com/imgextra/i3/O1CN01sMUftH1WAB0m3EG8W_!!6000000002747-2-tps-357-356.png旗帜图标:https://img.alicdn.com/imgextra/i1/O1CN011JCO9B23Ug3p5EzB8_!!6000000007259-2-tps-898-898.png功能验证提供一个 New Game 按钮,可以重置当前游戏。动态计算炸弹数量、标记数量并实时更新(显示在标题区域)。胜利或失败后显示覆盖层消息,并禁用方块点击操作。代码输出预期输出的代码包含:
完整的 HTML 结构,包括所有动态内容的占位符和初始样式的类名。详细的 CSS 样式,包括响应式设计、动画效果和主题颜色。注释良好的 JavaScript,涵盖初始化、逻辑判断、递归操作和事件绑定的完整实现。附加说明:生成的代码应适合初学者学习,可直接运行,无需额外配置环境


当我们完成了游戏的开发,想要分享给朋友们玩的时候,现在的地址发给朋友,朋友是打不开的。
这是因为,当前的地址只是你电脑上的目录地址,发给朋友是无法使用的,我们需要一个托管的地方,让这些文件和代码在云端运行,这样就可以分享云端托管地址给朋友,朋友一打开就可以使用了。

03

云端托管


我们这次演示使用的托管位置是:GitHub。
整个托管流程十分简单:
1、注册一个 GitHub 账号2、建立一个公开代码仓库3、发布并等待部署完成4、分享链接给小伙伴们使用

 注册 GitHub 账号


打开:https://github.com/


点击右上角的:“Sign up”。进入注册页面。

501a18bb7b2ec6db20adc0f56d982f4.png

在注册页面,你需要填写一些必要的信息,包括用户名、电子邮箱地址和密码。

  • Username 是比较重要的设置,是你的登录凭证,尽量设置一个自己好记的。
  • 待会需要验证邮箱的有效性,所以要使用一个自己可登录的邮箱。


4834d73015e7ee5a5f057443e4c8d30.png

填写完这些信息后,点击下方的“Continue”按钮,提交注册信息,然后会进入奇奇怪怪的验证码。 90ea48c6b2be6f3f41c7b4c1b765b80.png

547ce445238d207d8385c9f196604ea.png

e46bdbe9d126e4c5614d71db977e4da.png

验证通过后,会想你的邮箱发送一封邮件,把邮件中的验证码输入即可验证成功。
afe0af67cfcf7ab61b8b1eac3fad8d7.png

然后会自动跳转至登录,或者你自己点击“sign in”,登录刚才注册的账号即可。
91b35bdbc074682da66a850ab656efe.png

 部署上线


点击右上角的“Your repositories”
9aacd88368c14d0240f0d5d107d7a28.png
1. 点击“NEW”
9598ee4a6bed2ed49bfa32a6081347a.png
2. 为你的项目起一个名字(英文)
19c11bb7efd78794aa4201f4ab33841.png
3. 点击“Create repository”,进入页面后点击“uploading an existing file”
f24dee34f62d6961bd7073cca8d926a.png
4. 进入以下页面
be7eeeb0eb501fe14adec8efa3058bf.png
5. 回到你自己电脑上的代码文件目录,选择全部文件,然后拖入上方页面上传
511a63cd33de19e6573373f8e27e683.png
6. 上传时会有进度条,等待上传完成后进度条消失。点击“Commit change”
80a99ab2b8734b47721c3481450a1d1.png
此时已经完成了代码的上传。
7. 现在到“Setting”-“Pages””设置页面。进行如下配置,并点击 save
da95c3ac4fb08a751ea47a3aaa918fd.png
8. 等待 1-3 分钟,刷新当前页面,构建完成后,会有一个提醒:Your site is live at xxxxx。蓝色的就是你的在线地址了,可以分享你的游戏给朋友们玩耍了!

b42662b7f37226b69da0279265bd152.png

相关文章
|
10月前
|
人工智能 自然语言处理 API
快速集成GPT-4o:下一代多模态AI实战指南
快速集成GPT-4o:下一代多模态AI实战指南
694 101
|
11月前
|
物联网
直播预告 | Qwen-lmage 技术分享+实战攻略直播
通义千问团队最新开源的图像生成模型 Qwen-Image,凭借其出色的中文理解与文本渲染能力,自发布以来获得了广泛关注与好评。
527 0
|
11月前
智谱发布GLM-4.5V,全球开源多模态推理新标杆,Day0推理微调实战教程到!
视觉语言大模型(VLM)已经成为智能系统的关键基石。随着真实世界的智能任务越来越复杂,VLM模型也亟需在基本的多模态感知之外,逐渐增强复杂任务中的推理能力,提升自身的准确性、全面性和智能化程度,使得复杂问题解决、长上下文理解、多模态智能体等智能任务成为可能。
1395 0
|
12月前
|
存储 设计模式 人工智能
AI Agent安全架构实战:基于LangGraph的Human-in-the-Loop系统设计​
本文深入解析Human-in-the-Loop(HIL)架构在AI Agent中的核心应用,探讨其在高风险场景下的断点控制、状态恢复与安全管控机制,并结合LangGraph的创新设计与金融交易实战案例,展示如何实现效率与安全的平衡。
1953 0
|
9月前
|
存储 监控 算法
1688 图片搜索逆向实战:CLIP 多模态融合与特征向量落地方案
本文分享基于CLIP模型与逆向工程实现1688图片搜同款的实战方案。通过抓包分析破解接口签名,结合CLIP多模态特征提取与Faiss向量检索,提升搜索准确率至91%,单次响应低于80ms,日均选品效率提升4倍,全程合规可复现。
|
10月前
|
机器学习/深度学习 算法 数据可视化
从零开始训练推理模型:GRPO+Unsloth改造Qwen实战指南
推理型大语言模型兴起,通过先思考再作答提升性能。本文介绍GRPO等强化学习算法,详解其原理并动手用Qwen2.5-3B训练推理模型,展示训练前后效果对比,揭示思维链生成的实现路径。
1347 2
从零开始训练推理模型:GRPO+Unsloth改造Qwen实战指南
|
10月前
|
人工智能 IDE 开发工具
CodeGPT AI代码狂潮来袭!个人完全免费使用谷歌Gemini大模型 超越DeepSeek几乎是地表最强
CodeGPT是一款基于AI的编程辅助插件,支持代码生成、优化、错误分析和单元测试,兼容多种大模型如Gemini 2.0和Qwen2.5 Coder。免费开放,适配PyCharm等IDE,助力开发者提升效率,新手友好,老手提效利器。(238字)
6506 1
CodeGPT AI代码狂潮来袭!个人完全免费使用谷歌Gemini大模型 超越DeepSeek几乎是地表最强
|
10月前
|
人工智能 Java API
Java与大模型集成实战:构建智能Java应用的新范式
随着大型语言模型(LLM)的API化,将其强大的自然语言处理能力集成到现有Java应用中已成为提升应用智能水平的关键路径。本文旨在为Java开发者提供一份实用的集成指南。我们将深入探讨如何使用Spring Boot 3框架,通过HTTP客户端与OpenAI GPT(或兼容API)进行高效、安全的交互。内容涵盖项目依赖配置、异步非阻塞的API调用、请求与响应的结构化处理、异常管理以及一些面向生产环境的最佳实践,并附带完整的代码示例,助您快速将AI能力融入Java生态。
1523 12
|
10月前
|
人工智能 自然语言处理 算法
现代AI工具深度解析:从GPT到多模态的技术革命与实战应用
蒋星熠Jaxonic,AI技术探索者,深耕代码生成、多模态AI与提示词工程。分享AI工具架构、实战应用与优化策略,助力开发者提升效率,共赴智能编程新纪元。

热门文章

最新文章