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

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

?? gameengine.java

?? j2me簡單實例,j2me教程加源碼,希望大家喜歡
?? JAVA
字號:
package com.j2medev.chapter5;

import java.io.*;
import javax.microedition.io.*;
import javax.microedition.lcdui.*;

public class GameEngine implements Runnable {
    
    private GoBang midlet = null;
    private MainCanvas canvas = null;
    //與服務器連接的socket
    private SocketConnection socket = null;
    private DataInputStream dis = null;
    private DataOutputStream dos = null;
    //玩家從服務器獲得的playerID
    private int playerID = -1;
    //游戲的狀態,這里定義了等待和游戲中兩種
    private int state = WAITING;
    private boolean turn = false;
    private boolean stop = false;
    //15*15的五子棋盤,0=無旗子 playerID=自己 其他=對手
    public int[][] grid = new int[15][15];
    public static final int WAITING = 101;
    public static final int PLAYING = 102;
    
    
    public GameEngine(GoBang _midlet) {
        midlet = _midlet;
    }
    //重新初始化棋盤
    private void initGrid(){
        for(int i = 0;i<15;i++){
            for(int j = 0;j<15;j++){
                grid[i][j] = 0;
            }
        }
    }
    //更新棋盤的單元
    public void update(int x,int y){
        if(grid[x][y]==0)
            grid[x][y] = playerID;
        else{
            //不能走這步
            Alert alert = new Alert("waring","you can't put here",null,AlertType.WARNING);
            alert.setTimeout(2000);
            GoBang.setCurrent(alert,canvas);
            return;
        }
        canvas.repaint();
        canvas.serviceRepaints();
        int data = Protocol.STEP<<24|playerID<<16|x<<8|y;
        //等對手走棋
        turn = false;
        //向服務器發送數據
        send(data);
        //判斷輸贏,如果贏則向服務器發送數據
        boolean win = isGameOver(x,y);
        if(win){
            int over = Protocol.WIN<<24|playerID<<16;
            send(over);
        }
    }
    //向服務器發送數據
    private void send(int data){
        try {
            dos.writeInt(data);
            dos.flush();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
    /*檢查游戲是否結束,參數為此步的落點
     *檢查的算法是判斷此點為中心,橫向、縱向、左下到右上、右下到左上
     *四個方向,是否滿足5個同樣的棋子相連
     */
    private boolean isGameOver(int x,int y){
        int num = 1;
        //檢查橫向 -
        for(int c = x-1;c>=0;c--){
            if(grid[x][y]-grid[c][y]!=0)
                break;
            if(++num >= 5)
                return true;
        }
        
        for(int c = x+1;c<=14;c++){
            if(grid[x][y]-grid[c][y]!=0)
                break;
            if(++num >= 5)
                return true;
        }
        num = 1;
        //檢查縱向 |
        for(int c = y-1;c>=0;c--){
            if(grid[x][y]-grid[x][c] !=0)
                break;
            if(++num >= 5)
                return true;
        }
        for(int c=y+1;c<=14;c++){
            if(grid[x][y]-grid[x][c]!=0)
                break;
            if(++num >=5)
                return true;
        }
        num = 1;
        //檢查從左下到右上 /
        for(int c = x+1,d = y-1;c<14&d>0;c++,d--){
            if(grid[x][y]-grid[c][d] != 0)
                break;
            if(++num >= 5)
                return true;
        }
        for(int c = x -1,d = y+1;c>0&d<14;c--,d++){
            if(grid[x][y]-grid[c][d] != 0)
                break;
            if(++num >= 5)
                return true;
        }
        num = 1;
        //檢查從右下到左上 \
        for(int c = x- 1,d = y -1;c>0&d>0;c--,d--){
            if(grid[x][y]-grid[c][d] != 0)
                break;
            if(++num >= 5)
                return true;
        }
        for(int c = x+1,d = y+1;x<14&y<14;c++,d++){
            if(grid[x][y]-grid[c][d] != 0)
                break;
            if(++num >=5)
                return true;
        }
        return false;
    }
    //向服務器端發送退出游戲的數據
    public void exitGame(){
        send(Protocol.QUIT<<24|playerID<<16);
    }
    //結束游戲
    private void endGame(String message){
        initGrid();
        state = WAITING;
        try {
            if(dos != null)
                dos.close();
            if(dis != null)
                dis.close();
            if(socket != null)
                socket.close();
            dos = null;
            dis = null;
            socket = null;
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        Alert alert = new Alert("information",message,null,AlertType.INFO);
        alert.setTimeout(2000);
        GoBang.setCurrent(alert,midlet.getMenu());
    }
    public int getState(){
        return state;
    }
    public void setState(int _state){
        this.state = _state;
    }
    public int getPlayerID(){
        return playerID;
    }
    
    public void setPlayerID(int _playerID){
        this.playerID = _playerID;
    }
    
    public boolean getTurn(){
        return turn;
    }
    
    public void setTurn(boolean _turn){
        this.turn = _turn;
    }
    
    public void run(){
        String message = "";
        try {
            //連接服務器
            socket = (SocketConnection)Connector.open("socket://localhost:2200");
            dos = socket.openDataOutputStream();
            dis = socket.openDataInputStream();
            //向服務器發送注冊數據
            dos.writeInt(Protocol.SINGUP<<24);
            dos.flush();
            //讀取服務器的返回數據
            while(!stop){
                int msg = dis.readInt();
                int type = msg>>>24;
                switch(type){
                    case Protocol.FULL:{
                        message = "the server is full";
                        stop = true;
                        break;
                    }
                    //注冊成功
                    case Protocol.ACK_SINGUP:{
                        playerID = (msg&0x00FF0000)>>>16;
                        System.out.println("Receiver id = "+playerID);
                        //收到服務器分配的id,創建MainCanvas
                        canvas = new MainCanvas(this,playerID);
                        state = WAITING;
                        GoBang.setCurrent(canvas);
                        break;
                    }
                    //收到服務器開始游戲的通知
                    case Protocol.START:{
                        int id = (msg&0x00FF0000)>>16;
                        state = PLAYING;
                        //先登錄的玩家先走
                        if(playerID == id){
                            turn = true;
                        }
                        canvas.repaint();
                        canvas.serviceRepaints();
                        break;
                    }
                    //對手走了一步,更新grid數組和MainCanvas
                    case Protocol.STEP:{
                        int id = (msg&0x00FF0000)>>16;
                        int x = (msg&0x0000FF00)>>8;
                        int y = msg&0x000000FF;
                        grid[x][y]= id;
                        turn =true;
                        canvas.repaint();
                        canvas.serviceRepaints();
                        break;
                    }
                    //游戲結束
                    case Protocol.QUIT:{
                        stop = true;
                        message = "game is over";
                        break;
                    }
                    //勝負已分,游戲結束
                    case Protocol.WIN:{
                        stop = true;
                        int id = (msg&0x00FF0000)>>16;
                        System.out.println(id+" win");
                        if(id != playerID)
                            message = "sorry,you lose";
                        else
                            message = "congratulations,you win";
                        break;
                    }
                    //未知信
                    default:{
                        break;
                    }
                }
            }
        } catch (Exception ex) {
            ex.printStackTrace();
            message = ex.getMessage();
        }
        endGame(message);
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
夜夜嗨av一区二区三区中文字幕| 午夜不卡av在线| 欧美不卡一区二区三区| 欧美老女人第四色| 欧美久久久久免费| 日韩一区二区在线免费观看| 日韩午夜激情电影| 26uuu久久天堂性欧美| 久久亚洲综合av| 国产精品伦理在线| 亚洲精品欧美在线| 亚洲va欧美va人人爽| 日韩在线观看一区二区| 奇米影视在线99精品| 精品在线免费视频| 成人午夜精品在线| 日本精品免费观看高清观看| 色乱码一区二区三区88| 在线不卡欧美精品一区二区三区| 精品国产制服丝袜高跟| 中文字幕在线观看一区二区| 亚洲人成网站在线| 日韩国产一区二| 国产精品77777| 91国偷自产一区二区三区成为亚洲经典| 日本高清视频一区二区| 日韩视频在线永久播放| 国产女人水真多18毛片18精品视频 | 麻豆91精品91久久久的内涵| 国产精品一级在线| 欧美视频在线观看一区二区| 精品国产百合女同互慰| 国产精品美女久久久久aⅴ国产馆| 国产精品全国免费观看高清| 樱花草国产18久久久久| 日本欧美韩国一区三区| 成人在线视频一区| 欧美日韩中字一区| 国产精品―色哟哟| 麻豆视频一区二区| 日本韩国欧美一区二区三区| 久久女同精品一区二区| 亚洲国产一区二区三区| 成人在线视频首页| 精品人在线二区三区| 亚洲一区二区三区四区在线| 国产精品影视天天线| 欧美日韩第一区日日骚| 国产精品不卡一区| 国产一区二区免费在线| 欧美日产国产精品| 精品国产一区二区三区久久影院 | 色综合久久久久综合体| 日韩女优制服丝袜电影| 亚洲综合自拍偷拍| 国产成人免费在线| 欧美日韩在线播放| 亚洲人妖av一区二区| 国产乱码精品一区二区三区av| 欧美中文字幕不卡| 国产精品久久久久一区二区三区共| 看电视剧不卡顿的网站| 欧美丝袜丝交足nylons图片| 亚洲天堂2016| 99久久久无码国产精品| 久久午夜老司机| 麻豆国产精品官网| 91精品国产综合久久蜜臀| 亚洲一区日韩精品中文字幕| 99热99精品| 亚洲欧洲成人自拍| 91小视频免费看| 国产美女在线观看一区| 777奇米四色成人影色区| 一二三区精品福利视频| 丁香另类激情小说| 亚洲国产成人午夜在线一区| 狠狠色丁香久久婷婷综| 久久伊99综合婷婷久久伊| 国产毛片精品国产一区二区三区| 精品捆绑美女sm三区| 激情图区综合网| 精品国产91洋老外米糕| 国产精品亚洲а∨天堂免在线| 精品国产一区二区三区不卡 | 国产精品免费看片| 丁香桃色午夜亚洲一区二区三区| 国产欧美日韩三级| 色爱区综合激月婷婷| 亚洲国产精品一区二区尤物区| 日韩国产在线一| 免费av成人在线| 日韩欧美一级精品久久| 韩国精品主播一区二区在线观看 | 日韩午夜中文字幕| 狠狠色2019综合网| 国产精品人人做人人爽人人添| 色域天天综合网| 日本中文在线一区| 日韩精品综合一本久道在线视频| 国产一区二三区好的| 中文字幕在线一区| 欧美另类久久久品| 国产精品三级视频| 欧美日韩国产免费一区二区| 91玉足脚交白嫩脚丫在线播放| 风间由美一区二区三区在线观看 | 日韩一级片在线观看| 日韩精品一卡二卡三卡四卡无卡| 欧美人妇做爰xxxⅹ性高电影| 免费成人美女在线观看.| 国产欧美一区在线| 欧美三级电影在线观看| 国产精品一区二区无线| 一区二区三区日韩欧美| 日韩欧美国产高清| 99精品久久免费看蜜臀剧情介绍| 亚洲成人av在线电影| 国产午夜精品在线观看| 69av一区二区三区| 91年精品国产| 国产精品一二三区| 日韩女同互慰一区二区| 国产精品亚洲一区二区三区妖精| 亚洲欧美一区二区三区国产精品 | 午夜国产精品影院在线观看| 日韩视频在线你懂得| 欧美日韩精品一区二区| 国产91在线观看丝袜| 亚洲.国产.中文慕字在线| 色8久久精品久久久久久蜜| 婷婷开心久久网| 亚洲欧美激情小说另类| 欧美夫妻性生活| 色综合色狠狠天天综合色| 日本在线播放一区二区三区| 91麻豆swag| 久久成人免费日本黄色| 亚洲男人的天堂在线观看| 成人午夜激情在线| 依依成人精品视频| 在线亚洲人成电影网站色www| 舔着乳尖日韩一区| 欧美成人bangbros| 国产亚洲制服色| 国产精品第13页| 久久成人综合网| 亚洲国产精品影院| 一区二区三区欧美亚洲| 欧美一区二区三区婷婷月色| 国产高清不卡二三区| 亚洲综合久久av| 中文字幕一区二区在线播放 | 欧美伊人精品成人久久综合97| 欧美精品一区二区三区很污很色的| 91精品国产综合久久久久久漫画| 国产乱对白刺激视频不卡| 亚洲欧美激情一区二区| 欧美tickle裸体挠脚心vk| 欧美日韩综合在线免费观看| 国产精品一级在线| 一区二区在线免费观看| 久久久精品综合| 精品精品国产高清a毛片牛牛| 色噜噜狠狠色综合欧洲selulu| 国产成人久久精品77777最新版本| 日韩av网站免费在线| 亚洲综合在线视频| 一区二区三区美女| 亚洲国产综合色| 久久爱www久久做| 日本aⅴ免费视频一区二区三区| 日韩av高清在线观看| 日日夜夜精品视频天天综合网| 韩国理伦片一区二区三区在线播放| 日韩福利电影在线观看| 国产成人一区在线| 欧美丰满高潮xxxx喷水动漫| 亚洲国产精品久久久久秋霞影院| 欧美午夜精品一区| 日韩欧美亚洲一区二区| 91视频www| 日韩丝袜美女视频| 国产精品久线观看视频| 国产精品久久久久久久久免费相片| 精品一区二区三区在线视频| 国产精品久久久久久妇女6080| 日本韩国欧美在线| 国产精品久久久久久久久免费樱桃 | 欧美国产精品一区二区| 91丝袜国产在线播放| 国产一区二区三区国产| 色综合久久久久综合体| 91精品在线麻豆| 国产精品拍天天在线| 奇米影视7777精品一区二区| 99久久免费国产| 久久影院电视剧免费观看| 亚洲精品免费电影| 国产一区二区精品久久99|