使用java实现斗地主小游戏

Landlords

项目地址:https://github.com/chunlaiqingke/Landlords
环境要求:

  • jdk8+(新手推荐jdk8,自带javafx), jdk11及以上去除了javafx,需要单独安装,高版本jdk可见下面参考链接,jdk17的代码已升级
  • maven

基于java实现的斗地主小游戏,netty + javafx

基于: javafx-ratel-client
ratel命令行项目进行改造,由于javafx-ratel-client这个项目
长期没有人维护,所以我这里单独发一个项目

使用方法简单介绍

  1. 运行SimpleServer,控制台会显示端口号,说明服务启动成功
  2. 运行SimpleClient,连接本地的127.0.0.1的ip,刚才控制台展示的端口
    (如果是一个人测试,可以使用idea开启允许多实例运行SimpleClient)
public class SimpleClient extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        UIService uiService = new UIService();
        IndexMethod indexMethod = new IndexController(new IndexEvent());
        uiService.addMethods(
                indexMethod,
                new LoginController(new LoginEvent()),
                new LobbyController(new LobbyEvent()),
                new RoomController(new RoomEvent()),
                new Room4PController()
        );
        uiService.getMethod(IndexController.METHOD_NAME).doShow();

        NettyClient nettyClient = new NettyClient(uiService);
        BeanUtil.addBean("nettyClient", nettyClient);

        try {
            List<String> remoteServerAddressList = fetchRemoteServerAddresses();
            Platform.runLater(() -> indexMethod.generateRemoteServerAddressOptions(remoteServerAddressList));
        } catch (IOException e) {
            SimplePrinter.printNotice("获取远程服务器列表失败" + e.getMessage());
            Platform.runLater(() -> indexMethod.setFetchRemoteServerAddressErrorTips());
        }
    }

    private List<String> fetchRemoteServerAddresses() throws IOException {
        String serverInfo = StreamUtils.convertToString(
                new URL("https://raw.githubusercontent.com/ainilili/ratel/master/serverlist.json"));
        return JSONArray.parseArray(serverInfo, String.class);
    }

    public static void main(String[] args) {
        launch(args);
    }
}
public class SimpleServer {

	public static void main(String[] args) throws InterruptedException {
		if (args != null && args.length > 1) {
			if (args[0].equalsIgnoreCase("-p") || args[0].equalsIgnoreCase("-port")) {
				ServerContains.port = Integer.parseInt(args[1]);
			}
		}
		new Thread(() -> {
			try {
				new ProtobufProxy().start(ServerContains.port);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}).start();
		new WebsocketProxy().start(ServerContains.port + 1);

	}
}

功能介绍

  • 三人联机斗地主
  • 三人人机
  • 四人联机
native打包方式

packr
参考连接

ps:如果需要mac版可执行程序(没有windows电脑,参考上面的native打包方式),需要远程服务器地址,私聊

群:742671622

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
地主是一款经典的扑克牌游戏,我们可以使用Java实现这个游戏。这个地主游戏实现包括了Deck类(表示一副牌)、Card类(表示一张牌)和Player类(表示一个玩家)。程序的主类是DouDiZhu类,它负责管理游戏的过程和输出结果。在这个程序中,每个玩家会收到17张牌,剩下的三张牌作为地主牌。游戏结束后会输出所有玩家的手牌和地主牌。需要注意的是,这个程序实现地主游戏比较简单,仅仅包含了最基本的发牌、抢地主等操作。如果你需要更完整的地主游戏,可以根据这个程序进行扩展。地主游戏实现可以帮助我们加深对Java的理解和应用。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [java实现一个简单的地主游戏](https://blog.csdn.net/m0_56235386/article/details/129910166)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [地主游戏JAVA实现)](https://blog.csdn.net/weixin_62445683/article/details/124237098)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值