给你一段代码,让你根据代码来猜对应的古诗词,你能猜对吗?

这不是玩笑,还真有人这么干

这是一张在 1024 程序员节流传的代码猜诗句小游戏,相信很多程序员小朋友都看到过。

今天我们将用魔法打败魔法,通过 AI 来生成一个同款小游戏。

我们的目标是开发一个基于古诗词的猜谜游戏。在游戏中,AI 会将古诗词转换成对应的代码片段,玩家需要根据这些代码来猜测原始的诗句。这不仅能考验编程功底,还能温习经典诗词,可谓一举两得 (编不下去了~)

开发准备

要实现这个游戏,我们首先需要一个能够生成古诗词和对应代码片段的 API。如果你还没有合适的 API,不用担心,我们可以使用 Sealos 最近上线的 AI Proxy 服务。

AI Proxy 是一个强大的 OpenAI 接口管理和分发系统。它不仅支持通过标准的 OpenAI API 格式访问各类大模型 (包括智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、腾讯混元等),还完美集成了 Sealos 的账号和计费系统。这意味着你可以直接使用 Sealos 账号,无需额外注册就能开始使用这项服务。

要开始使用 AI Proxy,我们只需要简单几步:

  1. 首先登录 Sealos Cloud

  2. 在控制台中找到并打开 AI Proxy 服务。

  1. 在 AI Proxy 服务页面中,点击新建 API Key。系统会为你生成以下信息,请妥善保存,我们后续开发会用到:

项目初始化

对于项目初始化,我们可以借助 AI 工具来完成。目前市面上有多个优秀的 AI 编程助手可供选择,比如 Cursor、Windsurf、Bolt.new 和 v0 等。

为了颜值,我毫不犹豫地选择 Bolt.new 来初始化项目,毕竟它写的前端 UI 更好看。

让我们来看看具体的操作步骤。

首先进入 Bolt.new 官网

在这里,你既可以输入提示词来初始化你的项目,也可以在 “or start a blank app with your favorite stack” 下方选择你喜欢的技术栈,然后点击它。

我选择了 Next.js,进去之后,项目就初始化完成了。

还可以实时预览,你说气人不气人。

接下来就是见证奇迹的时刻,直接描述需求,然后回车,AI 就会吭哧吭哧开始写代码了。

生成完毕后,它甚至还直接帮我启动了,启动了就算了,还直接帮我打开了预览界面。。。

行,没我事了,我就动个嘴,连启动都不需要我了。

那我就勉为其难把项目代码下载下来吧。点击右上角的 “Download” 按钮即可下载项目代码压缩包。

下载完成后,解压压缩包,打开项目文件夹,可以看到项目代码已经下载好了。

接下来我们就可以将代码导入 IDE 中接着开发了。

创建开发环境

为了快速配置开发环境,我们可以选择使用 Sealos DevBox,它可以一键配置开发环境,并且自动配置了公网域名和 HTTPS 证书,非常强大。

首先在 Sealos Cloud 中打开 Debox 应用,创建一个新项目,选择 Next.js 作为运行环境。

Devbox 为开发者提供了几个非常实用的功能:

  • 灵活的资源配置:可以根据项目需求自由调整 CPU 和内存,选择合适配置既保证性能又能控制成本。
  • 一键启用 HTTPS:系统自动分配安全域名,再也不用为配置 SSL 证书发愁。
  • 全自动域名管理:从开发到测试环境,域名配置全程由系统处理,开发者可以专注于代码本身。

创建完成后,几秒钟即可启动开发环境。

环境准备好后,我们直接用 Cursor 连接开发环境。在操作选项中选择使用 Cursor 连接:

首次打开会提示安装 Devbox 插件,安装后即可自动连接开发环境。

打开 Cursor 的终端,先删掉项目根目录下的所有文件:

导入项目到 Cursor

直接将项目文件夹下的所有文件全部选中,然后拖拽到 Cursor 的代码编辑器左侧文件列表中,即可导入整个项目。

然后执行 npm install 安装依赖,安装完成后,执行 npm run dev 启动项目。

项目启动后,在面板中找到【NETWORK】标签,将鼠标悬停在地址栏上,右侧会出现两个按钮 - 一个用于在浏览器中打开,另一个用于在 Cursor 中打开。

我们选择在浏览器中打开,这样就可以通过 Sealos 自动分配的公网域名访问我们的项目了。

通过 Sealos 分配的公网域名,不仅你可以访问,其他人也可以通过这个地址访问到项目,非常方便!

完美!下面我们接着用 Cursor 来继续开发这个网站。

使用 Cursor 继续开发

现在我们回到 Cursor 界面,开始念咒施法。

直接按下快捷键 CMD + I (Windows/Linux 下是 Ctrl + I),即可打开 Cursor Composer 界面。

顺便提一下,Cursor 最近新出了 Agent 模式,更加智能,具有完整的项目理解和编辑能力。启用方式很简单,直接在 Composer 聊天窗口中启用即可。

接着输入提示词开始开发:

将前后端代码分离,后端会通过 API 调用大模型来生成对应的代码的诗句。API 配置如下:

const API_CONFIG = {
AI_API_URL: process.env.NEXT_PUBLIC_AI_API_URL,
AI_MODEL: process.env.NEXT_PUBLIC_AI_MODEL,
getAuthHeaders: () => ({
'Authorization': `Bearer ${process.env.NEXT_PUBLIC_API_KEY}`,
'Content-Type': 'application/json'
})
}; 调用 API 的 prompt 如下: const prompt = difficulty === 'easy'
? `请生成一句简单的中国古诗名句(不超过5字)和相关代码,要求:
1. 必须是最家喻户晓的经典诗词名句
2. 诗句要朗朗上口、易于记忆
3. 不能是以下诗句:${allUsedPoems.join('、')} 请按照以下JSON格式返回:
{
"poem": "举头望明月",
"code": "if(moon.isShining()) { const reflection = window.getReflection(); }"
}`
: `请生成一句较难的中国古诗名句(不超过5字)和相关代码,要求:
1. 必须是较为典雅的经典诗词名句
2. 诗句要有一定的文学性和意境美
3. 不能是以下诗句:${allUsedPoems.join('、')} 请按照以下JSON格式返回:
{
"poem": "不识庐山真面目",
"code": "const mountain = new Mountain('lushan'); mountain.observe('front');"
}`; const response = await fetch(API_CONFIG.AI_API_URL || '', {
method: 'POST',
headers: API_CONFIG.getAuthHeaders(),
body: JSON.stringify({
model: API_CONFIG.AI_MODEL,
messages: [
{
role: "system",
content: "你是一个诗词游戏助手。请严格按照JSON格式返回数据。"
},
{
role: "user",
content: prompt
}
],
max_tokens: 2048,
temperature: 0.7,
presence_penalty: 1.0,
frequency_penalty: 1.0,
stream: false
})
});

一顿操作之后,如果还是有问题,可以继续在聊天窗口中提问,Cursor 会根据你的问题给出相应的解决方案。

有什么新的需求也可以让它来做。

如果遇到报错,可以直接把报错发给它,让它自己解决。

为了明显区分游戏的难度,我决定在困难模式下直接调用古诗 API 来获取经典诗句。这样不仅能避免 AI 生成内容的不确定性,也能让玩家接触到更多优质的古诗词作品。

经过一番迭代优化之后,最终我一行代码都没有写,就完成了这个小游戏。

最终效果如下:

它甚至还做了响应式,在手机上也能玩,它真的,我哭死。

体验地址:https://cydsinogplhh.sealoshzh.site

Sealos AI Proxy 接入说明

为了实现游戏中的诗词生成功能,我们需要调用大模型 API。以下是具体的 API 配置代码:

const API_CONFIG = {
AI_API_URL: process.env.NEXT_PUBLIC_AI_API_URL,
AI_MODEL: 'gpt-3.5-turbo',
getAuthHeaders: () => ({
'Authorization': `Bearer ${process.env.NEXT_PUBLIC_API_KEY}`,
'Content-Type': 'application/json'
})
};

参数配置:

  • API_CONFIG.AI_API_URL:设置为 Sealos AI Proxy 的 Endpoint 地址,例如 https://aiproxy.hzh.sealos.run/v1/chat/completions
  • API_CONFIG.AI_MODEL:选择要使用的 AI 模型,如 qwen-plus
  • NEXT_PUBLIC_API_KEY:填入从 Sealos AI Proxy 获取的 API Key (以 sk-xxxx 开头)

上线和测试

在前面的开发过程中,我们一直使用 npm run dev 在 Devbox 开发环境中运行项目。虽然这种方式可以通过公网域名访问,理论上也可以直接用作生产环境,但这并不是最佳实践。

我们应该将开发环境和生产环境分开,原因有二:

  1. 避免开发过程中的变更直接影响到线上服务
  2. npm run dev 主要用于开发调试,不适合作为生产环境的长期运行方案

因此,让我们将项目部署到 Sealos Cloud 作为正式的生产环境。部署过程非常简单,但首先我们还需要做一点准备工作,主要分为两步:

  1. 首先在项目根目录下执行 npm run build 命令构建项目

  2. 然后在项目根目录下创建一个 entrypoint.sh 启动脚本,内容如下:

#!/bin/bash

cd /home/devbox/project
npm run start

应用上线后启动会执行这个 entrypoint.sh 脚本里的命令,所以我们需要在这个脚本里写好项目的启动命令。

接着在 Devbox 中进入开发环境的详情页面,然后点击【发布版本】按钮:

输入版本号和版本描述,然后点击【发版】按钮,发版完成后,会自动打包成 Docker 镜像。

发版完成后,点击【上线】按钮,便会自动跳转到应用部署界面。

这里啥也不用填,唯一需要注意的就是 CPU 和内存,你可以根据自己的项目实际情况进行调整,然后直接点击【部署应用】按钮,即可完成部署。

部署完成后,等待应用编程 running 状态,如果还不放心,可以点击日志按钮确认应用是否启动成功。

然后点击公网地址即可打开小游戏界面。

完美,非常丝滑!

总结

本文带领大家完成了一个有趣的 “代码猜诗词” 小游戏。从 0 到 1,我们经历了项目初始化、开发环境搭建、到最终部署上线的完整过程。整个开发过程非常简单 —— 有了 AI 工具的加持,我们只需要动动嘴 (写写提示词),AI 就会帮我们把代码变出来;有了 Sealos Devbox 的加持,从开发到部署也变得非常简单,全程只需要点鼠标就行了。

完整的代码可参考:https://github.com/yangchuansheng/code2poem

小游戏体验地址:https://cydsinogplhh.sealoshzh.site

Sealos Devbox 基础教程:使用 Cursor 从零开发一个代码猜古诗小游戏的更多相关文章

  1. 从零开发一款自己的小程序UI组件库(一)

    写在前面:有开发过小程序的朋友肯定知道组件化开发的特性,高内聚与低耦合.使用已有的UI组件库,诸如:vantUI-weapp.minUI-weapp等UI组件库的诞生使我们的开发速度大大的加快,丰富的 ...

  2. 从零开发一款自己的小程序UI组件库(二)

    写在前面:从零开发一款自己的小程序UI组件库(一) 上节我们讲到初始化组件库模板.模板文件概述.模板上传npm以及npm包文件下载至本地并运用到项目.这节我们继续,内容主要有基础UI组件库的搭建(bu ...

  3. 适合新手:从零开发一个IM服务端(基于Netty,有完整源码)

    本文由“yuanrw”分享,博客:juejin.im/user/5cefab8451882510eb758606,收录时内容有改动和修订. 0.引言 站长提示:本文适合IM新手阅读,但最好有一定的网络 ...

  4. Java基础教程1:环境配置及第一个HelloWorld.java

    本文主要介绍JDK环境配置.Sublime Text3配置及第一个HelloWorld.Java程序.运行环境为Win10系统,使用JDK1.8版本. 1. JDK下载及环境配置 1.1 JDK下载 ...

  5. 零基础自学Python十天,写了一款猜数字小游戏,附源码和软件下载链接!

    自学一门语言最重要的是要及时给自己反馈,那么经常写一些小程序培养语感很重要,写完可以总结一下程序中运用到了哪些零散的知识点. 本程序中运用到的知识点有: 1.输入输出函数 (input.print) ...

  6. Python基础教程(020)--集成开发环境IDE简介--Pycharm

    前言 学会掌握Pycharm工具 内容 集成了开发软件需要的所有工具 1,图形用户界面 2,代码编译器(支持代码补全,自动缩进) 3,编译器,解释器 4,调试器(断点,单步执行) Pycharm介绍 ...

  7. Python基础教程(011)--程序开发中的错误及原因

    前言 排查代码开发中的错误 内容 1,编写的程序不能正常执行,或者执行的结果不是我们期望的 2,俗称bug,是程序开发常见的,初学常见的原因有 手误 对已经学习的知识点理解不足 对语音还有需要学习和提 ...

  8. Java基础教程——使用Eclipse快速编写Java输入输出代码

    Eclipse安装 IDE:Integrated Development Environment,集成开发环境.好比是全自动洗衣机. 此处使用[eclipse-jee-4.6-neon-3-win32 ...

  9. 零基础自学Python十天的时候,写的一款猜数字小游戏,附源码和软件下载链接!

    自学一门语言最重要的是要及时给自己反馈,那么经常写一些小程序培养语感很重要,写完可以总结一下程序中运用到了哪些零散的知识点. 本程序中运用到的知识点有: 1.输入输出函数 (input.print) ...

  10. Java基础知识强化之IO流笔记70:Properties练习之 如何让猜数字小游戏只能玩5次的案例

    1. 使用Properties完成猜数字小游戏只能玩5次的案例: 2. 代码实现: (1)猜数字游戏GuessNumber: package cn.itcast_08; import java.uti ...

随机推荐

  1. .Net 理解异步的学习

    // 异步 - 在方法中使用 // 异步约等于线程 async await 一起使用 // 异步只有三种返回值 // 1. Task // 2. Task<T> // 3. void 几乎 ...

  2. element 的 表单 搜索 和 重置按钮换行问题 ? inline

    想要: 但是: 加上

  3. 58. vue常用的api

    1. nextTick  使用场景:通过异步渲染的页面解构不能直接dom操作,要使用 nextTick (延迟回调)等待一下 :nextTick 的作用:感知dom的更新完成,类似于 updated ...

  4. 如何修改word默认模板(Normal.dotm)

    背景描述:平时有大量的文字编辑工作要做,其中最繁琐的就是格式问题:为了排版工整.符合要求,在每个word中都要进行大量的更改,如:字体.大小.行距.段前段后间距等......但这其中有很多的重复性工作 ...

  5. KubeSphere 核心架构浅析

    作者简介:万宏明,KubeSphere 核心贡献者,专注于云原生安全领域. KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的容器混合云管理系统.支持多云与多集群管理,提供全 ...

  6. 彻底搞懂ScheduledThreadPoolExecutor

    前言 项目中经常会遇到一些非分布式的调度任务,需要在未来的某个时刻周期性执行.实现这样的功能,我们有多种方式可以选择: Timer类, jdk1.3引入,不推荐. 它所有任务都是串行执行的,同一时间只 ...

  7. error loading sources list: ('The read operation timed out',)解决办法!!

    一.灵魂四问 1.为什么叫rosdepc? rosdepc,c指的是China中国,主要用于和rosdep区分. 2.rosdepc和rosdep功能一致吗? rosdep官方最新版源码直接修改的,小 ...

  8. RAG 系统高效检索提升秘籍:如何精准选择 BGE 智源、GTE 阿里与 Jina 等的嵌入与精排模型的完美搭配

    RAG 系统高效检索提升秘籍:如何精准选择 BGE 智源.GTE 阿里与 Jina 等的嵌入与精排模型的完美搭配 Text Embedding 榜单:MTEB.C-MTEB <MTEB: Mas ...

  9. 网站免费https加密教程

    为网站实现HTTPS加密可以大大提高网站的安全性和用户信任度.以下是一个详细的免费HTTPS加密教程: 一.选择免费SSL证书提供商 JoySSL:这是目前国内为数不多的国产CA服务商打造的自主品牌S ...

  10. 利用AI运动识别插件,可以实现那些应用场景?

    「Ai运动识别」小程序插件已经推出一年有余,迭代了近十几个版本,收获了各类应用场景的众多用户,今天我们就带您深度解析一下插件的各类可应用场景,帮助已集成开发者进行一步拓宽应用场景,帮助有需求的开发者快 ...