资源简介
基于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
相关资源
- 五子棋(GoBang) 安卓APP 源码
- j2me 教学从无到有很详细讲解
- 用okhttp实现webSocket长连接
- STM32五子棋游戏
- 蓝牙五子棋 安卓
- VC五子棋源代码 想要的速度下哦 多线
- 仿微信聊天软件Socket实现包含客户端
- J2ME教程 ppt
- node.js+socket.io+websocket使用demo
- zigbee基于嵌入式Linux的网关与Socket端口
- GPRS数据采集上位机软件
- 五子棋局域网对战 项目源码
- socket编程基础编写基于GUI界面的SMTP客
- alphaZero五子棋
- websocket 1V1聊天室
- 手机游戏策划案
- 中国象棋和五子棋的算法讲解和vc源代
- LhSocket5Net1.0
- 三菱socket调试文档说明
- 人机博弈 游戏源码解析以及基本搜索
- Socket实现FTP功能
- 考试系统程序包括客户端服务端sock
- socket网络编程,可以实现聊天系统,
- 6款H5小游戏源码包含有五子棋 3d魔方
- 简单的在线聊天室实现群聊和单聊,
- e语言-58自动回复招聘方源码 websocke
- 易语言使用LhSocket5Net创建Socket5服务器
- libwebsockets-master
- winsocket 通讯程序
- LabVIEW五子棋制作教程
评论
共有 条评论