资源简介
该项目是java开发了一个网络流行的网络斗地主实例,对学习java网络编程非常有帮助
代码片段和文件信息
package controller;
import java.io.objectInputStream;
import java.io.objectOutputStream;
import java.net.Socket;
import java.util.Collections;
import java.util.Vector;
import javax.swing.JOptionPane;
import model.Poker;
import view.EndDialog;
import view.GamePanel;
import view.PreParePanel;
public class ClientThread extends Thread {
private GamePanel gamepanel;//游戏开始的面板
private objectInputStream ois;
private objectOutputStream oos;
private String playernames[] = new String[3];// 记录所有玩家的名字
private Integer position;// 当前玩家进入游戏的位置,即第一个进入游戏的为0,第二个加入游戏的为1,第三个加入游戏的为2
private PreParePanel prepare;//游戏开始前的面板
private Boolean stop = false;
public ClientThread(Socket socket GamePanel gamepanel PreParePanel prepare) {
// 该类为游戏线程类,主要
this.gamepanel = gamepanel;
this.prepare = prepare;
for (int i = 0; i < 3; i++) {
playernames[i] = ““;
}
try {
this.oos = new objectOutputStream(socket.getOutputStream());
this.ois = new objectInputStream(socket.getInputStream());
oos.writeobject(this.prepare.getPlayernames()[0]);
position = (Integer) ois.readobject();
this.gamepanel.setPosition(position);
this.gamepanel.setOos(this.oos);
handlePlayerName();
} catch (Exception e) {
e.printStackTrace();
}
}
// 下面的方法用于计算其他出牌玩家在当前玩家面板上的位置
private int countPosition(int n) {
if (position == 0) {
if (n == 2) {
return 1;
} else {
return 2;
}
} else if (position == 1) {
if (n == 2) {
return 2;
} else {
return 1;
}
} else {
if (n == 1) {
return 1;
} else {
return 2;
}
}
}
private void handleLord() throws Exception {
// 处理地主选择
Integer lord = (Integer) ois.readobject();
while (lord != -1) {
if (lord == position) {
gamepanel.showLordChoose(true);
}
lord = (Integer) ois.readobject();
}
gamepanel.setLastpokerIDVector((Vector) ois.readobject());
gamepanel.showLastPoker();
}
private void handleLordIS() throws Exception {
// 如果当前玩家不是地主
Integer lord = (Integer) ois.readobject();
if (this.countPosition(lord) == 1) {
this.gamepanel.getPlayer1pokerIDVector().addAll(
gamepanel.getLastpokerIDVector());
gamepanel.getLordLabels()[1].setVisible(true);
gamepanel.showsSendButton(true);
this.gamepanel.display();
} else {
gamepanel.getLordLabels()[2].setVisible(true);
this.gamepanel.getPlayer2pokerIDVector().addAll(
gamepanel.getLastpokerIDVector());
gamepanel.showsSendButton(true);
this.gamepanel.display();
}
}
private void handleNewGame() throws Exception {
// 处理新建游戏时的数据传输
Vector poker1IDVector = (Vector) ois.readobject();
Vector poker2IDVector = (Vector) ois.readobject();
Vector poker3IDVector = (Vector) ois.readobject();
Collections.sort(poker1IDVector);
Collections.sort(poker2IDVector);
Collections.sort(poker3IDVecto
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-03-08 00:06 网络斗地主\
文件 232 2009-11-12 02:05 网络斗地主\.classpath
文件 391 2009-11-12 02:05 网络斗地主\.project
目录 0 2012-03-08 00:06 网络斗地主\.settings\
文件 4457 2009-11-12 02:05 网络斗地主\.settings\org.eclipse.jdt.core.prefs
目录 0 2012-04-06 00:31 网络斗地主\bin\
目录 0 2012-04-06 00:31 网络斗地主\bin\controller\
文件 7094 2012-04-06 00:31 网络斗地主\bin\controller\ClientThread.class
文件 5835 2012-04-06 00:31 网络斗地主\bin\controller\ServerThread.class
目录 0 2012-04-06 00:31 网络斗地主\bin\model\
文件 1394 2012-04-06 00:31 网络斗地主\bin\model\Poker.class
文件 13935 2012-04-06 00:31 网络斗地主\bin\model\PokerRules.class
目录 0 2012-04-06 00:31 网络斗地主\bin\view\
文件 630 2012-04-06 00:31 网络斗地主\bin\view\AddDialog$1.class
文件 4476 2012-04-06 00:31 网络斗地主\bin\view\AddDialog.class
文件 653 2012-04-06 00:31 网络斗地主\bin\view\EndDialog$1.class
文件 2879 2012-04-06 00:31 网络斗地主\bin\view\EndDialog.class
文件 1004 2012-04-06 00:31 网络斗地主\bin\view\Gamefr
文件 1660 2012-04-06 00:31 网络斗地主\bin\view\Gamefr
文件 1581 2012-04-06 00:31 网络斗地主\bin\view\Gamefr
文件 684 2012-04-06 00:31 网络斗地主\bin\view\Gamefr
文件 4020 2012-04-06 00:31 网络斗地主\bin\view\Gamefr
文件 1160 2012-04-06 00:31 网络斗地主\bin\view\GamePanel$1.class
文件 1163 2012-04-06 00:31 网络斗地主\bin\view\GamePanel$2.class
文件 2074 2012-04-06 00:31 网络斗地主\bin\view\GamePanel$3.class
文件 3050 2012-04-06 00:31 网络斗地主\bin\view\GamePanel$4.class
文件 1593 2012-04-06 00:31 网络斗地主\bin\view\GamePanel$5.class
文件 14586 2012-04-06 00:31 网络斗地主\bin\view\GamePanel.class
文件 1543 2012-04-06 00:31 网络斗地主\bin\view\PokerLabel$1.class
文件 1408 2012-04-06 00:31 网络斗地主\bin\view\PokerLabel.class
文件 2994 2012-04-06 00:31 网络斗地主\bin\view\PreParePanel.class
............此处省略74个文件信息
- 上一篇:奖学金评定系统java写的
- 下一篇:sitemesh jar包
评论
共有 条评论