纯JAVA写的socket局域网斗地主游戏
前两天没项目做,就想着写点什么。
就写了这个小游戏没事跟同事玩玩。
5块钱一把,不带开挂的。
先来几张效果图
废话不多,开篇纪念。
部分源码
连接服务器类
public class Connect {public static final String IP_ADDR = "192.168.0.38";// 服务器地址public static final int PORT = 8866;// 服务器端口号private static Socket socket;public static SendMes sendMes;public static boolean connect(){try {socket = new Socket(IP_ADDR, PORT);} catch (Exception e) {JOptionPane.showMessageDialog(null, new JLabel("<html><h1><font color='red'>"+e.getMessage()+"</font></h1></html>"), "错误", JOptionPane.ERROR_MESSAGE); }new ReadMes(socket).start();sendMes=new SendMes(socket);sendMes.setMsg(Fuckland.jTextField.getText().trim());sendMes.start();System.out.println("连接成功");return true;}
}
接受服务器消息线程
public class ReadMes extends Thread {private Socket socket;public ReadMes(Socket socket) {this.socket = socket;}public void run() {DataInputStream objInput = null;try {objInput = new DataInputStream(socket.getInputStream());while (true) {......}} catch (Exception e) {e.printStackTrace();if(e.getMessage()!=null)JOptionPane.showMessageDialog(null, new JLabel("<html><h1><font color='red'>"+e.getMessage()+"</font></h1></html>"), "错误", JOptionPane.ERROR_MESSAGE); } finally {try {if(objInput!=null)objInput.close();} catch (IOException e) {}}}}
发送消息给服务器线程
public class SendMes extends Thread {private Socket socket;public SendMes(Socket socket) {this.socket = socket;}private String msg;public void run() {DataOutputStream objOut=null;try {objOut = new DataOutputStream(socket.getOutputStream());while(true){if(msg!=null&&msg.length()>0){objOut.writeUTF(msg);msg=null;}Thread.sleep(100);}} catch (Exception e) {JOptionPane.showMessageDialog(null, new JLabel("<html><h1><font color='red'>"+e.getMessage()+"</font></h1></html>"), "错误", JOptionPane.ERROR_MESSAGE); }finally{try {objOut.close();} catch (IOException e) {}}}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}
}
判断是不是比上家的牌大
public class IsBigger {public static boolean isBigger(List<Poker> leftList,List<Poker> rightList,List<Poker> choose){//如果上家不要 或者第一把出 list=nullif(leftList==null||leftList.size()==0){if(rightList==null||rightList.size()==0){//两家都不要return true;}else{if(isRealBigger(rightList, choose)){return true;}return false;}}else{if(isRealBigger(leftList, choose)){return true;}return false;}}public static boolean isRealBigger(List<Poker> leftList,List<Poker> choose){// 首先判断牌型是不是一样String paiXing = IsTruePoker.isTruePoker(leftList);if (paiXing.equals(IsTruePoker.isTruePoker(choose))) {// 根据牌型来判断大小if (IsTruePoker.DANZHANG.equals(paiXing)) {// 单张if (isBiggerLast(leftList, choose)) {return true;}return false;} else if (IsTruePoker.WANGZHA.equals(paiXing)) {// 王炸// 开挂了} else if (IsTruePoker.DUIZI.equals(paiXing)) {// 对子if (isBiggerLast(leftList, choose)) {return true;}return false;} else if (IsTruePoker.SANGETOU.equals(paiXing)) {// 三张if (isBiggerLast(leftList, choose)) {return true;}return false;} else if (IsTruePoker.SANDAIYI.equals(paiXing)) {// 三带一if (isBiggerSan(leftList, choose)) {return true;}return false;} else if (IsTruePoker.SANDAIYIDUI.equals(paiXing)) {// 三带一对if (isBiggerSan(leftList, choose)) {return true;}return false;} else if (IsTruePoker.ZHADAN.equals(paiXing)) {// 炸弹if (isBiggerLast(leftList, choose)) {return true;}return false;} else if (IsTruePoker.SHUNZI.equals(paiXing)) {// 顺子if (isBiggerLast(leftList, choose)) {return true;}return false;} else if (IsTruePoker.LIANDUI.equals(paiXing)) {// 连对if (isBiggerLast(leftList, choose)) {return true;}return false;} else if (IsTruePoker.SHUANGFEI.equals(paiXing)) {// 双飞if (isBiggerSan(leftList, choose)) {return true;}return false;} }else if(choose.size()==2){//判断是不是王炸if(IsTruePoker.isWangZha(choose)){return true;}return false;} else if(choose.size()==4){//判断是不是炸弹if(IsTruePoker.isSame(choose, 4)){return true;}return false;}return false;}public static boolean isBiggerLast(List<Poker> list,List<Poker> choose){if(list.get(list.size()-1).getColor()<choose.get(choose.size()-1).getColor()){return true;}return false;}public static boolean isBiggerSan(List<Poker> list,List<Poker> choose){int a=san(list);int b=san(choose);if(a==-1||b==-1){return false;}if(b>a){return true;}return false;}public static int san(List<Poker> list){for(int i=0;i<list.size()-2;i++){int a=list.get(i).getColor();int b=list.get(i+1).getColor();int c=list.get(i+2).getColor();if(a==b&&a==c){return a;}}return -1;}
}
感兴趣的朋友可以下源码玩玩 也可以自己修改修改
源码地址:http://download.csdn.net/detail/laigezao/9136609
注意:缺少fastjson-1.2.2.jar,发现现在上传资源最少要2分下载,各位请自行百度下载放在项目根目录下jar文件夹中即可
纯JAVA写的socket局域网斗地主游戏相关推荐
- java斗地主socket_纯JAVA写的socket局域网斗地主游戏
前两天没项目做 就想着写点什么. 就写了这个小游戏没事跟同事玩玩. 5块钱一把 不带开挂的. 先来几张效果图 废话不多 开篇纪念. 部分源码 连接服务器类 public class Connect { ...
- 横版java_Project4 自己用java写的横版格斗游戏
功能还不是很复杂
可以作为参考~ Other Games 其他 238万源代码下载- www.pudn.com...
文件名称: Project4下载 收藏√ [ 5 4 3 2 1 ] 开发工具: Java 文件大小: 5963 KB 上传时间: 2013-07-17 下载次数: 4 提 供 者: lyk ...
- java实现一个简单的斗地主游戏
使用Java编写一个斗地主游戏需要一定的编程知识和技能,例如面向对象编程.集合框架.GUI等.下面是一个简单的斗地主游戏的代码示例: import java.util.ArrayList; impor ...
- 一个纯java写成的贪吃蛇下游戏(《利用一维数组》附完全版源码和素材图片)
贪吃蛇 先来个效果图吧 工具 eclipse 或者 intellij idea 都可以.图片素材我这边上传的如果有人觉得丑也可以自己搞一搞给蛇换个皮肤. 这个图片开始做的时候也没有素材什么的自己用画图 ...
- Java写一个简单的扫雷游戏
〇.目录 一.前言 二.过程中遇到的困难 三.代码 四.成品图 五.代码存在的bug 六.完善建议 七.结语 一.前言 这个学期学习了Java,课程的最后一项作业就是做一个扫雷游戏和一个计算器,经历一 ...
- Java写的第一个小游戏(续)
优化代码(数据维护): 注:此为小游戏最终版本 代码做到最优最简 基于之前发表的文章详情可见 点击查看前文 回顾之前的代码我们可以看到很多的固定常量值或是属性我们都会大量的重复使用,这并不符合我们代码 ...
- Java写的第一个小游戏
实现思路 1.如何分析? 第一步:发现类(对象) 人物-小丑(敌方-友方) 子弹-帽子 墙体 爆炸物 第二步:发现属性 小丑: 宽高 , 位置(x y), 移动速度 帽子: 宽高 , 位置(x y), ...
- Java写的main方法小游戏
这是去年闲暇时间写的一段代码,那时刚接触java,就想写一个小游戏玩玩,在网上搜索时,大部份人都说java不能写游戏,占内存什么的.不说了上代码 英雄人物类: public class Person ...
- socket tcp java_用JAVA写一个SOCKET 接收TCP发来的消息
服务器端程序 import java.io.*; import java.net.*; import java.applet.Applet; public class TalkServer{ publ ...
- Java写一个黄金矿工小游戏
写这个小游戏的初衷 同学一起互助学习 前两天和一个计科的高中同学交流想法,有讲到合理规划时间,然后用分出来的时间去网上找资源学一些项目,这不,就有了这个小游戏了 和同学交流的时候,对方说每周花一个小时 ...
最新文章
- 一个好用的C++的json库
- java中获取特定时间段_获取某一时间段特定星期几的所有日期(Java实现)
- 机器学习中为啥要有验证集?只要训练集和测试集不就可以了吗?
- Cookie防伪造防修改
- 实验一 链式存储结构的基本操作
- LeetCode 1554. 只有一个不同字符的字符串(枚举)
- 贪吃蛇html一维坐标,html贪吃蛇
- iPhone用户注意!苹果:手机丢失这么做 官方售后拒绝维修
- android gallery源代码,可循环显示图像的Android Gallery组件
- 给2021的Java一些建议,纯干货
- java web 锁_Java中锁的分类
- 人工智能,现在门槛这么低了吗?
- 如何绘制一幅优雅的列线图
- AppStore SDK
- java+ElementUI前后端分离旅游项目第二天 旅游管理和自由行
- 物联网嵌入式系统的操作系统介绍
- 谷歌放弃火狐的谷歌工具栏产品
- Linux系统分区备份工具,linux系统备份工具:clonezilla
- python 百度人脸 sdk_深更半夜实现python百度api人脸识别
- 安卓获取及监听手机网络状态