云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 手机基于WEB服务器的网络象棋游戏源代码(含服务器端)

手机基于WEB服务器的网络象棋游戏源代码(含服务器端)

  • 62 次阅读
  • 3 次下载
  • 2025/6/23 4:21:06

Game.java package com.lzw; import javax.microedition.lcdui.Choice; import javax.microedition.lcdui.Command;

import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display;

import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.List; import javax.microedition.midlet.MIDlet;

import javax.microedition.midlet.MIDletStateChangeException; public class Game extends MIDlet implements CommandListener { private Client client; public static Display display; private GameCanvas canvas; private List playerList; private int[][] desks; private int trySeat, tryDesk; private Command okCommand; public Game() { display = Display.getDisplay(this); playerList = new List(\桌面列表\, Choice.EXCLUSIVE); Command exitCommand = new Command(\退出\, Command.EXIT, 0); playerList.addCommand(exitCommand); okCommand = new Command(\落座\, Command.OK, 0); playerList.addCommand(okCommand); playerList.setCommandListener(this); display.setCurrent(playerList); client = new Client(this); } protected void startApp() throws MIDletStateChangeException { } protected void pauseApp() { } protected void destroyApp(boolean p0) throws MIDletStateChangeException { client.sendMessage(\); display.setCurrent(null); } public void commandAction(Command c, Displayable s) { if (c.getCommandType() == Command.EXIT) { client.sendMessage(\); try { destroyApp(false); notifyDestroyed(); } catch (Exception e) { e.printStackTrace(); } } else if (c == okCommand) { if (playerList.getSelectedIndex() >= 0) { try { String info = playerList.getString(playerList .getSelectedIndex()); int index1 = info.indexOf(\); int d = Integer.parseInt(info.substring(0, index1)); int index2 = info.indexOf(\, index1 + 1); int d1 = Integer.parseInt(info

.substring(index1 + 1, index2)); int d2 = Integer.parseInt(info.substring(index2 + 1)); if (d1 == 0 || d2 == 0) { if (d1 == 0) trySeat = 0; else trySeat = 1; tryDesk = d; if (canvas == null) canvas = new GameCanvas(this, client); else canvas.init(); client.sendMessage(\ + d + \ + trySeat); } } catch (Exception exc) { System.out.println(\); exc.printStackTrace(); } } } }

public GameCanvas getCanvas() { return canvas; }

public void initialize() { canvas = null; }

public void takeSeat() { // 处理落座信息的方法 if (canvas == null) // 如果游戏界面对象未初始化 canvas = new GameCanvas(this, client); // 初始化游戏界面对象 else canvas.init(); // 调用游戏界面的init()方法 canvas.setSeatPos(trySeat); // 设置玩家座位 canvas.setDeskIndex(tryDesk); // 设置玩家卓号 display.setCurrent(canvas); // 显示游戏界面 }

public void updateDesk(String str) { // 更新桌面 int index1 = str.indexOf(\); int index2 = str.indexOf(\, index1 + 1); int index3 = str.indexOf(\, index2 + 1); try { int d = Integer.parseInt(str.substring(index1 + 1, index2)); desks[d][0] = Integer.parseInt(str.substring(index2 + 1, index3)); desks[d][1] = Integer.parseInt(str.substring(index3 + 1)); playerList.set(d, d + \ + desks[d][0] + \ + desks[d][1], null); } catch (Exception exc) { } }

public List getPlayerList() { return playerList; }

public void setDesks(String string) { for (int i = 0; i < playerList.size(); i++) playerList.delete(i); int index1, index2, index3, index4, index0;

}

}

index1 = string.indexOf(\);

index2 = string.indexOf(\, index1 + 1);

int desknum = Integer.parseInt(string.substring(index1 + 1, index2)); desks = new int[desknum][4]; index0 = index2; int counter = 0;

while (counter < desknum) { index1 = string.indexOf(\, index0 + 1); index4 = string.indexOf(\, index1 + 1); desks[counter][0] = Integer.parseInt(string.substring(index0 + 1, index1)); if (index4 > 0) desks[counter][1] = Integer.parseInt(string.substring( index1 + 1, index4)); else { string = string.trim(); desks[counter][1] = Integer.parseInt(string .substring(index1 + 1)); } playerList.append(counter + \ + desks[counter][0] + \ + desks[counter][1], null); index0 = index4; counter++; }

Client.java package com.lzw; import java.io.DataInputStream; import java.io.InputStream;

import javax.microedition.io.Connector;

import javax.microedition.io.HttpConnection; public class Client implements Runnable { private Game midlet; HttpConnection dc; private String port = \; public Client(Game mid) { midlet = mid; sendMessage(\); System.out.println(\); new Thread(this).start(); } String urlReceive; String urlSend; public void run() { while (true) { StringBuffer strbuf = new StringBuffer(); urlReceive = \ + port; try { Thread.sleep(1000); dc = (HttpConnection) Connector.open(urlReceive, Connector.READ); InputStream is = null; is = dc.openInputStream(); int len = (int) dc.getLength();

// DataInputStream dis = new DataInputStream(is); if (len > 0) { byte[] data = new byte[len]; dis.readFully(data); for (int i = 0; i < data.length; i++) { strbuf.append((char) data[i]); } } else { int ch; len = 0; while ((ch = dis.read()) != -1) { strbuf.append((char) ch); len++; } } dis.close(); is.close(); dc.close(); String s = strbuf.toString().trim(); if (s != null && !s.equals(\)) { if(!s.equals(\)) System.out.println(\+s); if (s.startsWith(\)) { midlet.setDesks(s); } else if (s.startsWith(\)) { midlet.takeSeat(); } else if (s.startsWith(\)) { midlet.updateDesk(s); } else if (s.startsWith(\)) { System.out.println(\ } else if (s.startsWith(\)) { if (port.equals(\)) { System.out.println(\); port = s; } } else if (s.startsWith(\)) { System.out .println(\); } else { if (midlet.getCanvas() != null) midlet.getCanvas().receiveMessage(s); else System.out.println(\ + s); } } } catch (Exception ex) { ex.printStackTrace(); } } }

public void sendMessage(String message) { System.out.println(\ + message); try { urlSend = \

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

Game.java package com.lzw; import javax.microedition.lcdui.Choice; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.List; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeExce

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com