java——棋牌类游戏五子棋(webwzq1.0)之三(Msg)
package msg;
import java.io.ObjectInputStream;
import java.net.DatagramSocket;
/***************************************************************************
* TODO
* <br>Created on 2013-7-3 上午11:19:29<br>
* @author daicy
***************************************************************************/
public interface Msg {
/**
* 开始游戏了
*/
public static final int NEWGAME = 2;
/**
* 出牌
*/
public static final int SENDEDPOKER = 3;
/**
* 出牌
*/
public static final int RESTART = 4;
/**
* 该你出牌
*/
public static final int YOURTURN = 6;
/**
* 该你出牌
*/
public static final int WIN = 7;
/**
* 发送数据
* @param ds
* @param IP
* @param udpPort
*/
public void send(DatagramSocket ds, String IP, int udpPort);
/**
* 接收并处理数据
* @param dis
*/
public void parse(ObjectInputStream dis);
}
package msg;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;
import basegame.GameFrame;
import socket.SocketData;
/***************************************************************************
* TODO
* <br>Created on 2013-7-3 上午11:19:36<br>
* @author daicy
***************************************************************************/
public class NewGameMsg implements Msg {
protected int msgType = Msg.NEWGAME;
protected SocketData socketData ;
private GameFrame tc;
/**
* 根据tank的信息构建消息
* @param tank
*/
public NewGameMsg(SocketData socketData) {
this.socketData = socketData;
}
/**
* 根据消息产生的场所构建新的消息
* @param tc
*/
public NewGameMsg(GameFrame tc) {
this.tc = tc;
}
public int getMsgType() {
return msgType;
}
public void setMsgType(int msgType) {
this.msgType = msgType;
}
public GameFrame getTc() {
return tc;
}
public void setTc(GameFrame tc) {
this.tc = tc;
}
/**
* 发送相关的消息
* @param ds 通过该socket发送数据
* @param IP 数据的目标IP
* @param udpPort 数据的目标端口
*/
public void send(DatagramSocket ds, String IP, int udpPort) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream dos ;
try {
dos = new ObjectOutputStream(baos);
dos.writeObject(getMsgType());
dos.writeObject(socketData);
} catch (IOException e) {
e.printStackTrace();
}
byte[] buf = baos.toByteArray();
try {
DatagramPacket dp = new DatagramPacket(buf, buf.length,
new InetSocketAddress(IP, udpPort));
ds.send(dp);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 分析接收到的消息数据
* @param dis 接收到的消息数据的输入流
*/
public void parse(ObjectInputStream dis) {
try {
socketData = (SocketData) dis.readObject();
//socketData.reverse(tc);
//socketData.initData(tc);
tc.reStart();
//tc.InitData(socketData.getCards());
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package msg;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;
/***************************************************************************
* TODO
* <br>Created on 2013-7-3 上午11:19:56<br>
* @author daicy
***************************************************************************/
public class RestartGameMsg implements Msg {
protected int msgType = Msg.RESTART;
/**
* 根据消息产生的场所构建新的消息
* @param tc
*/
public RestartGameMsg() {
}
public int getMsgType() {
return msgType;
}
public void setMsgType(int msgType) {
this.msgType = msgType;
}
/**
* 发送相关的消息
* @param ds 通过该socket发送数据
* @param IP 数据的目标IP
* @param udpPort 数据的目标端口
*/
public void send(DatagramSocket ds, String IP, int udpPort) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream dos;
try {
dos = new ObjectOutputStream(baos);
dos.writeObject(getMsgType());
} catch (IOException e) {
e.printStackTrace();
}
byte[] buf = baos.toByteArray();
try {
DatagramPacket dp = new DatagramPacket(buf, buf.length,
new InetSocketAddress(IP, udpPort));
ds.send(dp);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 分析接收到的消息数据
* @param dis 接收到的消息数据的输入流
*/
public void parse(ObjectInputStream dis) {
}
}
package msg;
import java.awt.Point;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;
import basegame.GameFrame;
/***************************************************************************
* TODO
* <br>Created on 2013-7-3 上午11:20:04<br>
* @author daicy
***************************************************************************/
public class SendMoveMsg implements Msg {
int msgType = Msg.SENDEDPOKER;
int playerId ;
Point sendList;
GameFrame tc;
/**
* 根据tank的信息构建消息
* @param tank
*/
public SendMoveMsg(int playerId,Point sendList) {
this.playerId = playerId;
this.sendList = sendList;
}
/**
* 根据消息产生的场所构建新的消息
* @param tc
*/
public SendMoveMsg(GameFrame tc) {
this.tc = tc;
}
/**
* 发送相关的消息
* @param ds 通过该socket发送数据
* @param IP 数据的目标IP
* @param udpPort 数据的目标端口
*/
public void send(DatagramSocket ds, String IP, int udpPort) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream dos ;
try {
dos = new ObjectOutputStream(baos);
dos.writeObject(msgType);
dos.writeObject(playerId);
dos.writeObject(sendList);
} catch (IOException e) {
e.printStackTrace();
}
byte[] buf = baos.toByteArray();
try {
DatagramPacket dp = new DatagramPacket(buf, buf.length,
new InetSocketAddress(IP, udpPort));
ds.send(dp);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 分析接收到的消息数据
* @param dis 接收到的消息数据的输入流
*/
public void parse(ObjectInputStream dis) {
try {
int id = (Integer) dis.readObject();
sendList = (Point) dis.readObject();
this.tc.sendXY(id, sendList);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package msg;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;
import basegame.GameFrame;
import socket.NetClient;
/***************************************************************************
* TODO
* <br>Created on 2013-7-3 上午11:19:17<br>
* @author daicy
***************************************************************************/
public class WinMsg implements Msg {
protected int msgType = Msg.WIN;
protected int playerId ;
private GameFrame tc;
private NetClient thread;
/**
* 根据tank的信息构建消息
* @param tank
*/
public WinMsg(int playerId) {
this.playerId = playerId;
}
/**
* 根据消息产生的场所构建新的消息
* @param tc
*/
public WinMsg(GameFrame tc,NetClient thread) {
this.tc = tc;
this.thread = thread;
}
public int getMsgType() {
return msgType;
}
public void setMsgType(int msgType) {
this.msgType = msgType;
}
public int getPlayerId() {
return playerId;
}
public void setPlayerId(int playerId) {
this.playerId = playerId;
}
public GameFrame getTc() {
return tc;
}
public void setTc(GameFrame tc) {
this.tc = tc;
}
/**
* 发送相关的消息
* @param ds 通过该socket发送数据
* @param IP 数据的目标IP
* @param udpPort 数据的目标端口
*/
public void send(DatagramSocket ds, String IP, int udpPort) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream dos;
try {
dos = new ObjectOutputStream(baos);
dos.writeObject(getMsgType());
dos.writeObject(playerId);
} catch (IOException e) {
e.printStackTrace();
}
byte[] buf = baos.toByteArray();
try {
DatagramPacket dp = new DatagramPacket(buf, buf.length,
new InetSocketAddress(IP, udpPort));
ds.send(dp);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 分析接收到的消息数据
* @param dis 接收到的消息数据的输入流
*/
public void parse(ObjectInputStream dis) {
try {
int id = (Integer) dis.readObject();
tc.setWinById(id);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package msg;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;
import basegame.GameFrame;
/***************************************************************************
* TODO
* <br>Created on 2013-7-3 上午11:19:44<br>
* @author daicy
***************************************************************************/
public class YourTurnMsg implements Msg {
protected int msgType = Msg.YOURTURN;
protected int playerId ;
private GameFrame tc;
/**
* 根据tank的信息构建消息
* @param tank
*/
public YourTurnMsg(int playerId) {
this.playerId = playerId;
}
/**
* 根据消息产生的场所构建新的消息
* @param tc
*/
public YourTurnMsg(GameFrame tc) {
this.tc = tc;
}
public int getMsgType() {
return msgType;
}
public void setMsgType(int msgType) {
this.msgType = msgType;
}
public int getPlayerId() {
return playerId;
}
public void setPlayerId(int playerId) {
this.playerId = playerId;
}
public GameFrame getTc() {
return tc;
}
public void setTc(GameFrame tc) {
this.tc = tc;
}
/**
* 发送相关的消息
* @param ds 通过该socket发送数据
* @param IP 数据的目标IP
* @param udpPort 数据的目标端口
*/
public void send(DatagramSocket ds, String IP, int udpPort) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream dos;
try {
dos = new ObjectOutputStream(baos);
dos.writeObject(getMsgType());
dos.writeObject(playerId);
} catch (IOException e) {
e.printStackTrace();
}
byte[] buf = baos.toByteArray();
try {
DatagramPacket dp = new DatagramPacket(buf, buf.length,
new InetSocketAddress(IP, udpPort));
ds.send(dp);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 分析接收到的消息数据
* @param dis 接收到的消息数据的输入流
*/
public void parse(ObjectInputStream dis) {
try {
int id = (Integer) dis.readObject();
getTc().turnIndex = id;
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
java——棋牌类游戏五子棋(webwzq1.0)之三(Msg)的更多相关文章
- android开发之网络棋牌类在线游戏开发心得(服务器端、Java) 好文章值得收藏
标签: android服务器 2013-10-09 17:28 3618人阅读 评论(0) 收藏 举报 分类: android(11) 转自:http://blog.csdn.net/bromon/a ...
- CCF201512-2 消除类游戏 java(100分)
试题编号: 201512-2 试题名称: 消除类游戏 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进 ...
- 网狐6603 cocos2dx 棋牌、捕鱼、休闲类游戏《李逵捕鱼》手机端完整源码分析及分享
该资源说明: cocos2d 棋牌.捕鱼.休闲类游戏<李逵捕鱼>手机端完整源码,网狐6603配套手机版源码,可以选桌子,适合新手学习参考,小编已亲测试,绝对完整可编译手机端,下载后将文件考 ...
- java导出数据EXCEL的工具类(以spring-webmvc-4.0.4jar为基础)
1.本工具类继承于 spring-webmvc-4.0.4jar文件心中的一个类 AbstractExcelView 2.代码如下 package com.skjd.util; import j ...
- C++ MFC棋牌类小游戏day1
好用没用过C++做一个完整一点的东西了,今天开始希望靠我这点微薄的技术来完成这个小游戏. 我现在的水平应该算是菜鸟中的战斗鸡了,所以又很多东西在设计和技术方面肯定会有很大的缺陷,我做这个小游戏的目的单 ...
- JAVA小项目之五子棋
五子棋V1.0 功能: 人人对战,人机对战(初级) 记录双方分数: 主要知识点: 二维坐标系中,各方向坐标的关系及规律. 效果图: 主框架类: package com.gxlee.wzq; /** * ...
- 《Unity3D/2D游戏开发从0到1》正式出版发行
<Unity3D/2D游戏开发从0到1>正式出版发行 去年个人编写的Unity书籍正式在2015年7月正式发行,现在补充介绍一下个人著作.书籍信息: 书籍的名称: <Uni ...
- Java太阳系小游戏分析和源代码
Java太阳系小游戏分析和源代码 -20150809 近期看了面向对象的一些知识.然后跟着老师的解说做了一个太阳系各行星绕太阳转的小游戏,来练习巩固一下近期学的知识: 用到知识点:类的继承.方法的重载 ...
- 消除类游戏(js版)
最近一直在玩一款消灭星星的消除类游戏,周末无聊就用js也写了一遍,感觉玩比写还困难一直玩不到10000分.废话不多说直接上源码. 效果图(ps 页面有点难看木有美工) 代码总共456行,未经过严格测试 ...
- Java:类与继承
Java:类与继承 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大特性都离不开类,只有存在类,才能体现面向对象编程的特点,今天我们就来了解一些类与继承的相关知 ...
随机推荐
- SVG Video 声音图标灰色,无法点击
原因:Video里的视频放的是录屏,怪不得声音图标是灰色的 换成正常有声音的mp4文件,声音图标就正常了
- 旺旺发消息代码,hook旺旺发消息,旺旺发消息call
工作需要写的,不是反汇编旺旺,是千牛的,基于千牛前端架构开发利用千牛发消息的一个组件,可以拿来做千牛客服机器人,可以拿来做千牛自动发货.非协议破解需要挂机,非模拟发送消息,非模拟发送消息,非模拟发送消 ...
- vue3项目部署到Github
此教程适应于以webpack,vue-cli,vite等脚手架构建的vue项目.当然,vue2和vue3都是可以滴. 1. 前提:你的代码库已经提交到Github上 如果没有的话,请到GitHub上新 ...
- CMake构建学习笔记16-使用VS进行CMake项目的开发
目录 1. 概论 2. 详论 2.1 创建工程 2.2 加载工程 2.3 配置文件 2.4 工程配置 2.5 调试执行 3. 项目案例 4. 总结 1. 概论 在之前的系列博文中,我们学习了如何构建第 ...
- 《HelloGitHub》第 102 期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. github.com/521xueweihan/HelloG ...
- 使用阿里云 SpringBoot 仓库初始化项目
本文基于:https://www.bilibili.com/video/BV15b4y1a7yG?p=5&vd_source=cf8900ba33d057d422c588abe5d5290d ...
- USB 端点和管道的区别
在USB体系架构中,经常会混用USB端点和USB管道的概念,包括本人也经常混用.但严格来说它们是两个不同的概念,具体表现在: 端点是USB设备端的概念,是真实的特理设备上的概念,其特性是通过端点描述符 ...
- 2020年度国产数据库:openGauss
根据墨天轮2020年一年的数据库流行度得分趋势变化,我们选出了流行热度增长显著的数据库为2020年度国产数据库.恭喜 华为开源关系型数据库 openGauss 荣获 "2020年度国产数据库 ...
- docker安装过程 - 下载mysql
1. 下载必要的包 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 2. 指定虚拟机去哪里安装 docker sudo ...
- MidJourney新手攻略
目录 MidJourney简介 MidJourney的使用 1. 加入Discord 2. 选择一个频道 3. 使用/imagine来输入提示 4. 等待一分钟左右,会输出四张图 5. 查看结果 Re ...