码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 五子棋对战简单介绍


    目录

    1.核心功能

    1.1用户模块

    1.2匹配模块

    1.3对战模块

    2.用户模块

    2.1创建一个SpringBoot项目,将Spring Web,MyBatis,SQL Driver框架添加进来

    2.2数据库设计

     2.3修改Spring的配置文件

    2.4创建实体类用户User

    2.5创建UserMapper接口

     2.6实现MyBatis的xml配置文件,来自动实现数据库操作

    2.7约定前后端接口

     2.8编写前后端登录代码

    2.9编写前后端注册代码

    2.10随时获取用户信息功能

    3.匹配模块

    3.1约定前后端交互接口

    3.2实现游戏大厅匹配页面

    3.2.1实现前端接口

     3.2.2匹配页面后端代码

     3.2.3处理匹配请求

    3.对战模块

    3.1约定前后端交互接口

    3.2前端构建棋盘和棋子

     3.3处理落子响应

    3.4 部署服务器验证


    1.核心功能

    1.1用户模块

    1)实现用户的注册登录功能

    2)管理用户的天梯分数、比赛场数、获胜场数等信息

    1.2匹配模块

    1)根据用户的天梯积分,实现匹配机制

    1.3对战模块

    1)将对战双方匹配到一个游戏房间里,双方通过网页的形式来进行对抗比赛

    用到的关键技术点:

    Java,Spring/Spring Boot/Spring MVC, HTML/CSS/JS/AJAX/, MySQL/MyBatis,WebSocket

    下面我们来看看整个的实行过程

    2.用户模块

    2.1创建一个SpringBoot项目,将Spring Web,MyBatis,SQL Driver框架添加进来

    2.2数据库设计

     2.3修改Spring的配置文件

    接下来我们就要修改Spring的配置文件,让我们的MyBatis连接上数据库

    2.4创建实体类用户User

    我们重新创建一个包model,并创建实体类User

    2.5创建UserMapper接口

    我们把UserMapper接口也放在model包下面

     2.6实现MyBatis的xml配置文件,来自动实现数据库操作

    2.7约定前后端接口

     2.8编写前后端登录代码

    我们先新建一个api包,再建一个UserAPI类

    2.9编写前后端注册代码

    2.10随时获取用户信息功能

    3.匹配模块

    实现匹配模块,就是把实力相近的两个玩家凑成一桌,放进一个房间中,进行对战

    3.1约定前后端交互接口

     

    3.2实现游戏大厅匹配页面

    3.2.1实现前端接口

     3.2.2匹配页面后端代码

     

     

     3.2.3处理匹配请求

     

    小结:接下来我们来回顾一下匹配的过程

    3.对战模块

    3.1约定前后端交互接口

    这里我们要将客户端和服务器建立WebSocket连接,这里的WebSocket连接和匹配模块是两个不同的连接,这样就可以做到解藕的效果

     

     

    3.2前端构建棋盘和棋子

     下面我们要写个哈希表来表示玩家在对战房间的在线状态

     因为玩家从游戏大厅重新进入游戏房间的时候,就要重新管理用户的身份信息了

    玩家进入game_room的具体过程

     

     连接游戏房间之后的操作

     代码具体实现:

     这个时候,假如玩家掉线了,那么我们也应该处理

     同样服务器返回失败响应也是一样:

     3.3处理落子响应

    当玩家双方都已经加入游戏房间之后,并且棋盘也已经初始化完毕,那么我们就应该来处理落子的请求和响应。

     

     

    3.4 部署服务器验证

    通过验证之后我们发现,进行一局对战游戏之后,界面上玩家双方的天梯分,游戏总场数和胜率场数并没有改变 ,那么我们来分析一下

     至此我们的五子棋简单项目就结束了

  • 相关阅读:
    一种基于区块链的物联网架构设计
    理解javascript中的函数组合
    Leetcode160. 相交链表(双指针)
    tensorflow Windows安装说明
    GO语言网络编程(并发编程)定时器
    “顶梁柱”滑坡、新增长极难担重任,阿里“蹲下”是为了跳更高?
    网络安全的红利还能吃几年?
    docker保存镜像出错
    基于 eBPF 的 Kubernetes 可观测实践
    Python与JAVA有何区别?
  • 原文地址:https://blog.csdn.net/zhanghangqian/article/details/126097199
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号