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

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

?? serveoneclient.java

?? Java編寫的一個可運行游戲 包括人機對戰和人人對戰
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
     * @param str
     */
    public String arrayToString(char [] arr){
        int i=0,length=0;
        while(arr[i]!='\0' && i<50){
            i++;
        }
        length=i;
        char [] ss = new char[length];
        for(i=0;i<length;i++){
            ss[i]=arr[i];
        }
        String str = new String(ss);
        return str;
        //System.out.println("arraytoString "+str+"length = "+length);
    }

    /**
     * add new player to all client's Player List
     * ... read server player list and send msg to everyone of them
     * @param player
     */
    public void sendNewPlayer(Message player){
        Player pp=null;
        player.type=9;
//        System.out.println("send new Player ...");
        for(int i=0;i<Server.playerList.size();i++){
            pp=(Player)Server.playerList.get(i);
            try{
                if(pp.self!=null){//send message to all but itself
                    //System.out.println(pp.self+" add list "+player.msg[0]+"i = "+i);
                    pp.selfSocket.out.writeObject(player);
                }
            }catch(IOException e){
                e.printStackTrace();
            }
        }
    }
    /**
     * a player end a game and wait for a new one
     * @param msg
     */
    public void playerRefresh(Message player){
        Player ppo = new Player();
        Player pp = null;
        ppo.color = player.color;
        ppo.self = new String(player.msg);
        ppo.selfSocket = this;
        Server.playerList.add(ppo);

        for(int i=0;i<Server.playerList.size();i++){
            pp = (Player)Server.playerList.get(i);
            if(this.equals(pp.selfSocket)==false){
                Message msg = new Message();
                strToCharArray(pp.self, msg.msg);
                msg.type = 9;
                msg.color = pp.color;
//                System.out.println("refresh " + pp.self + "serverlist size " +
  //                                 Server.playerList.size());
                try {
                    this.out.writeObject(msg);
                }
                catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        Message ms = new Message();
        strToCharArray(ppo.self, ms.msg);
        ms.type=10;
        try{
            this.out.writeObject(ms);
        }catch(IOException e){
            e.printStackTrace();
        }
        //Message ms = new Message();
        player.type=10;
        for(int i=0 ;i<Server.playerList.size();i++){
            pp = (Player)Server.playerList.get(i);
            if(this.equals(pp.selfSocket)!=true){
                try{
                    pp.selfSocket.out.writeObject(player);
                }catch(IOException e){
                    e.printStackTrace();
                }

            }
        }

    }
    /**
     * add the new player to server playerList
     * @param player
     */
    public void addPlayer(Message player){
        int i=0;
        Player pp=null,tp=null;

        for(i=0;i<Server.playerList.size();i++){
            pp=(Player)Server.playerList.get(i);
            if(this.equals(pp.selfSocket)==true){
                //System.out.println("match socket ok and send to itself...");
                pp.self = new String(player.msg);
                try{
                    for (int j = 0; j < Server.playerList.size(); j++) {
                        Message temp = new Message();
                        tp = (Player) Server.playerList.get(j);
                        if (tp.self != null) {
                            strToCharArray(tp.self, temp.msg);
                            //temp.coordinateX=(byte)j;
                            temp.type = 10; //reply for type==1
                            //System.out.println("host "+pp.self+" add list to client name = "+temp.coordinateX+temp.msg[0]);
                            pp.selfSocket.out.writeObject(temp);
                        }
                    }
                   // out.writeObject(player);
                }catch(IOException e){
                    e.printStackTrace();
                }
                break;
            }
        }/*
        System.out.print("welcome ");
        int k=0;
        while(true){
            if(player.msg[k]!='\0')
                System.out.print(player.msg[k++]);
            else break;
        }
        System.out.println();*/
        //System.out.println(" at "+pp.selfSocket.socket.toString());
    }
    public Socket getSocket(){
        return socket;
    }
    /**
     * check whether msg sender is win
     * type=6 msg = winner 's name
     * @param msg
     */
    public void checkVictory(Message msg){

    }
    /**
     * type = 2 ,(msg.coordinateX,msg.coordinateY).msg.color
     * @param msg
     */
    public void putChessman(Message msg){
        Group gg = new Group();
        ServeOneClient soc=null;
        String tName=null;
        int color=0;
        // modify server board
        for(int i=0;i<Server.groupList.size();i++){
            gg = (Group)Server.groupList.get(i);
            if(this.equals(gg.selfSocket)==true){
                soc = gg.playerSocket;
                tName = new String(gg.player);
                color = gg.selfColor;
                break;
            }
            if(this.equals(gg.playerSocket)==true){
                soc = gg.selfSocket;
                tName = new String(gg.self);
                color = gg.playerColor;
                break;
            }
        }
        gg.board[msg.coordinateX][msg.coordinateY]=color;

        // whether someone win the game
        if(judge(gg,msg.coordinateX,msg.coordinateY)==true){// a man win
            // tell the two and remove them form the group list
            try{
                msg.type=6;  // win the game
                this.out.writeObject(msg);// tell this ,he win the game
                msg.type=17; // failed in the game
                soc.out.writeObject(msg); // tell soc ,he failed
//                System.out.println("send failed to "+tName);
            }catch(IOException e){
                e.printStackTrace();
            }
            Server.groupList.remove(gg); // remove from list
            return;
        }
        // send msg to another player
        try{
            //System.out.println("server put chess man "+msg.coordinateX+","+msg.coordinateY);
            soc.out.writeObject(msg);
        }catch(IOException e){
            e.printStackTrace();
        }

    }
    /**
     * judge if a man win the game
     * @param gg a group for judge
     * @param x  the newest kid's x coordinate
     * @param y  the newest kid's y coordinate
     * @return
     */
    private boolean judge(Group gg,int x,int y){
        int i = 0, j = 0, count = 0;
        int color=gg.board[x][y];
        // x direction
        for (i = 0, count = 0; x - i >= 0 && i < 5; i++) {
            if (color == gg.board[x - i][y]) {
                count++;
            }
            else {
                break;
            }
//          System.out.println("( "+x+" , "+y+" )"+"count = "+count);
            if (count == 5)
                return true;
        }
        for (i = 1; x + i < 15 && i < 5; i++) {
            if (color == gg.board[x + i][y]) {
                count++;
            }
            else {
                break;
            }
            if (count == 5)
                return true;
        }
        // y direction
        for (i = 0, count = 0; y - i >= 0 && i < 5; i++) {
            if (color == gg.board[x][y - i]) {
                count++;
            }
            else {
                break;
            }
//            System.out.println("( "+x+" , "+y+" )"+"count = "+count);
            if (count == 5)
                return true;
        }
        for (i = 1; y + i < 15 && i < 5; i++) {
            if (color == gg.board[x][y + i]) {
                count++;
            }
            else {
                break;
            }
//        System.out.println("( "+x+" , "+y+" )"+"count = "+count);
            if (count == 5)
                return true;
        }
        // '\' direction
        for (i = 0, count = 0; x - i >= 0 && y - i >= 0 && i < 5; i++) {
            if (color == gg.board[x - i][y - i]) {
                count++;
            }
            else {
                break;
            }
//            System.out.println("( "+x+" , "+y+" )"+"count = "+count);
            if (count == 5)
                return true;
        }
        for (i = 1; x + i < 15 && y + i < 15 && i < 5; i++) {
            if (color == gg.board[x + i][y + i]) {
                count++;
            }
            else {
                break;
            }
//          System.out.println("( "+x+" , "+y+" )"+"count = "+count);
            if (count == 5) {
                return true;
            }
        }
        // '/' direction
        for (i = 0, count = 0; x + i < 15 && y - i >= 0 && i < 5; i++) {
            if (color == gg.board[x + i][y - i]) {
                count++;
            }
            else {
                count = 0;
            }
//          System.out.println("( "+x+" , "+y+" )"+"count = "+count);
            if (count == 5)
                return true;
        }
        for (i = 1; x - i >= 0 && y + i < 15 && i < 5; i++) {
            if (color == gg.board[x - i][y + i]) {
                count++;
            }
            else {
                break;
            }
//            System.out.println("( "+x+" , "+y+" )"+"count = "+count);
            if (count == 5) {
                return true;
            }
        }
        return false;
    }
    /**
     * judge if a man win the game
     * @param gg a group for judge
     * @param x  the newest kid's x coordinate
     * @param y  the newest kid's y coordinate
     * @return
     */
/*    private boolean judge(Group gg,int x,int y){

        int borderX=0,borderY=0,counter=0,i=0;
        int color=gg.board[x][y];
        if(x-4<0)            borderX=0;
        else            borderX=x-4;
        if(y-4<0)            borderY=0;
        else            borderY=y-4;


        // x direction
        while(borderX+i<x+5 && borderX+i<15){
            if(color==gg.board[borderX+i][y]){
                counter++;
            }else{
                counter=0;
            }
            i++;
            if(counter==5){
//                System.out.println("color "+color+gg.board[borderX+i][y]+"return form x "+(borderX+i)+","+y+"x,y"+x+","+y);
                return true;
            }
        }
        // y direction
        i=0;counter=0;
        while(borderY+i<y+5 && borderY+i<15){
            if(color==gg.board[x][borderY+i]){
                counter++;
            }else{
                counter=0;
            }
            i++;
            if(counter==5){
//                System.out.println("color "+color+gg.board[x][borderY+i]+"return form y "+x+","+(borderY+i)+","+y+"x,y"+x+","+y);
                return true;
            }
        }
        // '\' direction
        if(borderX>borderY)
            borderX = x-(y-borderY);
        else
            borderY = y-(x-borderX);
        i=0;counter=0;
        while(borderX+i<x+5 && borderY+i<y+5 && borderY+i<15&&borderX+i<15){
            if(color==gg.board[borderX+i][borderY+i]){
//                System.out.println("coordinate  \\  "+(borderX+i)+","+(borderY+i)+","+y+"x,y"+x+","+y);
                counter++;
            }else{
                counter=0;
            }
            i++;
            if(counter==5){
//                System.out.println("return form  \\  "+(borderX+i)+","+(borderY+i)+","+y+"x,y"+x+","+y);
                return true;
            }
        }
        // '/' direction
        if(x+4>=15){
            borderX = 14;
        }
        else{
            borderX = x+4;
        }
        if(borderX-x<y-borderY){
            borderY = y - (borderX - x);
        }
        else{
            borderX = x + (y - borderY);
        }
        i=0;counter=0;
        while(borderX-i>x-5 && borderY+i<y+5 && borderX-i>=0 && borderY+i<15){
            if(color==gg.board[borderX-i][borderY+i]){
                counter++;
            }else{
                counter=0;
            }
            i++;
            if(counter==5){
//                System.out.println("color "+color+gg.board[borderX-i][borderY+i]+"return form '/'   "+(borderX-i)+","+(borderY+i)+","+y+"x,y"+x+","+y);
                return true;
            }
        }
        return false;
    }
*/

} ///:-)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.欧美亚洲| 久久精品亚洲精品国产欧美| 日韩精品一区在线观看| 亚洲欧美怡红院| 久久99久久久欧美国产| 99久久99久久精品免费看蜜桃| 欧美一区二区三区免费大片| 自拍av一区二区三区| 91亚洲国产成人精品一区二区三 | 亚洲美女视频在线| 国精产品一区一区三区mba桃花 | 91精选在线观看| 亚洲婷婷国产精品电影人久久| 久久成人精品无人区| 欧美日韩在线精品一区二区三区激情| 中文字幕不卡三区| 极品少妇xxxx精品少妇偷拍| 欧美日韩国产bt| 亚洲一区免费在线观看| 99精品1区2区| 国产精品剧情在线亚洲| 国产成人综合自拍| 久久久综合激的五月天| 韩国一区二区三区| 欧美一区二区在线免费观看| 亚洲成人免费视| 欧美日韩精品一区二区三区四区| 亚洲免费观看在线视频| 91亚洲精品久久久蜜桃| 1区2区3区欧美| 91女厕偷拍女厕偷拍高清| 中文字幕中文字幕在线一区| 国产丶欧美丶日本不卡视频| 日本一区二区三级电影在线观看| 国产精品影视天天线| 久久久国产精华| 国产精品白丝jk黑袜喷水| 久久精品欧美日韩精品 | 色婷婷国产精品| 亚洲精品成人在线| 欧美亚洲禁片免费| 日韩精品欧美精品| 欧美成人欧美edvon| 精品综合久久久久久8888| 日韩精品一区二区三区视频在线观看| 美女mm1313爽爽久久久蜜臀| 26uuu精品一区二区三区四区在线| 国内精品写真在线观看| 欧美激情在线一区二区三区| 不卡视频在线看| 亚洲精品久久久蜜桃| 欧美日韩一级黄| 久久99精品久久久久婷婷| 久久久久高清精品| 91网上在线视频| 图片区小说区区亚洲影院| 欧美大胆一级视频| 成人免费不卡视频| 亚洲韩国精品一区| 日韩欧美亚洲另类制服综合在线| 国产福利一区在线观看| 亚洲免费看黄网站| 日韩区在线观看| 成人激情电影免费在线观看| 亚洲国产中文字幕| 欧美精品一区二| 色婷婷av一区| 久久se这里有精品| 国产精品成人一区二区艾草| 在线免费精品视频| 精久久久久久久久久久| 亚洲特黄一级片| 欧美一区二区免费| 91小视频在线| 久久精品国产第一区二区三区| 中文字幕一区二区视频| 777久久久精品| 成人av片在线观看| 美国三级日本三级久久99| 国产精品黄色在线观看| 日韩一级完整毛片| 色诱亚洲精品久久久久久| 久久不见久久见免费视频7| 一区二区三区丝袜| 国产亚洲成av人在线观看导航| 欧美日韩中文字幕精品| 成人免费视频一区二区| 麻豆一区二区三区| 亚洲一区二区三区不卡国产欧美| 久久久久久99久久久精品网站| 欧美日韩亚洲综合在线| av网站一区二区三区| 国产一区在线不卡| 日韩av电影免费观看高清完整版 | 日韩国产欧美在线播放| 亚洲男帅同性gay1069| 久久嫩草精品久久久久| 91精品黄色片免费大全| 欧美性做爰猛烈叫床潮| 99视频精品在线| 国产iv一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 在线亚洲人成电影网站色www| 精品一区二区av| 免费成人深夜小野草| 午夜电影网一区| 亚洲综合精品久久| 亚洲精品国产a久久久久久| 国产精品久久久久久亚洲伦| 久久综合久久久久88| 欧美成人一区二区三区片免费 | 六月丁香综合在线视频| 日韩在线一区二区| 丝瓜av网站精品一区二区| 亚洲成人三级小说| 日韩中文字幕不卡| 日日骚欧美日韩| 青青草国产精品亚洲专区无| 日韩精品一级中文字幕精品视频免费观看| 亚洲综合小说图片| 亚洲电影在线免费观看| 午夜一区二区三区视频| 日韩中文欧美在线| 日本成人在线电影网| 日韩精品欧美精品| 激情成人综合网| 福利电影一区二区三区| av中文字幕在线不卡| 在线观看网站黄不卡| 欧美美女直播网站| 精品国产百合女同互慰| 欧美国产97人人爽人人喊| 亚洲视频 欧洲视频| 亚洲无人区一区| 久久国产免费看| 白白色亚洲国产精品| 91精品福利在线| 欧美一区二区三区四区在线观看 | 国产精品黄色在线观看| 亚洲最新视频在线观看| 免费黄网站欧美| 成人黄色在线网站| 欧美日韩国产精品自在自线| 2021久久国产精品不只是精品| 国产精品美女视频| 一区二区三区不卡视频| 午夜av一区二区三区| 免费在线观看一区二区三区| 午夜影院久久久| 福利一区二区在线| www.99精品| 欧美性一级生活| 精品不卡在线视频| 国产精品对白交换视频| 亚洲午夜久久久久久久久电影院| 午夜精品久久久久久久 | 另类小说综合欧美亚洲| 国产美女在线精品| 蜜臀av性久久久久蜜臀aⅴ流畅| 成人免费毛片嘿嘿连载视频| 91猫先生在线| 日韩欧美在线网站| 欧美高清视频不卡网| 国产精品精品国产色婷婷| 亚洲一区二区三区中文字幕 | 国产精品久久久久久久久久久免费看 | 欧美日韩综合在线| 精品国产乱码久久久久久闺蜜| 亚洲精品一二三| 精品制服美女久久| 99这里只有精品| 欧美一区二区三区系列电影| 亚洲男人的天堂在线观看| 麻豆91在线看| 91热门视频在线观看| 制服丝袜亚洲精品中文字幕| 亚洲免费大片在线观看| 久久精品国产一区二区三区免费看 | 国产精品白丝在线| 国产精品一区在线| 欧美日韩电影在线| 国产精品全国免费观看高清| 日韩制服丝袜av| 欧美日韩国产综合久久| 国产精品久久一卡二卡| 日韩不卡免费视频| 国产91精品一区二区麻豆网站 | 丁香婷婷综合五月| 欧美日韩国产123区| 国产精品电影一区二区| 成人午夜又粗又硬又大| 欧美一区永久视频免费观看| 亚洲欧美国产毛片在线| 国产精品88888| 久久久国产午夜精品| 美女在线视频一区| 欧美老女人第四色| 亚洲成a人v欧美综合天堂| 色婷婷综合中文久久一本| 国产精品天美传媒沈樵|