商务合作
首页 > 教程文章 > Java文章 > 正文

Java实现纯净版斗地主游戏

一. 视频演示效果

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//不能出牌
}

代码获取

Java斗地主源码