摘 要
随着移动互联网的发展,微信小程序成为开发便捷应用的理想平台。本毕业设计开发了一款基于微信小程序的五子棋游戏,旨在为用户提供了一个便捷、流畅的游戏体验。系统采用Spring Boot框架结合Java语言进行后端开发,利用HTML5和JavaScript构建前端界面,实现了与AI对战(新手、中级、专家三种模式)、双人模式、赢法判断和游戏说明等功能。
在技术实现上,Spring Boot提供了高效的后端服务支持,确保数据存储和交互的稳定性。前端通过微信小程序框架实现了简洁直观的用户界面,支持实时交互和动态更新。AI对战模块采用基于规则的算法,根据难度级别动态调整策略,提供具有挑战性的游戏体验。双人模式通过实时通信技术实现玩家之间的对战,确保游戏的流畅性和实时性。通过严格的系统测试证明,系统运行稳定,功能完善,界面友好,能够有效满足用户需求。与AI对战和双人模式的设计提升了用户参与度和游戏趣味性。结论是,该系统在技术上可行,应用前景广阔,为移动游戏开发提供了新思路。
关键词:微信小程序;五子棋游戏;Spring Boot;AI对战;双人模式
ABSTRACT
With the development of the mobile internet, WeChat Mini Programs have emerged as an ideal platform for developing convenient applications. This graduation project has developed a Gomoku (Five-in-a-Row) game based on WeChat Mini Programs, aiming to provide users with a convenient and smooth gaming experience. The system employs the Spring Boot framework with Java for backend development and utilizes HTML5 and JavaScript to construct the frontend interface, enabling functionalities such as playing against AI (with three difficulty levels: Beginner, Intermediate, andExpert), two-player mode, win-condition judgment, and game instructions.
In terms of technical implementation, Spring Boot offers efficient backend service support, ensuring the stability of data storage and interaction. The frontend achieves a concise and intuitive user interface through the WeChat Mini Program framework, supporting real-time interaction and dynamic updates. The AI opponent module employs a rule-based algorithm that dynamically adjusts strategies according to difficulty levels, providing a challenging gaming experience. The two-player mode enables real-time battles between players through real-time communication technology, ensuring the game's fluidity and real-time nature. Rigorous system testing has demonstrated that the system operates stably, with comprehensive functionalities and a user-friendly interface, effectively meeting user needs. The design of playing against AI and the two-player mode enhances user engagement and gaming interest. In conclusion, the system is technically feasible and has broad application prospects, offering new ideas for mobile game development.
Keywords: WeChat Mini Program; Gomoku game; Spring Boot; AI opponent; Two-player mode
目 录
1.绪 论
1.1研究背景
随着移动互联网的普及,微信小程序作为一种轻量化、便捷的应用开发平台,逐渐成为用户获取服务和娱乐的主要方式之一。五子棋作为一种经典的益智游戏,因其规则简单、趣味性强,深受广大用户的喜爱[1]。然而,传统的五子棋游戏通常需要下载安装,存在使用门槛高、占用存储空间等问题。基于微信小程序的五子棋游戏,能够充分利用微信平台的便捷性和广泛的用户基础,为用户提供一个无需下载、即用即走的游戏体验[2]。同时,结合AI技术和实时通信技术,可以实现与AI对战和双人对战功能,进一步提升游戏的趣味性和互动性。本毕业设计旨在开发一款基于微信小程序的五子棋游戏,满足用户在碎片化时间内的娱乐需求,为微信小程序生态提供一款高质量的益智游戏[3]。
1.2研究意义
本毕业设计通过开发基于微信小程序的五子棋游戏,具有重要的研究意义。在技术层面来看,项目结合了Spring Boot、Java、HTML5和JavaScript等主流技术,为开发者提供了一个完整的微信小程序开发案例,有助于提升开发者的技术能力和实践能力。再者从用户体验的角度,微信小程序的便捷性和五子棋游戏的趣味性相结合,能够满足用户在碎片化时间内的娱乐需求,提升用户的使用体验[14]。还有通过实现与AI对战和双人对战功能,不仅增加了游戏的互动性和挑战性,还为用户提供了多样化的游戏选择。最后从学术和应用价值来看,本项目为微信小程序在益智游戏领域的应用提供了新的思路和解决方案,具有一定的推广价值和市场潜力[5]。通过本项目的开发,也为后续相关研究和应用提供了参考和借鉴。
1.3国内现状
近年来,随着移动互联网的快速发展,微信小程序作为一种轻量化、便捷的应用开发平台,逐渐成为国内开发者和用户的新宠[6]。在游戏领域,微信小程序凭借其无需下载、即用即走的特点,迅速吸引了大量用户。五子棋作为一种经典的益智游戏,因其规则简单、趣味性强,成为微信小程序平台上备受欢迎的游戏类型之一。国内许多开发者纷纷利用微信小程序的开放平台,开发出各种五子棋游戏,提供与AI对战、双人对战、游戏说明等功能,满足不同用户的需求[7]。
国内的五子棋小程序游戏在功能和用户体验方面已经取得了显著进展。许多游戏不仅提供了多种难度级别的AI对战模式,还支持双人实时对战,增强了游戏的互动性和趣味性。此外,开发者还注重游戏界面的设计,使其更加美观和用户友好。然而,尽管市场上已经有许多五子棋小程序,但大多数游戏在AI算法的复杂性和游戏策略的多样性上仍有提升空间。许多AI对战模式的策略较为简单,难以满足高水平玩家的需求。此外,部分游戏在用户体验和性能优化方面也存在不足,如界面响应速度较慢、游戏过程中的卡顿等。国内基于微信小程序的五子棋游戏在市场推广和用户覆盖方面已经取得了一定的成功,但在技术深度和用户体验上仍有较大的提升空间。未来,开发者可以通过优化AI算法、提升游戏性能和丰富游戏功能,进一步提升游戏的竞争力和用户满意度[9]。
1.4国外现状
在国外,移动游戏市场同样发展迅速,尤其是在智能手机和移动应用普及的背景下,益智类游戏如五子棋也受到了广泛欢迎。与国内不同的是,国外的五子棋游戏开发更多地集中在跨平台应用和独立应用上,许多开发者利用HTML5、JavaScript等技术开发出可以在多种设备上运行的五子棋游戏。这些游戏通常具有较高的图形质量和流畅的用户体验,吸引了大量用户。
国外的五子棋游戏在AI算法和游戏策略方面也表现出较高的水平。许多游戏采用了先进的AI算法,能够提供多种难度级别,满足不同层次玩家的需求。例如,一些高端五子棋游戏甚至采用了机器学习技术,使AI能够根据玩家的行为动态调整策略,提供更具挑战性的对战体验[10]。此外,国外开发者还注重游戏的社交功能,支持玩家通过社交媒体平台邀请朋友对战,增强了游戏的互动性和传播性。
尽管国外的五子棋游戏在技术和功能上表现出色,但其市场推广和用户覆盖方面仍面临一些挑战。首先,国外市场上的五子棋游戏种类繁多,竞争激烈,用户获取成本较高。其次,许多高质量的五子棋游戏需要用户下载安装,这在一定程度上限制了用户的使用频率和范围。相比之下,微信小程序的“即用即走”特性在用户体验上具有明显优势,这为国内开发者提供了一个值得借鉴的方向。国外的五子棋游戏在技术实现和用户体验方面已经达到了较高水平,但在市场推广和用户获取方面仍存在一定的局限性。未来,开发者可以通过结合微信小程序的便捷性和国外游戏的技术优势,开发出更具竞争力的五子棋游戏,满足全球用户的需求。
1.5研究内容
论文一共分为6个章节,具体内容如下:
第1章节是论文的研究背景、研究意义、研究国内外现状和研究内容;
第2章节是开发基于微信小程序的五子棋游戏使用的技术等;
第3章节是基于微信小程序的五子棋游戏的系统分析,其中有系统的可行性分析,系统的功能需求分析,系统流程分析、系统的非功能性需求分析、系统用户用例分析;
第4章节是详细基于微信小程序的五子棋游戏的设计,数据库实体以及数据库表等相关数据;
第5章节是基于微信小程序的五子棋游戏的各项功能实现的讲述;
第6章节是对基于微信小程序的五子棋游戏的测试相关报告展示。
2.技术简介
2.1Spring Boot
在开发基于微信小程序的五子棋游戏过程中,Spring Boot 作为后端开发的核心框架,发挥了重要作用。Spring Boot 提供了快速开发和部署的能力,通过其内置的自动化配置功能,简化了后端服务的搭建过程。它支持模块化设计,使得开发者能够轻松集成各种功能模块,如用户认证、数据存储和AI逻辑处理等。在五子棋游戏中,Spring Boot 负责处理游戏数据的存储和交互,确保游戏状态的实时更新和同步。其强大的生态系统和丰富的插件库,为开发者提供了极大的便利,使得后端开发更加高效和稳定。
2.2HTML5
HTML5 作为前端开发的基础技术,在微信小程序的五子棋游戏中扮演了重要角色。它不仅提供了丰富的绘图能力和动态交互功能,还支持跨平台兼容性,使得游戏能够在不同设备上获得一致的用户体验。在五子棋游戏中,HTML5 用于构建游戏界面,展示棋盘和棋子,并通过 Canvas 或其他绘图技术实现动态效果。其简洁的语法和强大的功能,使得开发者能够快速开发出美观、流畅的用户界面,为玩家提供沉浸式的游戏体验。
2.3JavaScript
JavaScript 是微信小程序开发中不可或缺的编程语言,负责实现游戏的动态交互和逻辑处理。在五子棋游戏中,JavaScript 用于处理用户的点击事件、棋子的移动和落子逻辑,以及与后端的实时通信。通过 JavaScript,开发者可以实现复杂的AI对战算法和双人对战功能,确保游戏的流畅性和实时性。此外,JavaScript 还支持事件驱动的编程模型,使得游戏能够响应用户的操作并进行动态更新,极大地提升了用户体验。
2.4MySQL
MySQL 作为游戏后端的核心数据库,负责存储和管理游戏数据。在五子棋游戏中,MySQL 用于存储用户信息、游戏记录、AI策略等关键数据。其高效的查询能力和事务管理功能,确保了数据的完整性和一致性。通过合理的数据库设计,MySQL 能够支持大规模数据的存储和快速查询,为游戏的稳定运行提供了坚实的基础。同时,MySQL 的安全性特性,如用户权限管理和数据加密,也为游戏数据的安全性提供了保障。
3.系统分析
3.1可行性分析
3.1.1技术可行性
在开发基于微信小程序的五子棋游戏时,技术可行性得到了充分保障。Spring Boot 框架提供了高效的后端服务支持,结合 Java 语言的强大功能,确保了游戏数据的稳定存储和交互。HTML5 和 JavaScript 构建的前端界面不仅美观,还支持实时交互和动态更新,为用户提供了流畅的游戏体验。MySQL 数据库则负责存储用户信息、游戏记录等关键数据,确保数据的安全性和完整性。这些技术的成熟应用和广泛的社区支持,使得开发一个高质量的五子棋游戏成为可能。
3.1.2经济可行性
开发基于微信小程序的五子棋游戏具有较高的经济可行性。开发工具和服务器等资源可以通过开源社区获取,降低了初期投入成本。此外,微信小程序的“即用即走”特性减少了用户的获取成本,提高了用户粘性。游戏上线后,通过广告收入、会员费等方式可以获得持续的收益。考虑到五子棋游戏的广泛受众和市场需求,该游戏具有良好的盈利潜力。
3.1.3操作可行性
在操作可行性方面,微信小程序的五子棋游戏设计注重用户体验。游戏界面简洁直观,操作流程简单易懂,用户无需复杂培训即可上手。功能模块化设计使得用户可以快速找到所需功能,如与 AI 对战、双人对战等。同时,游戏支持多设备访问,确保用户在不同设备上都能获得一致的体验。此外,系统的维护和更新也相对简单,开发者可以通过后台管理系统轻松管理游戏数据和用户反馈。
3.2系统功能需求
基于微信小程序的五子棋游戏包含注册用户、管理员两个角色划分,每个角色对应的主要功能如下:
3.2.1注册用户主要功能
- 首页:展示轮播图、网站公告、五子棋资讯、五子棋游戏入口等。
(2)用户注册:首先点击“注册”按钮,输入账号、密码、确认密码、昵称、邮箱、选择身份:注册用户、用户姓名、用户性别、手机号码等信息,点击立即注册按钮,注册成功后才能进行登录。
(3)用户登录:首先点击“登录”按钮,输入用户名、密码点击登录按钮,登录时前端会自动校验用户名与密码,用户输入正确则登录成功,输入错误会有提示信息。
(4)通知公告:主要展示系统发布的公告信息,注册用户查看具体公告信息。
(5)五子棋资讯:展示系统发布的五子棋资讯信息,点击标签页可查看详细五子棋资讯信息,并且对感兴趣的五子棋资讯进行点赞、收藏或者发表评论。
(6)五子棋游戏:注册用户可以选择游戏模式:双人轮流对战和人机对战(AI博弈),选择执棋颜色(黑白)以及难度系数(新手、中级、专家)。选择好后点击开始即可进行游戏。在游戏过程中轮到你下棋时会提示轮到你了,当快要连成五子时也会红色点提示。在游戏过程中你可以点击返回,回到游戏选择页面,点击新的游戏可以开启新的一轮游戏,点击关于可游戏规则等。输了会提示输了并提示是否继续挑战。点击返回,回到游戏选择页面,点击继续挑战可以开启新的一轮游戏。
(7)我的:基本信息、收藏、退出登录。基本信息:展示个人资料的头像跟昵称等,用户点击修改资料可以修改头像、昵称等信息,点击修改密码可输入原密码、密码、确认密码进行密码修改。收藏:展示用户个人所有收藏信息,点击收藏自动跳转到原页面,可以点击删除按钮删除收藏。
3.2.2管理员主要功能
(1)登录:管理员输入账号、密码、验证码点击登录按钮,登录时前端会自动校验用户名与密码,管理员输入正确则登录成功,输入错误会有提示信息。
(2)系统用户:主要管理管理员和注册用户。管理员页面支持添加、删除操作。注册用户支持添加、删除、查看详情,修改注册用户状态操作。
(3)个人信息::展示管理员个人信息,管理员可以更换头像、编辑昵称、邮箱等信息,点击提交则修改成功。
(4)修改密码:管理员点击修改密码可输入原密码、密码、确认密码进行密码修改。
(5)系统管理:轮播图管理。展示轮播图列表。并可以添加新的轮播图,新添加的会直接展示在系统首页上。支持查询、删除、修改、查看详情操作。
(6)通知公告管理:主要管理通知公告。支持添加、编辑、查询、删除、查看详情操作。
(7)资源管理:包含五子棋资讯跟资讯分类。五子棋资讯:管理员可以添加新的五子棋资讯,并可以进行删除、编辑、查看详情、查看评论等操作。资讯分类:主要管理资讯分类,可进行添加、删除、修改、查看详细信息等操作。
3.3非功能性需求分析
在基于微信小程序的五子棋游戏的毕业设计中,非功能性需求分析是也是非常重要的。它主要关注性能、安全性、易用性、可靠性、可维护性等,这些特性对于确保系统的稳定运行和用户满意度至关重要。
表3-1 非功能性需求分析
| 序号 | 非功能性需求 | 需求要求 |
| 1 | 性能 | 系统采用高效的缓存机制和数据库索引优化查询速度,确保在高并发访问下仍能快速响应用户请求。 |
| 2 | 安全性 | 通过集成Spring Security框架实现身份验证和权限管理,保护网站免受未授权访问威胁。 |
| 3 | 易用性 | 注重简洁直观的界面布局与导航结构,使用户能够轻松找到所需信息并进行互动。 |
| 4 | 可靠性 | 借助于MySQL的事务处理和数据备份策略,确保系统持续稳定运行且数据完整无损。 |
| 5 | 可维护性 | 代码遵循模块化和标准化原则编写,便于后续扩展和问题修复,降低了长期维护成本。 |
3.4系统用户用例分析
3.4.1注册用户用例图
基于微信小程序的五子棋游戏中注册用户包含注册、登录、首页、通知公告、五子棋资讯、五子棋游戏、基本信息、收藏等功能。注册用户用例图如下所示:

图3-1 注册用户用例图
3.4.2管理员用例图
基于微信小程序的五子棋游戏中管理员包含登录、个人信息、修改密码、后台首页、系统用户、系统管理、通知公告管理、资源管理等功能。管理员用例图如下所示:

图3-2 管理员用例图
3.5系统操作流程分析
3.5.1用户登录流程图
系统登录流程图,如图所示:

图3-3 登录流程图
3.5.2注册用户业务流程图
注册用户浏览通知公告、五子棋资讯、五子棋游戏、基本信息、收藏等功能,管理员业务流程图如图所示:
图3-4 注册业务流程图
3.5.3管理员业务流程图
管理员包含登录、管理系统用户、系统管理、通知公告管理、资源管理的增删改查等功能,管理员业务流程图如图所示:
图3-5 管理员业务流程图
4.系统设计
4.1系统架构设计
基于微信小程序的五子棋游戏采用了层次结构设计,从上至下依次为用户层、表示层、业务层、数据层和基础服务。用户层包括注册用户和注册用户示层利用HTML、CSS和JavaScript技术构建用户界面。业务层则专注于处理核心业务,例如轮播图、系统用户管理、公告处理、五子棋资讯管理、基本信息处理等。数据层负责事务控制和数据映射,并利用MySQL作为基础服务来实现高效的数据存储和访问。整个系统的层级结构清晰明了,各组件之间的相互作用和依赖关系一目了然。
图4-1 系统架构图
4.2功能模块设计
基于微信小程序的五子棋游戏主要涉及有注册用户、管理员两个角色。其中注册用户注册用户包含注册、登录、首页、通知公告、五子棋资讯、五子棋游戏、基本信息、收藏等功能。管理员包含管理员包含登录、个人信息、修改密码、后台首页、系统用户、系统管理、通知公告管理、资源管理等功能。每个角色对应的功能模块如图所示。

4-2系统功能结构图
4.3数据库设计
4.3.1概念设计
基于微信小程序的五子棋游戏中管理员、注册用户、五子棋资讯(文章)、 评论、收藏等E-R实体关系图
图4-3总体ER图
4.3.2逻辑设计
通过4.3.1小节基于微信小程序的五子棋游戏中总E-R关系图上大概得出一共需要创建很多个数据表。在此主要罗列几个主要的数据库表结构设计。
介绍了一些根据各类别主要数据库表的设计结构以及基本功能建立数据库表:
表 4-1-registered_user(注册用户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | registered_user_id | int | 是 | 是 | 注册用户ID | |
| 2 | user_name | varchar | 64 | 是 | 否 | 用户姓名 |
| 3 | user_gender | varchar | 64 | 否 | 否 | 用户性别 |
| 4 | mobile_phone_number | varchar | 16 | 是 | 是 | 手机号码 |
| 5 | collect_len | int | 是 | 否 | 收藏数 | |
| 6 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 7 | user_id | int | 是 | 否 | 用户ID | |
| 8 | create_time | datetime | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-2-article(文章)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | article_id | mediumint | 是 | 是 | 文章id | |
| 2 | title | varchar | 125 | 是 | 是 | 标题 |
| 3 | type | varchar | 64 | 是 | 否 | 文章分类 |
| 4 | hits | int | 是 | 否 | 点击数 | |
| 5 | praise_len | int | 是 | 否 | 点赞数 | |
| 6 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 7 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 8 | source | varchar | 255 | 否 | 否 | 来源 |
| 9 | url | varchar | 255 | 否 | 否 | 来源地址 |
| 10 | tag | varchar | 255 | 否 | 否 | 标签 |
| 11 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 12 | img | varchar | 255 | 否 | 否 | 封面图 |
| 13 | description | text | 65535 | 否 | 否 | 文章描述 |
表 4-3-article_type(文章分类)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | type_id | smallint | 是 | 是 | 分类ID | |
| 2 | display | smallint | 是 | 否 | 显示顺序 | |
| 3 | name | varchar | 16 | 是 | 否 | 分类名称 |
| 4 | father_id | smallint | 是 | 否 | 上级分类ID | |
| 5 | description | varchar | 255 | 否 | 否 | 描述 |
| 6 | icon | text | 65535 | 否 | 否 | 分类图标 |
| 7 | url | varchar | 255 | 否 | 否 | 外链地址 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-4-auth(用户权限管理)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | auth_id | int | 是 | 是 | 授权ID | |
| 2 | user_group | varchar | 64 | 否 | 否 | 用户组 |
| 3 | mod_name | varchar | 64 | 否 | 否 | 模块名 |
| 4 | table_name | varchar | 64 | 否 | 否 | 表名 |
| 5 | page_title | varchar | 255 | 否 | 否 | 页面标题 |
| 6 | path | varchar | 255 | 否 | 否 | 路由路径 |
| 7 | parent | varchar | 64 | 否 | 否 | 父级菜单 |
| 8 | parent_sort | int | 是 | 否 | 父级菜单排序 | |
| 9 | position | varchar | 32 | 否 | 否 | 位置 |
| 10 | mode | varchar | 32 | 是 | 否 | 跳转方式 |
| 11 | add | tinyint | 是 | 否 | 是否可增加 | |
| 12 | del | tinyint | 是 | 否 | 是否可删除 | |
| 13 | set | tinyint | 是 | 否 | 是否可修改 | |
| 14 | get | tinyint | 是 | 否 | 是否可查看 | |
| 15 | field_add | text | 65535 | 否 | 否 | 添加字段 |
| 16 | field_set | text | 65535 | 否 | 否 | 修改字段 |
| 17 | field_get | text | 65535 | 否 | 否 | 查询字段 |
| 18 | table_nav_name | varchar | 500 | 否 | 否 | 跨表导航名称 |
| 19 | table_nav | varchar | 500 | 否 | 否 | 跨表导航 |
| 20 | option | text | 65535 | 否 | 否 | 配置 |
| 21 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 22 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-5-code_token(验证码)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | code_token_id | int | 是 | 是 | 验证码ID | |
| 2 | token | varchar | 255 | 否 | 否 | 令牌 |
| 3 | code | varchar | 255 | 否 | 否 | 验证码 |
| 4 | expire_time | timestamp | 是 | 否 | 失效时间 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-6-collect(收藏)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | collect_id | int | 是 | 是 | 收藏ID | |
| 2 | user_id | int | 是 | 是 | 收藏人ID | |
| 3 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 4 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 5 | source_id | int | 是 | 否 | 来源ID | |
| 6 | title | varchar | 255 | 否 | 否 | 标题 |
| 7 | img | varchar | 255 | 否 | 否 | 封面 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-7-comment(评论)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | comment_id | int | 是 | 是 | 评论ID | |
| 2 | user_id | int | 是 | 是 | 评论人ID | |
| 3 | reply_to_id | int | 是 | 否 | 回复评论ID | |
| 4 | content | longtext | 4294967295 | 否 | 否 | 内容 |
| 5 | nickname | varchar | 255 | 否 | 否 | 昵称 |
| 6 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 10 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 11 | source_id | int | 是 | 否 | 来源ID |
表 4-8-notice(公告)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | notice_id | mediumint | 是 | 是 | 公告ID | |
| 2 | title | varchar | 125 | 是 | 否 | 标题 |
| 3 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 4 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 5 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-9-praise(点赞)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | praise_id | int | 是 | 是 | 点赞ID | |
| 2 | user_id | int | 是 | 是 | 点赞人 | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID | |
| 8 | status | tinyint | 是 | 否 | 点赞状态:1为点赞,0已取消 |
表 4-10-slides(轮播图)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | slides_id | int | 是 | 是 | 轮播图ID | |
| 2 | title | varchar | 64 | 否 | 否 | 标题 |
| 3 | content | varchar | 255 | 否 | 否 | 内容 |
| 4 | url | varchar | 255 | 否 | 否 | 链接 |
| 5 | img | varchar | 255 | 否 | 否 | 轮播图 |
| 6 | hits | int | 是 | 否 | 点击量 | |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-11-upload(文件上传)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | upload_id | int | 是 | 是 | 上传ID | |
| 2 | name | varchar | 64 | 否 | 否 | 文件名 |
| 3 | path | varchar | 255 | 否 | 否 | 访问路径 |
| 4 | file | varchar | 255 | 否 | 否 | 文件路径 |
| 5 | display | varchar | 255 | 否 | 否 | 显示顺序 |
| 6 | father_id | int | 否 | 否 | 父级ID | |
| 7 | dir | varchar | 255 | 否 | 否 | 文件夹 |
| 8 | type | varchar | 32 | 否 | 否 | 文件类型 |
表 4-12-user(用户账户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | user_id | int | 是 | 是 | 用户ID | |
| 2 | state | smallint | 是 | 否 | 账户状态:(1可用|2异常|3已冻结|4已注销) | |
| 3 | user_group | varchar | 32 | 否 | 否 | 所在用户组 |
| 4 | login_time | timestamp | 是 | 否 | 上次登录时间 | |
| 5 | phone | varchar | 11 | 否 | 否 | 手机号码 |
| 6 | phone_state | smallint | 是 | 否 | 手机认证:(0未认证|1审核中|2已认证) | |
| 7 | username | varchar | 16 | 是 | 否 | 用户名 |
| 8 | nickname | varchar | 16 | 否 | 否 | 昵称 |
| 9 | password | varchar | 64 | 是 | 否 | 密码 |
| 10 | | varchar | 64 | 否 | 否 | 邮箱 |
| 11 | email_state | smallint | 是 | 否 | 邮箱认证:(0未认证|1审核中|2已认证) | |
| 12 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 13 | open_id | varchar | 255 | 否 | 否 | 针对获取用户信息字段 |
| 14 | create_time | timestamp | 是 | 否 | 创建时间 |
5.系统实现
5.1注册用户主要功能实现
5.1.1首页
首页:展示轮播图、网站公告、五子棋资讯、五子棋游戏入口等。首页界面如下图所示。

图5-1 首页界面
5.1.2用户注册
用户注册:首先点击“注册”按钮,输入账号、密码、确认密码、昵称、邮箱、选择身份:注册用户、用户姓名、用户性别、手机号码等信息,点击立即注册按钮,注册成功后才能进行登录。用户登录界面如下图所示。

图5-2 用户注册界面
关键代码:
5.1.3用户登录
用户登录:首先点击“登录”按钮,输入用户名、密码点击登录按钮,登录时前端会自动校验用户名与密码,用户输入正确则登录成功,输入错误会有提示信息。用户登录界面如下图所示。

图5-3 用户登录界面
关键代码:
5.1.4通知公告
通知公告:主要展示系统发布的公告信息,注册用户查看具体公告信息。通知公告详情界面如下图所示。

图5-4 通知公告详情界面
关键代码:
5.1.5五子棋资讯
五子棋资讯:展示系统发布的五子棋资讯信息,点击标签页可查看详细五子棋资讯信息,并且对感兴趣的五子棋资讯进行点赞、收藏或者发表评论。五子棋资讯界面如下图所示。

图5-5五子棋资讯界面
关键代码:
5.1.6五子棋游戏
五子棋游戏:注册用户可以选择游戏模式:双人轮流对战和人机对战(AI博弈),选择执棋颜色(黑白)以及难度系数(新手、中级、专家)。选择好后点击开始即可进行游戏。在游戏过程中轮到你下棋时会提示轮到你了,当快要连成五子时也会红色点提示。在游戏过程中你可以点击返回,回到游戏选择页面,点击新的游戏可以开启新的一轮游戏,点击关于可游戏规则等。输了会提示输了并提示是否继续挑战。点击返回,回到游戏选择页面,点击继续挑战可以开启新的一轮游戏。选择模式、五子棋游戏中界面如下图所示。

图5-6 选择模式界面

图5-7 五子棋游戏中界面
关键代码:
5.2管理员模块主要功能实现
5.2.1管理员登录
管理员登录:管理员输入账号、密码、验证码点击登录按钮,登录时前端会自动校验用户名与密码,管理员输入正确则登录成功,输入错误会有提示信息。管理员登录界面如下图所示。
图5-8 管理员登录界面
5.2.2系统用户
系统用户:主要管理管理员和注册用户。管理员页面支持添加、删除操作。注册用户支持添加、删除、查看详情,修改注册用户状态操作。修改注册用户状态如下图所示。
图5-9 修改注册用户装填界面
5.2.3系统管理
系统管理:轮播图管理。展示轮播图列表。并可以添加新的轮播图,新添加的会直接展示在系统首页上。支持查询、删除、修改、查看详情操作。轮播图添加如下图所示。
图5-10 轮播图添加界面
5.2.4通知公告管理
通知公告管理:主要管理通知公告。支持添加、编辑、查询、删除、查看详情操作。通知公告列表界面如下图所示。
图5-11 通知公告列表界面
5.2.5资源管理
资源管理:包含五子棋资讯跟资讯分类。五子棋资讯:管理员可以添加新的五子棋资讯,并可以进行删除、编辑、查看详情、查看评论等操作。资讯分类:主要管理资讯分类,可进行添加、删除、修改、查看详细信息等操作。五子棋资讯界面、五子棋资讯添加如下图所示。
图5-12 亚冬百科修改界面图
图5-13 五子棋资讯添加界面图
6.系统测试
6.1测试目的
软件测试的目的是为了尽可能的发现系统功能中所存在的缺陷。系统测试是软件生命周期中必不可少的环节之一,它旨在验证整个微信小程序的五子棋游戏是否满足需求规格说明书定义的要求。
6.2测试用例
用户登录功能测试:
| 用例名称 | 注册用户登录系统 |
| 目的 | 测试用户通过正确的用户名和密码可否登录功能 |
| 前提 | 未登录的情况下 |
| 测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
| 预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
| 实际结果 | 实际结果与预期结果一致 |
表6-1 用户登录功能测试表
密码修改功能测试:
表6-2密码修改功能测试表
| 用例名称 | 密码修改测试用例 |
| 目的 | 测试注册用户密码修改功能 |
| 前提 | 注册用户正常登录情况下 |
| 测试流程 | 1)注册用户密码修改并完成填写。 2)点击进行提交。 |
| 预期结果 | 使用新的密码可以登录 |
| 实际结果 | 实际结果与预期结果一致 |
个人信息修改功能测试:
表6-3个人信息修改功能测试表
| 用例名称 | 个人信息修改测试用例 |
| 目的 | 测试注册用户个人信息修改功能 |
| 前提 | 注册用户正常登录情况下 |
| 测试流程 | 1)注册用户个人信息修改并完成填写。 2)点击进行提交。 |
| 预期结果 | 个人信息修改成功 |
| 实际结果 | 实际结果与预期结果一致 |
浏览五子棋资讯功能测试:
表6-4 浏览五子棋资讯功能测试表
| 用例名称 | 浏览五子棋资讯 |
| 目的 | 测试浏览五子棋资讯产 |
| 前提 | 注册用户登录 |
| 测试流程 | 点击五子棋资讯按钮 |
| 预期结果 | 可以查看所有浏览五子棋资讯 |
| 实际结果 | 实际结果与预期结果一致 |
管理员添加五子棋资讯测试:
表6-5 管理员添加五子棋资讯测试表
| 用例名称 | 管理员添加五子棋资讯测试用例 |
| 目的 | 测试管理员添加五子棋资讯功能 |
| 前提 | 管理员正常登录情况下 |
| 测试流程 | 1)点击资源管理--》五子棋资讯--》添加--》输入相关五子棋资讯字段 2)点击进行提交。 |
| 预期结果 | 提交以后,该五子棋资讯显示在系统前端 |
| 实际结果 | 实际结果与预期结果一致 |
五子棋资讯搜索功能测试:
表6-6五子棋资讯搜索功能测试表
| 用例名称 | 五子棋资讯搜索测试 |
| 目的 | 测试五子棋资讯搜索功能 |
| 前提 | 已经进入五子棋资讯页面 |
| 测试流程 | 1)在搜索框输入标题搜索关键字。 2)点击搜索按钮。 |
| 预期结果 | 页面显示包含有搜索关键字的五子棋资讯 |
| 实际结果 | 实际结果与预期结果一致 |
五子棋资讯删除功能测试:
表6-7五子棋资讯删除功能测试表
| 用例名称 | 五子棋资讯删除测试 |
| 目的 | 测试五子棋资讯删除功能 |
| 前提 | 管理员登录—》资源管理 |
| 测试流程 | 1)五子棋资讯列表--》选择一个五子棋资讯。 2)点击删除按钮。 |
| 预期结果 | 提示删除成功,五子棋资讯列表跟前端页面不在展示该五子棋资讯 |
| 实际结果 | 实际结果与预期结果一致 |
五子棋资讯修改功能测试:
表6-8五子棋资讯修改功能测试表
| 用例名称 | 五子棋资讯修改测试 |
| 目的 | 测试管理员五子棋资讯修改功能 |
| 前提 | 管理员登录—》五子棋资讯管理 |
| 测试流程 | 1)选择一个五子棋资讯--》点击详情按钮,修改相关信息,点击提交 2)点击提交按钮。 |
| 预期结果 | 提示提交成功,五子棋资讯修改成功 |
| 实际结果 | 实际结果与预期结果一致 |
6.3测试结果
在本次主要测试注册用户登录、修改密码、修改个人信息,浏览五子棋资讯,以及管理员添加、删除、修改、搜索五子棋资讯等业务流程操作。验证所有操作都能够正常运行,因此能够保证本次设计的,已实现的功能能够正常运行并且相关数据库的信息也同样保存正确。
7.结论
基于微信小程序的五子棋游戏个人毕业设计已顺利完成。本项目采用Spring Boot框架构建后端服务,结合MySQL数据库实现数据存储与管理,前端通过微信小程序实现用户交互界面,利用HTML进行页面布局与样式设计。通过WebSocket技术实现了玩家之间的实时对战功能,确保了游戏的流畅性和交互性。在开发过程中,完成了从需求分析到系统设计、编码实现以及测试的全过程。系统实现了用户注册登录、游戏对局创建、实时棋盘状态更新、胜负判定等功能模块,满足了用户在微信小程序平台上进行五子棋对战的需求。
在开发过程中也遇到了一些挑战。例如,在微信小程序与Spring Boot后端服务的数据交互过程中,数据传输格式的适配问题曾一度阻碍了开发进度。通过深入研究和反复调试,最终解决了这一技术难题。此外,在系统功能的不断迭代中,需求变更频繁,给开发工作带来了额外的压力。但通过合理规划和灵活调整,这些问题最终得到了有效解决,确保了系统的顺利上线和稳定运行。系统的成功开发不仅提升了用户在微信平台上的娱乐体验,也为相关领域的开发提供了可借鉴的技术实现方案。
展望未来,该项目仍有进一步优化和拓展的空间。一方面,可以考虑增加更多游戏模式,如多种难度级别的人机对战,以满足不同用户的需求。另一方面,可以进一步优化微信小程序的界面设计,使其更加美观和用户友好。此外随着技术的不断进步,持续关注Spring Boot和微信小程序的新特性,适时对系统进行技术升级,以提升系统的性能和安全性。通过这些改进,五子棋游戏将能够更好地适应用户需求的变化,为用户提供一个更加丰富和流畅的对战体验。
参考文献
[1]彭健,陈兰兰. 基于Java语言开发五子棋游戏项目的教学设计与实践 [J]. 江苏科技信息, 2016, (33): 47-48.
[2]陈雪荣,岳书丹. 基于Java的五子棋游戏的设计与实现 [J]. 信息系统工程, 2020, (08): 104-105.
[3]吕橙. 五子棋游戏双人对决的设计与实现 [J]. 现代计算机, 2021, (03): 94-100.
[4]张兰翔. 湖南省博物馆微信小游戏设计研究 [J]. 美与时代(上), 2021, (07): 93-95. DOI:10.16129/j.cnki.mysds.2021.07.030.
[5]陈树彬,和昱旻,原菊梅. 五子棋落子算法的研究 [J]. 电脑与信息技术, 2021, 29 (05): 49-51+94. DOI:10.19414/j.cnki.1005-1228.2021.05.014.
[6]王旭,隋涌. 微信小游戏“寻味江湖”设计研究 [J]. 北京印刷学院学报, 2021, 29 (12): 40-43+56. DOI:10.19461/j.cnki.1004-8626.2021.12.011.
[7]杨贺棋,王丽杰. 五子棋大战 [J]. 小学生作文, 2024, (09): 8-9.
[8]Shao W ,Liu K . Design and Implementation of Online Ordering System Based on SpringBoot [J]. Journal of Big Data and Computing, 2024, 2 (3):
[9]毛娟. 基于HTML5和JavaScript的五子棋游戏的设计与实现 [J]. 电脑知识与技术, 2024, 20 (31): 128-130+133. DOI:10.14004/j.cnki.ckt.2024.1619.
[10]Chen R ,Xie H ,Duan S , et al. The catch-up growth follow-up management system use and need for the parents of premature infants after discharge based on a WeChat mini program: A cross-sectional survey in China. [J]. Medicine, 2024, 103 (50): e40883.
[11]韦珍娜,陈宇佳. 基于Springboot的服装租赁系统设计 [J]. 电脑编程技巧与维护, 2025, (01): 35-38. DOI:10.16184/j.cnki.comprg.2025.01.005.
[12]汪鹏,姜苏城,钱宝健. 基于Vue和SpringBoot的乡村创业互助系统 [J]. 电脑编程技巧与维护, 2025, (01): 27-30+69. DOI:10.16184/j.cnki.comprg.2025.01.042.
[13]Zeng D ,Zhou T ,Li S . Improving the Efficiency of Teaching Management in Universities: Research on Notification Dissemination Mode Based on Wechat Mini Program [J]. Journal of Higher Education Teaching, 2025, 2 (1):
[14]张豪,姚佰允,杜瑞庆. 基于SpringBoot和Vue的贪吃蛇双人对战游戏设计与实现 [J]. 无线互联科技, 2025, 22 (03): 51-55.
[15]于永利. 基于SpringBoot的药品订购系统的设计与实现 [J]. 信息与电脑, 2025, 37 (04): 117-119.
[16]张强志,郑庆,黄志芳,等. 校园学习生活小助手微信小程序的设计与实现 [J]. 电脑知识与技术, 2025, 21 (07): 61-63. DOI:10.14004/j.cnki.ckt.2025.0322.
致 谢
时光荏苒,如白驹过隙,我的毕业设计——基于微信小程序的五子棋游戏项目,即将画上圆满的句号。在此,我怀着无比感激之情,向所有给予我帮助和支持的人表达最诚挚的谢意。
我要衷心感谢我的指导老师[老师姓名]。在整个毕业设计过程中,老师以其渊博的专业知识、严谨的治学态度和耐心的指导,为我指明了研究方向,解答了无数困惑。从项目的选题、框架搭建,到功能实现和细节优化,每一个环节都离不开老师的悉心教导。老师的言传身教,不仅让我在专业技能上得到了提升,更让我明白了做学问应有的态度和责任。
在毕业设计的过程中,我也得到了许多同学的帮助和支持。他们在我遇到困难时给予我鼓励,在我迷茫时为我指引方向。在未来的学习和工作中,我将继续珍惜身边的每一个人,与他们携手共进,共同成长。
我还要感谢我的家人,从记事以来我父母对我的关心和支持一直无微不至,使我得以站在他们的坚实肩膀上,窥见了一个他们未曾亲身经历却期待我领略的繁华世界。养育之恩如山高海深,我深知无法用言语和行动完全回报。但我会竭尽全力,不懈努力,不断进步,不负他们对我的期望和厚望。
我要感谢学校为我们提供了良好的学习环境和丰富的资源,让我们能够接触到前沿的技术和知识,为毕业设计的顺利完成奠定了坚实的基础。
毕业设计是我大学生活的一个重要总结,也是我人生中的一个重要里程碑。在未来的日子里,我将带着这份感恩之心,不断努力,追求卓越,用所学知识回报社会,不辜负老师、同学和家人的期望。
请关注点赞+私信博主,免费领取项目源码
1355

被折叠的 条评论
为什么被折叠?



