支持两名玩家在线匹配、对局、记录,可以查看历史对战记录,可以使用自己的代码算法策略进行对局自动化。
Spring Boot实现后端,数据库mybatis-plus + MySQL, Spring Security和JWT安全验证,RestTemplate远程调用,IPage分页。
Vue3实现Web端,router控制页面,store控制信息,通过Ajax与后端交互。
Redis存储Bot,用于创建Game时快速导入代码。
免密登录:SecurityConfig拦截+ JwtAuthenticationTokenFilter过滤+双令牌机制。
多人在线匹配机制:创建matching system微服务,使用Thread类和ReentrantLock线程安全的实现Player循环匹配,使用RestTemplate远程调用。
对局复现:将Game对局信息序列化加密并存储至MySQL数据库中,支持查询时反序列化以复现。
多线程对局:创建WebSocketServer类进行管理Game线程,每个Game使用Thread类和ReentrantLock实现线程安全,通过ConcurrentHashMap维护每个对局的WebSocketServer,包括WebSocket链接等。
代码策略编译运行:Thread类+ReentrantLock+Condition管理Bot队列,joor.Reflect.compile编译。
聊天推送:WebSocket协议通信,ConcurrentHashMap维护每个对话的WebSocketServer。
已在项目Toy_Sharing_Platform中实现
- feat:主要用于'添加新功能'等操作
- fix:主要用于'修改bug'等操作
- update:用于不方便细化的'所有更新'等操作
- perf:主要用于'优化相关(包括代码性能、用户交互等)'等操作
- style:主要用于'代码格式整理(比如删除空行、缩进等)'等不改变代码逻辑的操作
- refactor:主要用于'代码重构'等操作
- lint:主要用于'软件语法检测、优化代码写法'等操作
- test:主要用于'测试相关'等操作
- chore:主要用于'更新依赖、更新构建流程'等操作
- docs:主要用于'代码注释整理、文档整理'等操作
- revert:主要用于'回滚代码'等操作
- merge:主要用于'合并代码'等操作
- del:主要用于'删除代码'等操作
已在项目Public_Welfare_Project中采纳