• 大小: 449KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: Java
  • 标签: java  

资源简介

该项目是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\Gameframe$1.class
     文件        1660  2012-04-06 00:31  网络斗地主\bin\view\Gameframe$2.class
     文件        1581  2012-04-06 00:31  网络斗地主\bin\view\Gameframe$3.class
     文件         684  2012-04-06 00:31  网络斗地主\bin\view\Gameframe$4.class
     文件        4020  2012-04-06 00:31  网络斗地主\bin\view\Gameframe.class
     文件        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个文件信息

评论

共有 条评论