有趣的摸鱼工具—用命令行打牌

以前在公号:程序员了不起(以前是:开源指北)发表的一篇文章,现在共享给小伙伴们啦~~~~

哈喽,大家好!我是指北君

有时候,指北君不想干活了,就玩2把斗地主消磨时间。玩过手机上的斗地主,突然觉得可以自己写个小程序模拟一把。遇事不决问GitHub,上去搜了一把,嘿,已经有大佬写了不少斗地主游戏,其中,最有意思的就是在命令行上执行命令玩斗地主,好有趣!

这个游戏项目叫做Ratel,基于Netty实现的JAVA命令行斗地主游戏,为划水摸鱼而生!在Gitee上有1400+Stars,在GitHub上有1800+Stars,还被GitHub和Gitee分别推荐了,很牛吧?

这个游戏要求具备基本JAVA知识,不然没法直接跑起来的。

一、 项目结构

目录说明如下:

1、 客户端:landlords-client

● event:客户端事件包

● handle:客户端事件处理包

● SimpleClient:客户端启动程序

2、 基础包:landlords-common

● channel:管道工具包

● entity:实体类目录

● enums:枚举类型目录

● exception:异常处理目录

● handler:业务处理,包含消息转码工具类

● helper:工具类包,包括时间工具类等

● print:打印工具包目录,包括格式化输出的工具类

● robot:机器人出牌目录,人机对战时使用

● transfer:类型转换工具包目录

● utils:基础工具类,包括集合、正则等工具类

3、 服务端:landlords-server

● event:服务端端事件包

● handler:客户端事件处理包

● robot:机器人出牌目录,人机对战时使用

● timer:定时任务目录,计算房间存活时间。

● SimpleServer:服务端启动程序

4、 服务器配置 serverlist.json:默认配置

二、 安装

首先下载打包,确保本地安装有maven及JRE环境:

    git clone https://github.com/ainilili/ratel.git    cd ratel    mvn install package

接下来分别运行 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中的公网服务器:

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

注意,实际运行中请将#{version}改为当前运行版本!

运行效果如下:

客户端运行效果:

服务端运行效果:

三、 玩法介绍

1、 所有牌型

2、 示例:

● 王炸:sx

● 顺子:34567

● 三带一:3334

● 飞机:333444a2

● 单张10:0或者t

● 单张A:a或者1

● 封顶顺子:34567890jqka

● 不想出牌: pass或p

● 退出: exit或者e

3、 协议支持

● TCP

● Websocket

Websocket协议的地址为 ws://host:port/ratel,Websocket的端口需要在原端口基础上加1 (如果tcp端口为1024,则ws端口需要为1025)

四、 指北君有话说

这个开源项目提供全部源代码,方便大家下载和使用。

其实,这个游戏最大的意义在于,让大家在玩的同时,激发对JAVA学习的兴趣。有兴趣的可以研究一下他们的代码,学习大佬的开发经验。通过对源代码的学习,可以提高自己的水平。

欢迎加入交流群,你可以摸鱼、划水、吐槽、咨询。 还有简历模板、各种技术面试资料等100G的资源等着你领取哦。 公号:程序员了不起,后台回复 fff112马上加入,快来一起来聊一聊吧!

项目地址

https://gitee.com/ainilili/ratel

以上就是本次推荐的全部内容,我是指北君,感谢各位的观看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值