基于Netty实现的命令行斗地主游戏,为划水摸鱼而生~

首先确定自己本地已经配置Maven和JRE环境,并且保证git环境的搭建。

 1.克隆github上的项目到本地(外网地址下载,可能会有点慢,不过国内资源很多了)

git clone https://github.com/ainilili/ratel.git

2.进入项目主目录,然后使用Maven打包

cd ratel
mvn install package

项目的所有文件

大概了解下各个包的作用~

客户端(landlords-client)
        event:客户端事件包
        handle:客户端事件处理包
        SimpleClient:客户端启动程序
        基础包:landlords-common
        channel:管道工具包
        exception:异常处理目录
        handler:业务处理,包含消息转码工具类
        helper:工具类包,包括时间工具类等
        print:打印工具包目录,包括格式化输出的工具类
        robot:机器人出牌目录,人机对战时使用
        transfer:类型转换工具包目录
        utils:基础工具类,包括集合、正则等工具类

服务端(landlords-server)
        event:服务端端事件包
        handler:客户端事件处理包
        robot:机器人出牌目录,人机对战时使用
        timer:定时任务目录,计算房间存活时间。
        SimpleServer:服务端启动程序

3.接下来分别运行 landlords-client客户端 和 landlords-server服务端的 target 文件夹下的Jar包:

java -jar landlords-server/target/landlords-server-#{version}.jar -p 1024
java -jar landlords-client/target/landlords-client-#{version}.jar -p 1024 -h 127.0.0.1

服务端启动

客户端启动

客户端亦可直接运行,程序会自动拉取Serverlist中的公网服务器,  #{version}是实际运行中当前版本。

java -jar landlords-client/target/landlords-client-#{version}.jar

成功启动之后就可以愉快的摸鱼了【摸鱼丸加】

玩法介绍:

这是所有牌型的出牌规则

┌──┐──┐──┐──┐──┐──┐──┐──┐──┐──┐──┐──┐──┐──┐──┐
│3 |4 |5 |6 |7 |8 |9 |10|J |Q |K |A |2 |S |X |
│♦ |♦ |♦ |♦ |♦ |♦ |♦ |♦ |♦ |♦ |♦ |♦ |♦ |  |  |
└──┘──┘──┘──┘──┘──┘──┘──┘──┘──┘──┘──┘──┘──┘──┘

示例:

  • 王炸:sx
  • 顺子:34567
  • 三带一:3334
  • 飞机:333444a2
  • 单张10:0或者t
  • 单张A:a或者1
  • 封顶顺子:34567890jqka
  • 不想出牌: passp
  • 退出: exit或者e

展示

首先设置玩家的昵称,PVP模式需要访问配置的公网服务器。PVE模式有简单、中等、和困难模式。

根据数字选择不同模式就可以愉快游戏了 (*^▽^*)

不过如要玩PVP模式,开发者还贴心的为大家准备了公网服务器。你也可以自己创建一个私服,也可以使用公网服务器-h 39.105.65.8

协议支持

TCP

Websocket

新版本的服务端已经不是java编写的,而是使用go来实现的

学无止境,兴趣就是最好的老师,有兴趣关注spring的话欢迎参观我的gitee喔

https://gitee.com/VIP_Plus/day02_spring.git

学习笔记和代码都在更新,随时欢迎大佬指正~

github项目的JAVA项目Ratel,基于Netty实现相关推荐

  1. 使用Eclipse发布一个依赖于其他项目的java项目,被依赖的项目不能自动编译,因而引发notfoundClass的异常。...

    编号 007 错误.问题类型 java 开发 描述 使用Eclipse发布一个依赖于其他项目的java项目,被依赖的项目不能自动编译,因而引发notfoundClass的异常. 解决方案 选择主项目点 ...

  2. 【Flutter】插件包选择 ( 查看文档是否全面 | 查看插件包的更新版本次数 | 查看使用示例 | 查看 GitHub 项目的 Star Fork Issues )

    文章目录 一.插件包选择 二.查看文档是否全面 三.查看插件的更新版本次数 四.查看使用示例 五.查看 GitHub 项目的 Star Fork Issues 一.插件包选择 开发 Flutter 时 ...

  3. voyage java_GitHub - yezilong9/voyage: 采用Java实现的基于netty轻量的高性能分布式RPC服务框架...

    Voyage Overview 采用Java实现的基于netty轻量的高性能分布式RPC服务框架.实现了RPC的基本功能,开发者也可以自定义扩展,简单,易用,高效. Features 服务端支持注解配 ...

  4. 批量给项目的java文件添加licence文件头

    批量给项目的java文件添加licence文件头 package com.cs.test.springboot;import java.io.File; import java.io.FileWrit ...

  5. github上创建java项目简单操作

    github上创建java项目简单操作 参考L: github上创建java项目简单操作 - CSDN博客 http://blog.csdn.net/qq_29392425/article/detai ...

  6. Java项目:基于SSM的在线考试系统

    作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 这个项目是一个基于SSM的在线考试系统,分为考试用户和管理员两种角色. 考试用户功能包 ...

  7. 合作编写java项目y_基于VS Code快速搭建Java项目

    有时候随手想写一点Java测试代码,以控制台程序为主,还会用到一些其它框架,并基于Maven构建. 1.Java Extension Pack一定要安装. 2.VS Code打开一个指定目录,创建相应 ...

  8. Java项目:基于SSM的疫情物业系统

    作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 本项目分为管理员.业主两种角色. 管理员角色包含以下功能: 登录页面,首页,个人中心( ...

  9. Java项目:基于Servlet+Mybatis+Layui的CRM客户关系管理系统

    作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 功能介绍 该项目未使用spring框架,实现了用户登录,权限控制,数据统计,以及市场活动.线索. ...

最新文章

  1. CIR:2020年全球数据中心应用AOC市场达$42亿
  2. VSC++ 常量中出现符号
  3. Linux 系统服务管理器(初始化系统/init system) -- systemd 及命令 systemctl 的详细介绍
  4. java 二阶段提交,二阶段提交协议(Two Phase Commitment Protocol)
  5. 去哪儿-14-vuex_localstorage
  6. 在过程中要正式批准可交付成果_邛海—螺髻山风景名胜区邛海西岸详细规划》获国家林草局批准执行...
  7. python中反射(__import__和getattr使用)
  8. 用c语言编写六边形游戏,玩了这款搞花样的一笔画游戏,我的发量已经有点保不住了...
  9. 第9节-做网站有哪些收入接入点
  10. Visio2016绘制框图的基本操作方法
  11. 机器学习基础知识之概率论基础详解
  12. 关于大疆mini一代如何手动拍摄合成全景图
  13. Python爬取必应图片
  14. Java实现Excel中的Rate函数
  15. 公器私用--大互联网自建云分析
  16. PMP一模考试错题集+解析 之 人员
  17. error C4996: ‘strcpy‘: This function or variable may be unsafe. Consider using strcpy_s instead.
  18. Kotlin版 极简 干货集中营 APP
  19. MIMIC-IV- v2.0带着随访数据来啦
  20. 文件新旧判断和字符串判断

热门文章

  1. 百分点大数据技术团队:互联网舆情系统的架构实践
  2. 微信第三方平台的开发过程一
  3. SpringMVC实现全局异常处理器
  4. linux刻录文件,linux中刻录iso到光盘
  5. 【C++】packaged_task的用法实例
  6. canvas[ymin_valid:ymax_valid + 1, xmin_valid:xmax_valid + 1] = np.fmax
  7. 区块链的20种应用场景
  8. 移动云mas 通过HTTP请求发送普通短信和 模板短信
  9. MySQL数据库+jdbc -- 笔记
  10. 因证书过期导致Java 执行http相关动作失败