Skip to content

yzj6/King_Of_Bots

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 

Repository files navigation

King Of Bots

项目描述

支持两名玩家在线匹配、对局、记录,可以查看历史对战记录,可以使用自己的代码算法策略进行对局自动化。

技术栈

Spring Boot实现后端,数据库mybatis-plus + MySQLSpring SecurityJWT安全验证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编译。

项目展示

图片1 图片2 图片3 图片4 图片5

项目反思

可增添功能

聊天推送:WebSocket协议通信,ConcurrentHashMap维护每个对话的WebSocketServer。

已在项目Toy_Sharing_Platform中实现

git提交规范问题

  • feat:主要用于'添加新功能'等操作
  • fix:主要用于'修改bug'等操作
  • update:用于不方便细化的'所有更新'等操作
  • perf:主要用于'优化相关(包括代码性能、用户交互等)'等操作
  • style:主要用于'代码格式整理(比如删除空行、缩进等)'等不改变代码逻辑的操作
  • refactor:主要用于'代码重构'等操作
  • lint:主要用于'软件语法检测、优化代码写法'等操作
  • test:主要用于'测试相关'等操作
  • chore:主要用于'更新依赖、更新构建流程'等操作
  • docs:主要用于'代码注释整理、文档整理'等操作
  • revert:主要用于'回滚代码'等操作
  • merge:主要用于'合并代码'等操作
  • del:主要用于'删除代码'等操作

已在项目Public_Welfare_Project中采纳

About

基于SpringBoot+Vue3+websocket构建的Web游戏应用,前后端分离开发,包含注册登录、自动匹配、在线对战、Bot代码管理、对战记录、比赛回放、积分与排行榜等功能,同时支持两名玩家在线匹配、对局、记录,可以查看历史对战记录,可以使用自己的代码算法策略进行对局自动化。遵循微服务思想,项目分为主服务、匹配服务和Bot服务三个独立的SpringBoot进程。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors