Java编写联机斗地主游戏 功能完善 界面漂亮 下载代码即可以运行

   之前由于公司的事情比较多,一直没有更新相关的博客信息,今天稍微不那么忙了,为大家继续分享一个界面漂亮、功能完整的斗地主游戏的的开发与制作 455。这个游戏涉及到UI开发、事件响应、socket通信等知识,开发的过程中也耗费了不少时间。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步!!

开发环境 

    开发语言为Java,开发环境Eclipse或者IDEA都可以。运行主程序,或者执行打开JAR文件即可以运行本程序

系统框架

  利用JDK自带的SWING框架开发,不需要安装第三方JAR包。纯窗体模式,直接运行Main文件即可以。选中Main.java,点右键 run as application启动相关程序。也客户把程序打包成JAR包,双击JAR即可以启动相关的程序。

游戏主要功能

   1  斗地主游戏简介

 斗地主,是一种在中国流行的纸牌游戏。是关于旧社会阶级斗争详见土地改革运动。 斗地主是一种扑克游戏。游戏最少由3个玩家进行,用一副54张牌(连鬼牌),其中一方为地主,其余两家为另一方,双方对战,先出完牌的一方获胜。该扑克游戏最初流行于中国湖北武汉市汉阳区,现已逐渐在全球各地流行

   2  游戏规则

火箭最大,可以打任意其他的牌。

炸弹比火箭小,比其他牌大。都是炸弹时按牌的分值比大小。

(对于“癞子场”, 火箭 > 纯癞子炸弹 > 硬炸弹 > 软炸弹。同等级别的炸弹按牌的分值比大小。)

除火箭和炸弹外,其他牌必须要牌型相同且总张数相同才能比大小。

单牌按分值比大小,依次是:大王 > 小王 >2>A>K>Q>J>10>9>8>7>6>5>4>3 ,不分花色。

对牌、三张牌都按分值比大小。

顺牌按最大的一张牌的分值来比大小。

飞机带翅膀和四带二按其中的三顺和四张部分来比,带的牌不影响大小。

(“癞子场”中癞子搭配出的牌型和“原装”的牌型不区分大小。)

发牌

一副牌,留三张底牌,其他发给三家

叫牌

首先系统翻出一张明牌,获得明牌的人开始先叫牌,每人只能叫一次,叫牌可以:1分"、"2分"、 3分"或不叫,叫完后叫的最大的为地主。

出牌

首先将三张底牌交给地主,三张底牌所有人都能看到。由地主开牌,然后按逆时针顺序依次出牌,论到你跟牌时,你可选择PASS或按规则出牌。直至某一方牌出完就结束此局。

当一家的牌剩下一张或两张时,将进行警告(显示一个地雷)。

     3 游戏主要功能

         本系统的主要功能包括以下几个方面:

          1  对战双方起动对应的客户端,需要输入需要对战客户的IP地址或者端口,或者告诉其他用户自己的IP地址和端口

          2 设置自己的用户名

         3 叫地主

         4 轮流出牌和判断游戏规则

         5 查看游戏结果

运行效果

      1 起动客户端

    2 叫地主

       3 出牌

4 出牌2

 5 打牌结果

关键代码

   public void addlordPokers(List<Poker> lordPokers)
    {
    	for(int i=0;i<lordPokers.size();i++)
    	{
    		Poker poker=lordPokers.get(i);
    		
            PokerLabel pokerLabel=new PokerLabel(poker.getId(),poker.getName(),poker.getNum());
    		
    		pokerLabel.turnUp();
    		
    		this.pokerLabels.add(pokerLabel);
    		
    	}
    	Collections.sort(pokerLabels);
    	
    	for(int i=0;i<pokerLabels.size();i++)
    	{
    		this.myPanel.add(pokerLabels.get(i));
    		
    		this.myPanel.setComponentZOrder(pokerLabels.get(i),0);
    		
    		GameUtil.move(pokerLabels.get(i),490+30*i,530);
    	}
    	
    	currentPlayer.getPokers().addAll(lordPokers);    
    }

项目总结

(1)在写代码之前,在大脑里一定要把思路理清楚,不能模模糊糊,一定要把功能图和流程图画出来,然后根据它去实现每一个功能块,要多分析,培养一种良好的逻辑思维能力。

(2)在写代码的过程中,一定要采取就近原则,同一个功能,或者对同一个组件的设置一般要写在一块,这样写的程序比较清晰,不容易出错,也便于查找。

(3)要养成良好的注释习惯,一是有利于别人阅读你的程序,同时也有利于自己以后再看,就能很快的读懂程序,提高效率。

(4)把功能模块化,即把实现相同功能的代码段封装成一到一个类或者一个方法中,实现的时候调用即可,这样能提高代码的可读性

(5)养成创建包来存放不同功能的类,使系统的结构更加模块化和规范化。

(6)在编写代码的时候,一定要边写边调试,要适时的设置断点,或者把某些变量的值输出到控制台,通过观察和分析变量的值,便于判断问题所在,同时,需要捕获异常的一定要把异常信息打印出来,便于分析问题。

猜你喜欢

转载自blog.csdn.net/bangxiecode/article/details/131905415