一. 视频演示效果

https://githubs.xyz/show/5.mp4

二.项目结构

代码十分简洁,只有简单的7个类,实现了人机对战

图片

素材为若干的gif图片

图片

三.项目实现

启动类为Main类,继承之JFrame,JFrame 是 Java Swing 库中的一个类,用于创建窗口应用程序的主窗口。

部分代码如下:

public class Main extends JFrame implements ActionListener,Runnable{    
         // 初始化窗体
    public void Init() {
        this.setTitle("斗地主");
        this.setSize(830, 620);
        setResizable(false);
        setLocationRelativeTo(getOwner()); // 屏幕居中
        container = this.getContentPane();
        container.setLayout(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        container.setBackground(new Color(0, 112, 26)); // 背景为绿色

    }

    public Main(){
        init_doudizhu();// 初始化
        init_menu();// 创建菜单 按钮(抢地主,发牌,计时器)
        this.setVisible(true);
        init_card();//发牌
        start_qiangdizhu(); //发完牌开始抢地主
        time[1].setVisible(true);
        //线程安全性,把非主线程的UI控制放到里面
        t=new Time(this,10);//从10开始倒计时
        t.start();
    }
}

主流程在Main 的构造函数中,代码已经加了解释。用到的枚举类:

public enum CardType {
    card1,//单牌。
    card2,//对子。
    card3,//3不带。
    card4,//炸弹。
    card31,//3带1。
    card32,//3带2。
    card411,//4带2个单,或者一对
    card422,//4带2对
    card123,//连子。
    card1122,//连队。
    card111222,//飞机。
    card11122234,//飞机带单排.
    card1112223344,//飞机带对子.
    card0//不能出牌
}

代码获取

https://gitee.com/hadluo/java_code.git


精品源码屋
6 声望12 粉丝

提供海量精品源码,业务范围:游戏,网站,工具等。 也支持招商代理