Java写的斗地主游戏源码

本文分享了一位开发者用Java重构的斗地主游戏源码,最初使用C#完成,后因学习Java而重写。游戏分为服务端和客户端,采用JAVA8编写,IDE为NetBeans。源码采用设计模式和面向对象思想,实现了发牌动画和逻辑。客户端部分使用Flash Builder和AS3编写,与DISCUZ论坛集成。提供了游戏的安装说明和下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源码下载在最后

我们的前年的课设要求做一个斗地主程序,当时正在愁如何做界面,当时刚好在学习C#,于是就用C#完成了这个程序。
一方面,当时我C#功底还很差(其实现在也不怎么样),很多地方用了“笨办法”,实现的比较幼稚,程序效率很低,另一方面感觉很对不起老师,因为做这个程序的本意是研究斗地主程序的AI出牌等等算法相关的东西,而我却几乎忽略了这些内容。(我会好好学习算法的……^-^)

最可怕的是,由于当时时间比较紧,只有几天的时间,所以我本着“能跑就行”的想法完成了这个程序。从程序本身来说,我觉得我的代码几乎没有任何参考价值,满篇的switch...case...,乱七八糟的结构,而且最可怕的是,所有代码几乎都集中在了一个mainform.xaml.cs文件里。。。太恐怖了。我一直为我会写出这样的代码感到羞耻……因此也就没敢发布这些源码。

最近又在研究Java,做另外的项目,看了看以前的代码,觉得虽然代码很烂,但有些地方的处理还是有一定意义的,毕竟这也算是个中小游戏应用,于是又用JAVA重写了一遍,发上来和大家分享。如果能对你的学习或者工作起到任何作用,我都会非常高兴。

此源码完全自由使用,你可以利用它做任何事情,包括商业应用,而不需要提前通知我。

 

  这次采用的是JAVA8 ,最新发布的JAVA版本,

IDE是netbeans,一共有80MB左右大小,体积不大,安装也容易

 

 

程序文件夹结构是从C#转过来的,期间使用一个叫C#转JAVA的工具,转换了一下语法,效果不是很理想,还是手工改了许多地方

可以看到,程序是从Program.java启动(和VS的项目一样)

 

游戏是网页版联机的,因此分服务端和客户端二部分,

服务端JAVA包括斗地主逻辑服务 和 记录服务(生成SQL语句发给数据库) 

 

游戏客户端 -》 斗地主逻辑服务 - 》 记录服务 -》 数据库

               《-                       《-             《-

 

客户端发消息到斗地主逻辑,斗地主逻辑转发到记录服务,再返回来,这样一个通信过程

分成逻辑和记录二部分的好处是 可以并行运行提高效率,比如在SQL语句执行时,斗地主逻辑可以继续处理请求

 

       现在开始构架游戏,为了不让代码那么难看,我们很有必要加入设计模式和面向对象思想。
   首先,我们列出54张牌。

       大家可以看到,扑克数字相同时,有4种花色,桃心梅方

       利用这个特性,我们采用了数字间隔,0-3一组 , 4-7一组,如果想得到花色,取模就可以了,是不是很方便?

 1 /**
 2      * 背面牌都是负数
 3      */
 4     public static final int BG_NORMAL = -3;
 5     public static final int BG_NONGMING = -2;
 6     public static final int BG_DIZHU = -1;
 7 
 8     public static final int F_3 = 0;
 9     public static final int M_3 = 1;
10     public static final int X_3 = 2;
11     public static final int T_3 = 3;
12 
13     public static final int F_4 = 4;
14     public static final int M_4 = 5;
15  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值