如何开发一个微信小程序游戏—五子棋

创建小程序 

打开微信开发者工具软件,点击添加按钮,出现如下页面。

选输入项目名称后,依次填写完毕后点击创建。在输入 AppID 的时候,下拉框中会列出来你这个微信号刚才注册的小程序的 AppID

后端服务,因为小程序游戏还不需要后端,所以选择了不使用云服务。

开发模式,选小程序;

模板选择,选择 TS- 基础模板即可。

打开后,首次需要安装 AI 代码助手插件。该插件已经在市场里集成,你只需要安装到当前项目即可。最终成功安装后的效果如下图所示:

开始描述需求和准备提示词 

我打开微信开发者 IDE,点击底部的 AI 问答后打开技术对话侧栏。为了减少攥写提示词的时间,我在对话中先让 AI 先帮我写了一份提示词。

由于 AI 代码助手支持多轮技术对话,我可以继续提问以完善提示词内容。

这里附上最后的提示词:

# 角色你是AI代码助手,一位专业的微信小程序开发的专家,你精通WXML、WXSS的语法,你的任务是与开发者合作,理解自然语言描述的需求,并共同创造一个微信小程序。你是你心思缜密,并给出的答案细致入微,推理能力出色。你会仔细提供准确、事实、深思熟虑的答案。你要回答所有技术和代码相关问题。你生成的代码必须是完整的。

# 五子棋游戏需求描述创建一个微信小程序,实现五子棋游戏。游戏应包含完整的五子棋规则,包括黑白双方轮流下子、连线判断胜负、禁手规则等。同时,需要明确展示玩家何时会失败,例如无合法位置可下、超时未下子等情况。请确保代码结构清晰,界面友好,用户体验流畅。## 代码质量和代码要求- 遵循微信小程序的开发规范和最佳实践。- 使用模块化和组件化的开发方式,提高代码的可维护性和复用性。- 进行充分的单元测试和集成测试,确保代码的稳定性和可靠性。- 优化性能,减少资源消耗,提高游戏的响应速度。- 确保代码的安全性,防止潜在的安全漏洞。- 提供详细的注释和文档,方便其他开发者理解和维护代码。

## 实现要求- 需要采用小程序canvas来绘制棋盘和棋子。- 捕捉canvas的触摸事件,来保存触摸点到黑棋或者白棋数组,然后重新绘制canvas。- 胜利算法判断,判断四个方向即(横向,纵向,左下,右下)是否满足五子连珠。- 重新开始功能,需要清空所有棋子数组,然后绘制棋盘。- 悔棋一步功能,remove上一步黑子数组或者白子数组的最后一个,然后绘制棋盘。

## 建议的目录结构和文件示例```

/miniprogram

    /pages

        /index

            index.js

            index.json

            index.wxml

            index.wxss

        /game

            game.js

            game.json

            game.wxml

            game.wxss

    /utils

        util.js

    app.js

    app.json

    app.wxss

```### index 页面-`index.js`: 处理首页逻辑。-`index.json`: 配置首页页面信息。-`index.wxml`: 定义首页的结构。-`index.wxss`: 设置首页的样式。

### game 页面-`game.js`: 处理游戏页面逻辑。-`game.json`: 配置游戏页面信息。-`game.wxml`: 定义游戏页面的结构。-`game.wxss`: 设置游戏页面的样式。

### utils 目录-`util.js`: 存放工具函数和辅助方法。

### 全局配置-`app.js`: 小程序逻辑。-`app.json`: 小程序公共设置。-`app.wxss`: 小程序公共样式表。

## 五子棋完整游戏规则### 基本规则- 五子棋盘为15×15的网格。- 黑白双方轮流在棋盘上落子。- 先在横、竖或斜线上连成五子的一方获胜。

### 禁手规则(主要针对黑方)- 三三禁手:黑方不得在已有两子的交叉点再落子形成三三。- 四四禁手:黑方不得在已有三子的交叉点再落子形成四四。- 长连禁手:黑方不得形成六子及以上的连续连线。

### 胜利条件- 任何一方率先在棋盘上形成五子连珠即获胜。- 如果一方投降或双方同意和棋,则游戏结束。

### 失败情况- 当一方无合法位置可下子时,即该方失败。- 在规定时间内未下子的一方视为超时失败。- 违反禁手规则的黑方自动判负。请生成五子棋微信小程序的完整的工程代码,不允许出现未实现的代码。代码需要充分考虑上述规则、代码质量和代码要求,并确保按照建议的目录结构和文件示例组织代码,以确保游戏逻辑的正确性与完整性。

接下来我把完善的提示词贴入 AI 代码助手,看看它给我生成了怎么样的小程序。

工程代码生成过程

 准备好结构 

安装提示词的结构,先按照微信开发者平台的页面要求,在 Pages 上创建一个目录 game,右键 game 目录,点击「新建Page」,输入 index 回车后,会帮助生成多个 index 文件。

接下来,我们打开 AI 代码助手,把刚才录入的提示词输入进去, AI 代码助手为我生成了每一段的代码。部分代码可能会省略,我保持着耐心,因为后面可以让它继续生成

对话框引用微信小程序知识库

 AI 代码助手已经内置了微信小程序知识库,我们可以把微信小程序开发的所有技术文档和规范都录入进去了,这样生成的会话中的代码内容会更好。

我来试试,首先先输入 # ,然后选择微信小程序,然后输入刚刚的提示词,回车。如下图:

小技巧:对于我这种不喜欢用鼠标的,可以直接一口气输入 # 微信,然后省略后面的文字,通过上下键选中后直接回车就选上了,非常的方便。

根据对话里的步骤完成代码 

我根据对话中的代码依次插入依次插入到工程中,然后点击顶部条的编译按钮后便可以在左边看到预览效果。

通过内联对话优化代码 

第一次运行效果中只有棋盘,并没有办法插入棋子,于是我打开了核心代码 game.js 文件,我发现函数还没有绘制棋子。

凭借对话中的代码描述,棋子可能需要独立绘制。那么这里可能有两种办法,一种是 canvas 绘制,一种是插入图片。那么我来试试 AI 代码助手的内联对话给我怎么样的修复方法。

圈选代码后,通过快捷键(我是 mac 电脑)我用的是 Cmd+I,如果是 Windows 电脑的话快捷键为 Alt+I。

在顶部条出现输入框后输入需求,如下图所示


他给了我一个路径,让我自己准备白棋子和黑棋子的图片。我按目录的位置存放进去了之后,再次运行程序,运行后成功了!✌️

运行的效果如下图所示。当然代码还不够好,我接下来继续完善一下。

优化代码的艺术

当前应用只是可以运行,还不够好。我需要增加代码注释和文档,并生成一个项目工程的 Readme.md 文档,然后把核心逻辑解读后进行下重构。

生成文档注释 

 AI 代码助手贴心的给出了三种方法生成文档注释:

第一种,通过圈选核心代码,右键,选择 AI 代码助手下的生成文档,如下:

第二种,进入插件的高级设置,如下图「圈1」开启「圈2」和「圈3」

返回代码后,可以在函数头或者鼠标悬浮后出现蓝色提示,点击「生成文档」,如下图

第三种是直接使用快捷键,按键如下:

看了一下生成文档的效果,还不错,同时 AI 代码助手还增强了一些示例方法描述。觉得满意的话直接点击「采纳」就可以应用上去了。

重构代码 

在对话框中,我使用 /fix 给当前代码进行修复,无论是语法错误,还是逻辑问题,或者是代码需要重构,一个 /fix 可以给出 AI 检查后的建议和修复方案。

 AI 代码助手提供了智能插入的方法,通过大模型为其生成合并的 Diff View 预览效果,如下图,清晰很多了。 AI 代码助手在如下视图下可以选择部分采纳或者全部采纳。

 运行错误查询原因 

我在开发中有时会发现如下图的错误,我的做法是把错误直接复制给到 AI 代码助手,他能正确的给我结合当前工程代码进行分析,给出正确的解决方案。如下图,发现错误后,给出 init()函数修复建议,通过对话代码区域的「智能插入」运行后,右边出现了 Diff View 预览,全部采纳后,问题解决。

 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容