亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tictactoegamecontrol.java

?? Myjxta的源代碼 基于JXTA的P2P即時通信系統(tǒng)
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
/* * TicTacToePlugin.java * * Created on February 8, 2005, 2:34 AM */package net.jxta.myjxta.plugins.tictactoe;import net.jxta.endpoint.ByteArrayMessageElement;import net.jxta.endpoint.Message;import net.jxta.endpoint.MessageElement;import net.jxta.endpoint.StringMessageElement;import net.jxta.logging.Logging;import net.jxta.myjxta.dialog.Dialog;import net.jxta.myjxta.dialog.DialogListener;import net.jxta.myjxta.dialog.DialogMessage;import javax.imageio.ImageIO;import javax.imageio.ImageReader;import javax.imageio.stream.FileImageInputStream;import javax.imageio.stream.MemoryCacheImageInputStream;import javax.swing.*;import java.awt.*;import java.awt.image.BufferedImage;import java.io.ByteArrayInputStream;import java.io.File;import java.io.FileInputStream;import java.util.*;import java.util.List;import java.util.Timer;import java.util.logging.Level;import java.util.logging.Logger;/** * @author Jeff Moore */public class TicTacToeGameControl implements DialogListener, MoveListener {    /**     * Time to wait for response after a command  message is sent     * out. Default is 10 seconds.     */    private static final long DEFAULT_MESSAGE_ACK_TIMEOUT = 160000;    /**     * Minimum time we will wait till a message ack comes back     */    private static final long MINIMUM_MESSAGE_ACK_TIMEOUT = 2000;    /**     * Timeout waiting for config request     */    private static final long CONFIG_WAIT_TIMOUT = 20000;    /**     * Tag for an element element carrying voice data     */    public static final String TAG_POSITION_DATA = "PositionData";    public static final String TAG_ICON_DATA = "IconData";    public static final String TAG_ICON_TYPE = "IconType";    /**     * Element tag denoting a message containing TTT session command data     */    public static final String TAG_SESSION_COMMAND = "TTTSessionCommand";    /**     * commands sent btn peers managing the TTT session     */    private static final int CONNECT_SLEEP_TIME = 200;    public static final String COMMAND_INVITE_REQUEST = "InviteRequest";    public static final String COMMAND_INVITE_ACCEPT = "InviteAccept";    public static final String COMMAND_START_GAME_REQUEST = "StartGameRequest";    public static final String COMMAND_START_GAME_ACCEPT = "StartGameAccept";    public static final String COMMAND_CONFIG_REQUEST = "ConfigRequest";    public static final String COMMAND_CONFIG_ACCEPT = "ConfigAccept";    public static final String COMMAND_NEW_MOVE = "NewMove";    public static final String COMMAND_NEW_MOVE_ACCEPT = "NewMoveAccept";    public static final String COMMAND_END_GAME_REQUEST = "EndGameRequest";    public static final String COMMAND_END_GAME_ACCEPT = "EndGameAccept";    public static final String COMMAND_DISCONNECT_REQUEST = "DisconnectRequest";    public static final String COMMAND_DISCONNECT_ACCEPT = "DisconnectAccept";    /**     * internal session state     */    public static final int SESSION_DISCONNECTED = 10;    public static final int SESSION_DISCONNECTING = 11;    public static final int SESSION_CONNECTED = 12;    public static final int SESSION_CONNECTING = 13;    public static final int SESSION_STARTING = 20;    public static final int SESSION_STARTED = 30;    public static final int SESSION_ENDING = 40;    public static final int SESSION_ENDED = 50;    public static final int SESSION_PLAYING = 100;    public static final int SESSION_DISCONNECT_REQUEST_SENT = 210;    public static final int SESSION_DISCONNECT_REQUEST_RECEIVED = 220;    public static final int SESSION_DISCONNECT_ACCEPT_SENT = 230;    public static final int SESSION_DISCONNECT_ACCEPT_RECEIVED = 240;    public static final int SESSION_START_REQUEST_SENT = 340;    public static final int SESSION_START_REQUEST_RECEIVED = 350;    public static final int SESSION_START_ACCEPT_SENT = 360;    public static final int SESSION_CONFIG_REQUEST_SENT = 362;    public static final int SESSION_CONFIG_REQUEST_RECEIVED = 363;    public static final int SESSION_CONFIG_ACCEPT_SENT = 364;    public static final int SESSION_CONFIG_ACCEPT_RECEIVED = 365;    public static final int SESSION_START_ACCEPT_RECEIVED = 370;    public static final int SESSION_END_ACCEPT_RECEIVED = 380;    public static final int SESSION_END_ACCEPT_SENT = 390;    public static final int SESSION_END_REQUEST_RECEIVED = 410;    public static final int SESSION_END_REQUEST_SENT = 420;    public static final int SESSION_INVITE_REQUEST_SENT = 430;    public static final int SESSION_INVITE_REQUEST_RECEIVED = 440;    public static final int SESSION_INVITE_ACCEPT_SENT = 450;    public static final int SESSION_INVITE_ACCEPT_RECEIVED = 460;    public int sessionState = SESSION_DISCONNECTED;    public int protocolState = SESSION_DISCONNECTED;    private long messageAckTimeout = DEFAULT_MESSAGE_ACK_TIMEOUT;    private MessageAckThread messageAckThread = null;    private boolean locallyInitiated = false;    private DialogMessage templateMessage = null;    private TicTacToeDialogView tttView = null;    /**     * in bytes     */    public final static long MAX_ICON_SIZE = 60000;    public final static int REMOTE_PLAYER = 2;    public final static int LOCAL_PLAYER = 1;    public final static int GAME_OVER = 1;    public final static int GAME_WAITING = 2;    public final static int GAME_IN_PLAY = 3;    public final static int GAME_LOST = 4;    public final static int GAME_WON = 5;    public final static int GAME_DRAW = 6;    public final static String SESSION_ICON_EXCHANGE = "iconExchange";    private int remotePlayerTotalWins = 0;    private int localPlayerTotalWins = 0;    private int gameState = GAME_OVER;    private int playersTurn = 0;    private final List<String> localPlayerMoves ;    private final List<String> remotePlayerMoves;    private List<String> allMoves = null;    private Object localIconChosenLock = null;    private String remotePlayerName = null;    private Hashtable<Integer, String> sessionStateTable = null;    private Dialog tttDialog = null;    static final Logger LOG = Logger.getLogger(TicTacToeGameControl.class.getName());    private boolean configured = false;    private TimerTask configWaitTimerTask = null;    private Timer generalTimer = null;    private String[] winningSet = null;    private static final String[] draw = {            "A0", "A1", "A2",            "B0", "B1", "B2",            "C0", "C1", "C2"    };    private static final String[][] wins = {            {"A0", "A1", "A2"},            {"B0", "B1", "B2"},            {"C0", "C1", "C2"},            {"A0", "B0", "C0"},            {"A1", "B1", "C1"},            {"A2", "B2", "C2"},            {"A0", "B1", "C2"},            {"A2", "B1", "C0"}    };    /**     * Creates a new instance of TicTacToePlugin     */    public TicTacToeGameControl(final TicTacToeDialogView tttView, final Dialog tttDialog) {        LOG.setLevel(Level.INFO);        if (Logging.SHOW_INFO && LOG.isLoggable(Level.INFO)) {            LOG.info("TicTacToeGameCOntrol constructor");        }        locallyInitiated = tttView.isLocallyInitiated();        this.sessionStateTable = new Hashtable<Integer, String>();        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_CONFIG_ACCEPT_RECEIVED), "SESSION_CONFIG_ACCEPT_RECEIVED");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_CONFIG_ACCEPT_SENT), "SESSION_CONFIG_ACCEPT_SENT");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_CONFIG_REQUEST_RECEIVED), "SESSION_CONFIG_REQUEST_RECEIVED");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_CONFIG_REQUEST_SENT), "SESSION_CONFIG_REQUEST_SENT");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_CONNECTED), "SESSION_CONNECTED");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_CONNECTING), "SESSION_CONNECTING");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_DISCONNECTED), "SESSION_DISCONNECTED");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_DISCONNECTING), "SESSION_DISCONNECTING");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_DISCONNECT_ACCEPT_RECEIVED), "SESSION_DISCONNECT_ACCEPT_RECEIVED");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_DISCONNECT_ACCEPT_SENT), "SESSION_DISCONNECT_ACCEPT_SENT");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_DISCONNECT_REQUEST_RECEIVED), "SESSION_DISCONNECT_REQUEST_RECEIVED");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_ENDED), "SESSION_ENDED");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_DISCONNECT_REQUEST_SENT), "SESSION_DISCONNECT_REQUEST_SENT");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_ENDING), "SESSION_ENDING");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_PLAYING), "SESSION_PLAYING");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_INVITE_ACCEPT_RECEIVED), "SESSION_INVITE_ACCEPT_RECEIVED");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_INVITE_ACCEPT_SENT), "SESSION_INVITE_ACCEPT_SENT");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_INVITE_REQUEST_RECEIVED), "SESSION_INVITE_REQUEST_RECEIVED");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_INVITE_REQUEST_SENT), "SESSION_INVITE_REQUEST_SENT");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_STARTED), "SESSION_STARTED");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_STARTING), "SESSION_STARTING");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_START_ACCEPT_RECEIVED), "SESSION_START_ACCEPT_RECEIVED");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_START_ACCEPT_SENT), "SESSION_START_ACCEPT_SENT");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_START_REQUEST_RECEIVED), "SESSION_START_REQUEST_RECEIVED");        this.sessionStateTable.put(new Integer(TicTacToeGameControl.SESSION_START_REQUEST_SENT), "SESSION_START_REQUEST_SENT");        this.tttView = tttView;        this.tttDialog = tttDialog;        this.localIconChosenLock = new Object();        this.templateMessage = new DialogMessage(this.tttDialog.getGroup()                .getPeerGroup().getPeerName(), null, this.tttDialog.getGroup()                .getPeerGroup().getPeerGroupID().toString(), this.tttDialog                .getGroup().getPeerGroup().getPeerGroupName());        this.localPlayerMoves = new ArrayList<String>();        this.remotePlayerMoves = new ArrayList<String>();        this.allMoves = new ArrayList<String>();        this.tttView.addMoveListener(this);        this.tttDialog.addListener(this);        // wait for pipes to connect        if (this.tttDialog != null) {            new Thread(new Runnable() {                public void run() {                    while (!TicTacToeGameControl.this.tttDialog.isConnected()) {                        try {                            Thread.sleep(CONNECT_SLEEP_TIME);                            if (Logging.SHOW_INFO && LOG.isLoggable(Level.INFO)) {                                LOG.info("Waiting for is connected ");                            }                        }                        catch (final InterruptedException ignored) {                        }                    }                }            }, getClass().getName() + ":isConnected").start();        }        this.generalTimer = new Timer(true);    }    public String getSessionStateString(final int sessionState) {        return this.sessionStateTable.get(new Integer(sessionState));    }    public void initSession() {        if (isLocallyInitiated()) {            if (Logging.SHOW_INFO && LOG.isLoggable(Level.INFO)) {                LOG.info("locally inititated");            }            this.setProtocolState(TicTacToeGameControl.SESSION_INVITE_REQUEST_SENT);            this.sendCommand(TicTacToeGameControl.COMMAND_INVITE_REQUEST, TicTacToeGameControl.COMMAND_INVITE_ACCEPT);            //generalTimer.schedule(roundTripTimerTask, this.ROUND_TRIP_INTERVAL, this.ROUND_TRIP_INTERVAL);        } else {            if (Logging.SHOW_INFO && LOG.isLoggable(Level.INFO)) {                LOG.info("NOT locally inititated");            }        }    }    public void gameControl(final String command, final DialogMessage msg) {        if (COMMAND_INVITE_REQUEST.equals(command)) {            //call should be in disconnected state for this to happen            if (Logging.SHOW_INFO && LOG.isLoggable(Level.INFO)) {                LOG.info("gameControl : received " +                        TicTacToeGameControl.COMMAND_INVITE_REQUEST +                        " received");            }            if (getProtocolState() == TicTacToeGameControl.SESSION_DISCONNECTED) {                setProtocolState(TicTacToeGameControl.SESSION_INVITE_REQUEST_RECEIVED);                this.sendCommand(TicTacToeGameControl.COMMAND_INVITE_ACCEPT);                setProtocolState(TicTacToeGameControl.SESSION_INVITE_ACCEPT_SENT);            } else {                if (Logging.SHOW_INFO && LOG.isLoggable(Level.INFO)) {                    LOG.info("expected " +                            TicTacToeGameControl.SESSION_DISCONNECTED + " got " +                            command);                }            }        } else if (COMMAND_INVITE_ACCEPT.equals(command)) {            if (Logging.SHOW_INFO && LOG.isLoggable(Level.INFO)) {                LOG.info("gameControl : received " +                        TicTacToeGameControl.COMMAND_INVITE_ACCEPT +                        " received");            }            if (getProtocolState() == TicTacToeGameControl.SESSION_INVITE_REQUEST_SENT) {                updateAckThread(command);                setProtocolState(TicTacToeGameControl.SESSION_INVITE_ACCEPT_RECEIVED);                //we wait on user to config and send config out            } else {                if (Logging.SHOW_INFO && LOG.isLoggable(Level.INFO)) {                    LOG.info("expected " +                            TicTacToeGameControl.SESSION_INVITE_REQUEST_SENT +                            " got " + command);                }            }        } else if (COMMAND_CONFIG_REQUEST.equals(command)) {            if (Logging.SHOW_INFO && LOG.isLoggable(Level.INFO)) {                LOG.info("gameControl : received " +                        TicTacToeGameControl.COMMAND_CONFIG_REQUEST +                        " received");            }            if (getProtocolState() == TicTacToeGameControl.SESSION_INVITE_ACCEPT_SENT) {                parseConfigMessage(msg);                setProtocolState(TicTacToeGameControl.SESSION_CONFIG_REQUEST_RECEIVED);                localActionConfigRequestReceived(msg);                // wait on user to send config accept            } else {                if (Logging.SHOW_INFO && LOG.isLoggable(Level.INFO)) {                    LOG.info("expected " +                            TicTacToeGameControl.SESSION_INVITE_ACCEPT_SENT +                            " - got " + command);                }            }        } else if (COMMAND_CONFIG_ACCEPT.equals(command)) {            if (Logging.SHOW_INFO && LOG.isLoggable(Level.INFO)) {                LOG.info("gameControl : received " +                        TicTacToeGameControl.COMMAND_CONFIG_ACCEPT +                        " received");            }            if (getProtocolState() == TicTacToeGameControl.SESSION_CONFIG_REQUEST_SENT) {                updateAckThread(command);                parseConfigMessage(msg);                setProtocolState(TicTacToeGameControl.SESSION_CONFIG_ACCEPT_RECEIVED);                localActionConfigAcceptReceived(msg);                setProtocolState(TicTacToeGameControl.SESSION_START_REQUEST_SENT);                sendCommand(TicTacToeGameControl.COMMAND_START_GAME_REQUEST, TicTacToeGameControl.COMMAND_START_GAME_ACCEPT);                /** remote player will make first move */            } else {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
高清在线不卡av| 亚洲永久免费视频| 国产在线视频一区二区| 精品乱人伦小说| 国产在线精品一区二区不卡了 | 蜜臀av一区二区在线免费观看| 欧美日韩一二三| 日本一区中文字幕| 精品国产亚洲在线| 成a人片亚洲日本久久| 一区二区三区免费看视频| 欧美日韩黄色影视| 九一九一国产精品| 国产精品你懂的在线| 在线观看日韩av先锋影音电影院| 偷拍日韩校园综合在线| 久久久午夜电影| 99国产精品99久久久久久| 首页国产欧美久久| 亚洲精品一区二区三区四区高清| 成人午夜电影小说| 石原莉奈一区二区三区在线观看| 精品精品国产高清a毛片牛牛| 成人深夜福利app| 午夜激情一区二区三区| 国产亚洲成aⅴ人片在线观看 | 欧洲精品视频在线观看| 免费人成黄页网站在线一区二区 | 国产酒店精品激情| **网站欧美大片在线观看| 欧美精品在线一区二区三区| 韩国精品主播一区二区在线观看 | 色一情一乱一乱一91av| 人妖欧美一区二区| 亚洲三级电影全部在线观看高清| 欧美理论在线播放| aaa国产一区| 久久99在线观看| 亚洲一区二区三区视频在线播放| 久久美女艺术照精彩视频福利播放 | 色拍拍在线精品视频8848| 久久99精品一区二区三区| 亚洲美女视频一区| 国产视频一区在线播放| 欧美人狂配大交3d怪物一区| av成人老司机| 国产高清在线观看免费不卡| 日韩激情视频在线观看| 亚洲精品欧美激情| 国产精品免费av| 精品福利一区二区三区 | 欧美日韩国产电影| 99国产一区二区三精品乱码| 韩国视频一区二区| 麻豆91小视频| 亚洲电影在线免费观看| 亚洲欧美日韩国产成人精品影院| 国产午夜亚洲精品不卡| 欧美zozozo| 91麻豆精品国产91久久久使用方法| 91蜜桃网址入口| 成人动漫视频在线| 成人午夜免费av| 成人午夜大片免费观看| 国产经典欧美精品| 国产乱人伦精品一区二区在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 日韩制服丝袜先锋影音| 首页综合国产亚洲丝袜| 午夜伦欧美伦电影理论片| 一区二区三区免费网站| 亚洲精品高清在线| 亚洲在线中文字幕| 亚洲自拍偷拍av| 亚洲国产日韩在线一区模特| 午夜免费久久看| 日韩成人免费看| 麻豆91在线播放| 国产一区二区三区综合| 国产sm精品调教视频网站| 国产成人精品三级| 成人av片在线观看| 色婷婷综合五月| 欧美性大战xxxxx久久久| 欧美日韩在线直播| 欧美一区二区三区免费观看视频| 丁香网亚洲国际| 99久久精品免费看| 欧美写真视频网站| 91精品久久久久久蜜臀| 日韩精品一区二区三区在线播放| 亚洲精品一线二线三线无人区| 久久蜜臀精品av| 亚洲欧洲日产国码二区| 亚洲一区免费在线观看| 日韩精品视频网| 国产乱人伦偷精品视频免下载| 丰满白嫩尤物一区二区| 91视频.com| 欧美精品在线视频| 久久影院视频免费| **性色生活片久久毛片| 成人黄色小视频| 99视频精品全部免费在线| 欧美午夜精品免费| 日韩精品一区二区三区在线| 国产精品久久久久久久久搜平片 | 一区二区三区中文字幕在线观看| 亚洲成人一区在线| 国产一区二区精品久久99| 色综合久久久久综合体| 日韩一级高清毛片| 中文字幕在线不卡| 秋霞电影一区二区| av在线不卡免费看| 91精品国产综合久久精品| 久久九九久久九九| 亚洲高清免费在线| 国产成人午夜电影网| 欧美日韩高清一区二区不卡| 久久久久亚洲蜜桃| 亚洲午夜在线电影| 国产精品99久久久久久宅男| 欧美日韩午夜精品| 国产精品久久久久7777按摩 | 久久66热偷产精品| 色婷婷激情久久| 精品国产乱子伦一区| 亚洲图片欧美视频| 成人app网站| 亚洲精品一区二区三区福利| 亚洲成人精品在线观看| 成人高清视频在线| 欧美白人最猛性xxxxx69交| 亚洲精品美国一| 岛国精品在线播放| 2014亚洲片线观看视频免费| 成人精品小蝌蚪| 欧美一区二区三区免费视频| 亚洲欧美自拍偷拍色图| 国产剧情一区二区三区| 欧美一级午夜免费电影| 亚洲午夜久久久久久久久电影院 | av中文字幕亚洲| 欧美变态tickle挠乳网站| 亚洲国产日产av| 色综合天天综合网天天看片| 国产亚洲精品bt天堂精选| 久久精品国产一区二区三 | 7777精品伊人久久久大香线蕉经典版下载 | 国产色婷婷亚洲99精品小说| 日韩二区三区在线观看| 在线观看www91| 亚洲日本中文字幕区| 粉嫩av亚洲一区二区图片| 日韩精品综合一本久道在线视频| 亚洲va韩国va欧美va| 色婷婷久久久亚洲一区二区三区| 中文字幕二三区不卡| 国产精品99久| 久久亚洲精华国产精华液 | 亚洲日本韩国一区| 99国产精品久久久久久久久久| 久久久www成人免费无遮挡大片| 美女视频黄久久| 亚洲成av人片一区二区梦乃| 色老汉av一区二区三区| 亚洲视频在线一区| 一本大道综合伊人精品热热 | 色婷婷综合久久| 亚洲欧美激情一区二区| 色综合天天综合狠狠| 有码一区二区三区| 欧美午夜精品理论片a级按摩| 亚洲成av人片一区二区梦乃| 欧美美女一区二区| 偷拍日韩校园综合在线| 欧美一二三区在线| 精品一区二区三区影院在线午夜 | 久久精品亚洲精品国产欧美| 国产乱色国产精品免费视频| 中文字幕av一区 二区| 不卡视频免费播放| 亚洲码国产岛国毛片在线| 欧美视频一区二区三区四区| 婷婷开心激情综合| 久久先锋资源网| av一二三不卡影片| 亚洲国产日日夜夜| 欧美大度的电影原声| 国产精品亚洲午夜一区二区三区 | 337p粉嫩大胆噜噜噜噜噜91av| 国产一区二区在线观看视频| 亚洲国产精品激情在线观看| 色综合久久久久久久| 日韩av中文在线观看| 久久99久久久欧美国产| 国产性色一区二区| 在线观看三级视频欧美| 久久成人精品无人区|