🌟 大家好,我是“没事学AI”!
🤖 在AI的星辰大海里,我是那个执着的航海者,带着对智能的好奇不断探索。
📚 每一篇技术解析都是我打磨的罗盘,每一次模型实操都是我扬起的风帆。
💻 每一行代码演示都是我的航线记录,每一个案例拆解都是我的藏宝图绘制。
🚀 在人工智能的浪潮中,我既是领航员也是同行者。让我们一起,在AI学习的航程里,解锁更多AI的奥秘与可能——别忘了点赞、关注、收藏,跟上我的脚步,让“没事学AI”陪你从入门到精通!
目录
一、CodeBuddy安装步骤
1. 打开插件市场
启动Cursor编辑器,点击左侧工具栏的「插件图标」(拼图形状),进入插件市场页面。
2. 搜索并安装插件
在搜索框输入「Tencent Cloud CodeBuddy」,找到「腾讯云代码助手CodeBuddy」插件,点击「安装」,等待安装完成。安装后,Cursor侧边栏会出现CodeBuddy入口。
3. 登录账号
首次使用需点击CodeBuddy图标,通过微信扫码或腾讯云账号登录,完成授权后即可启用所有功能。
二、用CodeBuddy开发益智儿童小程序全链路
以「5-8岁儿童益智小程序」为例,包含数字认知、图形识别、加减法游戏三大核心功能,以下是基于CodeBuddy的全流程开发细节:
(一)需求分析(Chat模式)
- 需求输入
在CodeBuddy的Chat模式中输入:
"开发一个5-8岁儿童益智小程序,需包含:
- 数字认知:随机展示1-10数字,点击后播放读音,正确选择后有动画奖励;
- 图形识别:展示圆形、方形、三角形,语音提示选择指定图形,错误时提示纠正;
- 加减法游戏:10以内随机出题(如3+2=?),支持数字输入,正确得分、错误提示;
- 界面:卡通风格,大按钮,色彩明亮,操作无复杂步骤。"
- CodeBuddy输出的需求分析要点
- 技术选型:微信小程序原生框架(WXML+WXSS+JavaScript),无需后端(初期用本地存储);
- 交互设计:点击反馈(缩放动画)、语音提示(微信语音合成API)、奖励机制(星星积分);
- 性能要求:页面加载≤2秒,图片资源压缩至100KB以内。
(二)系统设计(Craft模式)
-
架构设计
在Craft模式输入「设计儿童益智小程序架构」,CodeBuddy生成以下架构:
├── app.js // 全局配置(积分存储、语音初始化)
├── app.json // 页面路由配置
├── pages/
│ ├── index // 首页(功能入口)
│ ├── number // 数字认知页面
│ ├── shape // 图形识别页面
│ └── math // 加减法游戏页面
└── utils/
├── voice.js // 语音播放工具
└── reward.js // 奖励动画工具 -
模块划分
- 首页模块:展示三个游戏入口图标,记录总积分;
- 数字认知模块:随机数字生成、语音播放、点击判断逻辑;
- 图形识别模块:图形绘制、语音指令、选择校验;
- 加减法模块:随机出题、答案校验、积分累加;
- 公共模块:语音工具(调用微信API)、奖励动画(CSS动画)。
(三)UI设计(Craft模式+代码生成)
- 首页UI实现
在Craft模式输入「生成儿童益智小程序首页WXML+WXSS,卡通风格,三个功能入口按钮」,CodeBuddy生成代码:
pages/index/index.wxml
<view class="container">
<image src="/images/logo.png" class="logo"></image>
<text class="title">儿童益智乐园</text>
<text class="score">总积分:{{totalScore}}</text>
<!-- 功能入口 -->
<view class="game-list">
<view class="game-item" bindtap="goToNumber">
<image src="/images/number.png" class="game-icon"></image>
<text class="game-name">数字认知</text>
</view>
<view class="game-item" bindtap="goToShape">
<image src="/images/shape.png" class="game-icon"></image>
<text class="game-name">图形识别</text>
</view>
<view class="game-item" bindtap="goToMath">
<image src="/images/math.png" class="game-icon"></image>
<text class="game-name">加减法游戏</text>
</view>
</view>
</view>
pages/index/index.wxss
.container {
display: flex;
flex-direction: column;
align-items: center;
background-color: #fff9e6;
min-height: 100vh;
padding: 20rpx;
}
.logo {
width: 200rpx;
height: 200rpx;
margin: 40rpx 0;
}
.title {
font-size: 40rpx;
color: #ff6b6b;
font-weight: bold;
margin-bottom: 20rpx;
}
.score {
font-size: 30rpx;
color: #4ecdc4;
margin-bottom: 60rpx;
}
.game-list {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 40rpx;
}
.game-item {
width: 200rpx;
height: 250rpx;
background-color: #ffeaa7;
border-radius: 20rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
box-shadow: 0 5rpx 10rpx rgba(0,0,0,0.1);
transition: transform 0.3s;
}
.game-item:active {
transform: scale(0.95); /* 点击缩放效果 */
}
.game-icon {
width: 120rpx;
height: 120rpx;
margin-bottom: 20rpx;
}
.game-name {
font-size: 30rpx;
color: #2d3436;
}
- 页面逻辑(index.js)
Page({
data: {
totalScore: wx.getStorageSync('totalScore') || 0 // 从本地存储读取积分
},
onLoad() {},
// 跳转至对应游戏页面
goToNumber() { wx.navigateTo({ url: '/pages/number/number' }) },
goToShape() { wx.navigateTo({ url: '/pages/shape/shape' }) },
goToMath() { wx.navigateTo({ url: '/pages/math/math' }) }
})
(四)核心功能开发(代码实现)
- 数字认知游戏(pages/number/number)
在Craft模式输入「实现数字认知游戏:随机1-10数字,点击播放读音,正确加10分」,生成代码:
number.wxml
<view class="container">
<text class="title">数字认知</text>
<text class="hint">点击你看到的数字</text>
<!-- 数字展示区 -->
<view class="number-box" bindtap="checkNumber" data-num="{{currentNum}}">
<text class="number">{{currentNum}}</text>
</view>
<!-- 反馈提示 -->
<text class="feedback">{{feedback}}</text>
<!-- 底部按钮 -->
<button class="next-btn" bindtap="nextNumber">下一个数字</button>
</view>
number.wxss
.container {
display: flex;
flex-direction: column;
align-items: center;
padding: 30rpx;
background-color: #e8f4f8;
min-height: 100vh;
}
.title {
font-size: 40rpx;
color: #2980b9;
margin: 30rpx 0;
}
.hint {
font-size: 30rpx;
color: #3498db;
margin-bottom: 60rpx;
}
.number-box {
width: 300rpx;
height: 300rpx;
background-color: #ffffff;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 10rpx 20rpx rgba(0,0,0,0.1);
margin-bottom: 40rpx;
}
.number {
font-size: 100rpx;
color: #e74c3c;
font-weight: bold;
}
.feedback {
font-size: 34rpx;
margin: 20rpx 0;
height: 40rpx; /* 固定高度避免抖动 */
}
.next-btn {
margin-top: 60rpx;
background-color: #2ecc71;
color: white;
width: 250rpx;
height: 80rpx;
line-height: 80rpx;
border-radius: 40rpx;
font-size: 30rpx;
}
number.js(核心逻辑)
const voiceUtil = require('../../utils/voice.js'); // 引入语音工具
Page({
data: {
currentNum: 1,
feedback: ''
},
onLoad() {
this.generateRandomNumber(); // 初始化随机数字
},
// 生成1-10随机数字
generateRandomNumber() {
const num = Math.floor(Math.random() * 10) + 1;
this.setData({ currentNum: num, feedback: '' });
},
// 点击数字检查并播放语音
checkNumber(e) {
const selectedNum = e.currentTarget.dataset.num;
// 播放数字读音(调用微信语音合成API)
voiceUtil.speak(`这是数字${selectedNum}`);
// 正确反馈(此处简化为点击即正确,实际可增加随机干扰项)
this.setData({ feedback: '真棒!正确啦~' });
// 加10分并更新全局积分
this.updateScore(10);
},
// 下一个数字
nextNumber() {
this.generateRandomNumber();
},
// 更新积分到本地存储
updateScore(points) {
let total = wx.getStorageSync('totalScore') || 0;
total += points;
wx.setStorageSync('totalScore', total);
// 同步更新首页积分(通过页面栈)
const pages = getCurrentPages();
const homePage = pages[0];
homePage.setData({ totalScore: total });
}
})
- 图形识别游戏(pages/shape/shape)
在Craft模式输入「实现图形识别:展示圆、方、三角,语音提示选择指定图形,正确加15分」,生成代码:
shape.wxml
<view class="container">
<text class="title">图形识别</text>
<text class="hint">请点击:{{targetShape}}</text>
<!-- 图形展示区 -->
<view class="shape-container">
<view class="shape-item" bindtap="checkShape" data-type="circle">
<view class="shape circle"></view>
</view>
<view class="shape-item" bindtap="checkShape" data-type="square">
<view class="shape square"></view>
</view>
<view class="shape-item" bindtap="checkShape" data-type="triangle">
<view class="shape triangle"></view>
</view>
</view>
<text class="feedback">{{feedback}}</text>
<button class="next-btn" bindtap="nextShape">下一个图形</button>
</view>
shape.wxss(图形样式)
.shape-container {
display: flex;
justify-content: space-around;
width: 100%;
margin: 60rpx 0;
}
.shape-item {
width: 150rpx;
height: 150rpx;
display: flex;
align-items: center;
justify-content: center;
}
.shape {
transition: transform 0.3s;
}
.shape:active {
transform: scale(0.9);
}
.circle {
width: 120rpx;
height: 120rpx;
border-radius: 50%;
background-color: #f39c12;
}
.square {
width: 120rpx;
height: 120rpx;
background-color: #9b59b6;
}
.triangle {
width: 0;
height: 0;
border-left: 60rpx solid transparent;
border-right: 60rpx solid transparent;
border-bottom: 120rpx solid #16a085;
}
shape.js(核心逻辑)
const voiceUtil = require('../../utils/voice.js');
Page({
data: {
shapes: ['圆形', '方形', '三角形'],
targetShape: '圆形',
feedback: ''
},
onLoad() {
this.generateTargetShape();
},
// 随机生成目标图形并语音提示
generateTargetShape() {
const randomIdx = Math.floor(Math.random() * 3);
const target = this.data.shapes[randomIdx];
this.setData({ targetShape: target, feedback: '' });
voiceUtil.speak(`请点击${target}`); // 语音提示
},
// 检查选择的图形是否正确
checkShape(e) {
const selectedType = e.currentTarget.dataset.type;
const typeMap = { circle: '圆形', square: '方形', triangle: '三角形' };
const selectedShape = typeMap[selectedType];
if (selectedShape === this.data.targetShape) {
this.setData({ feedback: '太厉害啦!正确~' });
this.updateScore(15); // 正确加15分
} else {
this.setData({ feedback: `不对哦,是${this.data.targetShape}` });
voiceUtil.speak(`不对哦,是${this.data.targetShape}`);
}
},
nextShape() {
this.generateTargetShape();
},
updateScore(points) {
// 同数字认知模块的积分更新逻辑
let total = wx.getStorageSync('totalScore') || 0;
total += points;
wx.setStorageSync('totalScore', total);
const pages = getCurrentPages();
const homePage = pages[0];
homePage.setData({ totalScore: total });
}
})
- 加减法游戏(pages/math/math)
在Craft模式输入「实现10以内加减法:随机出题,输入答案判断,正确加20分」,生成代码:
math.wxml
<view class="container">
<text class="title">加减法游戏</text>
<!-- 题目展示 -->
<view class="question">
<text class="num">{{num1}}</text>
<text class="operator">{{operator}}</text>
<text class="num">{{num2}}</text>
<text class="equal">=</text>
<input
class="answer"
type="number"
placeholder="输入答案"
bindinput="onAnswerInput"
value="{{userAnswer}}"
/>
</view>
<button class="submit-btn" bindtap="checkAnswer">提交答案</button>
<text class="feedback">{{feedback}}</text>
<button class="next-btn" bindtap="nextQuestion">下一题</button>
</view>
math.js(核心逻辑)
const voiceUtil = require('../../utils/voice.js');
Page({
data: {
num1: 2,
num2: 3,
operator: '+',
userAnswer: '',
feedback: ''
},
onLoad() {
this.generateQuestion();
},
// 生成10以内加减法题目
generateQuestion() {
const num1 = Math.floor(Math.random() * 10) + 1;
const num2 = Math.floor(Math.random() * 10) + 1;
// 减法确保结果非负
const operator = Math.random() > 0.5 ? '+' : '-';
const adjustedNum2 = operator === '-' ? Math.min(num2, num1) : num2;
this.setData({
num1,
num2: adjustedNum2,
operator,
userAnswer: '',
feedback: ''
});
voiceUtil.speak(`${num1}${operator}${adjustedNum2}等于多少?`);
},
🌈 我是“没事学AI”!要是这篇文章让你学 AI 的路上有了点收获:
👁️ 【关注】跟我一起挖 AI 的各种门道,看看它还有多少新奇玩法等着咱们发现
👍 【点赞】为这些有用的 AI 知识鼓鼓掌,让更多人知道学 AI 也能这么轻松
🔖 【收藏】把这些 AI 小技巧存起来,啥时候想练手了,翻出来就能用
💬 【评论】说说你学 AI 时的想法和疑问,让大家的思路碰出更多火花
学 AI 的路还长,咱们结伴同行,在 AI 的世界里找到属于自己的乐趣和成就!