资源简介
基于socket的联网五子棋游戏源码,好东西!!!

代码片段和文件信息
package com.j2medev.chapter5;
import java.util.ArrayList;
import java.util.List;
public class GoBangRoom implements Room {
private List players = new ArrayList();
public GoBangRoom() {
}
//最多容纳两个用户
public int maxPlayer() {
return 2;
}
public boolean canJoin() {
return players.size()<2;
}
//添加一个用户,如果达到两个用户则开始游戏
public synchronized void addPlayer(Session s) {
players.add(s);
s.setSessionId(players.size());
s.setRoom(this);
s.start();
if(players.size()== maxPlayer()){
//开始游戏,最先加入的用户先走
startGame(1);
}
}
private void clean(){
for(int i = 0;iyers.size();i++){
try{
((Session)players.get(i)).join();
}catch(InterruptedException ex){
ex.printStackTrace();
}
}
for(int i = 0;iyers.size();i++){
((Session)players.get(i)).closeSession();
}
//等session结束后,清除房间
players.clear();
System.out.println(“the room is clear“);
}
public void startGame(int id){
//休眠1s
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
//让客户端起动
for(int i = 0;iyers.size();i++){
((Session)players.get(i)).startGame(id);
}
}
//代理客户端发送过来的数据
public synchronized void delegate(int data) {
int type = (data&0xFF000000)>>24;
int id = (data&0x00FF0000)>>16;
for(int i=0;iyers.size();i++){
Session s = (Session)players.get(i);
if(type == Protocol.QUIT || type == Protocol.WIN){
try {
//发送给所有用户
Thread.sleep(500);
s.send(data);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}else if(type == Protocol.STEP){
if(s.getSessionId() != id){
//对手走了一步,发给另一个用户
s.send(data);
}
}
}
//准备清理房间了
if(type == Protocol.QUIT || type == Protocol.WIN){
new Thread(){
public void run(){
clean();
}
}.start();
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 510 2010-08-29 10:01 Protocol.java
文件 265 2010-08-29 10:01 Room.java
文件 3014 2010-08-29 10:01 Session.java
文件 2618 2010-08-29 10:01 GoBangRoom.java
文件 1939 2010-08-29 10:01 GoBangServer.java
----------- --------- ---------- ----- ----
8346 5
相关资源
- 通信软件的具体实例──基于Socket的
- 用Socket编程实现FTP
- websocket实现一对一聊天
- 五子棋C 源代码
- 代码客:G-TcpServer(IOCP) 1.0 正式版及
- SOCKET 网络编程 计算机网络 作业 客户
- 五子棋游戏实现悔棋功能
- linux 网络实验 ftp程序
- 用Socket写的简易FTP服务器和客户端
- socket小工具(可方便建立TCP UDP的soc
- socket客户端源码
- 基于CSocket的多人聊天室
- socket文件传输源码
- Socket自制系统
- labview设计的五子棋游戏(源码+文档)
- HP用SOCKET实现(客户端---服务端)
- zeromq的windows版本安装包
- STM32分别以串口硬件SPI模拟并口驱动
- 超强五子棋软件 奕心2015
- AI五子棋训练棋谱
- 最强五子棋
- J2ME手机应用项目开发实践 源代码
- j2me手机飞机游戏
- J2ME太空之战源代码
- 基于S3C2410的触摸屏五子棋游戏毕业设
- 《TCP/IP:协议分析与应用编程》课后
- linux下基于socket和curses的双人弹球游戏
- J2ME的RPG游戏Demo
- 计算机网络socket编程实验
- linux下socket can 编程详解
评论
共有 条评论