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

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

?? btfirlogic.java

?? 非常好的JAVA編程的例子
?? JAVA
字號:



import java.io.PrintStream;
import java.util.*;
import javax.microedition.lcdui.Canvas;

public class BTFIRLogic
{
    private BTFIRCanvas myCanvas;
    private int boardSize;
    private boolean isBlack = true;

    public static int PLAYER_NONE = 0;
    public static int PLAYER_BLACK = 1;
    public static int PLAYER_WHITE = 2;
    private int table[][];
    private Dot lastDot;
    private int playerCounter[];
    private Stack steps;
    private Dot triedDot;
    private boolean isGameOver;
    private boolean isBlackWon;


    public BTFIRLogic(BTFIRCanvas canvas, boolean isBlack)
    {

        this.isBlack = isBlack;
        boardSize = 15;
        //    isBlackFirst = true;
        myCanvas = canvas;
        table = new int[boardSize][boardSize];
        for (int r = 0; r < boardSize; r++)
        {
            for (int c = 0; c < boardSize; c++)
                table[r][c] = 0;
        }

        playerCounter = new int[3];
        playerCounter[0] = boardSize * boardSize;
        playerCounter[1] = 0;
        playerCounter[2] = 0;
        lastDot = new Dot(boardSize);
        triedDot = new Dot( - 1,  - 1);
        isGameOver = false;

    }

    public int[][]getTable()
    {
        return table;
    }

    public Dot lastDot()
    {
        return lastDot;
    }

    public Dot triedDot()
    {
        return triedDot;
    }

    public boolean checkGameOver()
    {
        return isGameOver;
    }

    public boolean isBlackWon()
    {
        return isBlackWon;
    }

    private boolean isGameOver()
    {
        isGameOver = false;
        for (int r = 0; r < boardSize; r++)
        {
            for (int c = 0; c < boardSize; c++)
            {
                if (table[r][c] == 0 || checkFiveInRow(r, c, 5,  - 1) ==  - 1)
                    continue;
                //如果檢測的位置位空,或者不存在五子連珠情況則進行下一輪循環
                isGameOver = true; //如果
                isBlackWon = table[r][c] == 1; //判斷是否計算機贏
                break;
            }

            if (isGameOver)
            //如果游戲結束,則結束循環
                break;
        }

        if (isGameOver)
            myCanvas.notifyGameEnd(isBlackWon);
        //如果游戲結束則在畫布上相應處理
        return isGameOver;
    }

    public boolean playerBlackGo(int row, int col)
    {
        if (row >= 0 && row < boardSize && col >= 0 && col < boardSize &&
            table[row][col] == 0)
        //該位置在棋盤上,并且還沒有被占用
        {
            goAt(row, col, 1); //黑方的代碼是1
            if (isGameOver())
            //判斷游戲是否結束
            {
                if (isBlackWon)
                {
                    if (isBlack)
                        myCanvas.setStatus("你贏了!", 0xff0000, 2);
                    else
                        myCanvas.setStatus("你輸了!", 65280, 1);
                }
            }
            return true;
        }
        return false;
    }
    public boolean playerWhiteGo(int row, int col)
    {
        if (row >= 0 && row < boardSize && col >= 0 && col < boardSize &&
            table[row][col] == 0)
        //該位置在棋盤上,并且還沒有被占用
        {
            goAt(row, col, 2); //白方的代碼是2
            if (isGameOver())
            //判斷游戲是否結束
            {
                if (isBlackWon)
                {
                    if (isBlack)
                        myCanvas.setStatus("你贏了!", 0xff0000, 2);
                    else
                        myCanvas.setStatus("你輸了!", 65280, 1);
                }
            }
            return true;
        }
        return false;
    }
    private void goAt(int row, int col, int player)
        //計算機或者人在row,col位置上走
    {
        int lastRow = lastDot.row; //記錄上一部的位置
        int lastCol = lastDot.col;
        table[row][col] = player; //當前位置填充玩家代碼
        lastDot.setRowCol(row, col); //將這一步設置為“最后一步”
        myCanvas.repaintAt(lastRow, lastCol); //繪制最后一步
        myCanvas.repaintAt(row, col); //繪制當前這步
        switch (player)
        {
            case 1:
                // '\001'
                playerCounter[1]++; //計算機的步數
                break;

            case 2:
                // '\002'
                playerCounter[2]++; //人的步數
                break;
        }
        playerCounter[0]--; //空白的個數

    }




    private int[]expandedIn8D(int player, int row, int col)
    {
        int ed[] = new int[8];
        for (int d = 0; d < 8; d++)
            ed[d] = expandedIn1D(player, row, col, d);

        return ed;
    }

    private int expandedIn1D(int player, int row, int col, int direction)
    {
        int n = 0;
        int cn = 0;
        Dot d = new Dot(row, col);
        while (cn < 4)
        {
            d.copyFrom(moveOneStep(d, direction));
            if (!d.isInBoard(boardSize))
                break;
            int p = table[d.row][d.col];
            if (p == 0)
                cn++;
            if (p != player && p != 0)
                break;
            n++;
        }
        return n;
    }


    private int checkFiveInRow(int row, int col, int n, int exceptDirection)
    {
        int player = table[row][col];
        int cd[] = connectedIn8D(player, row, col);
        int ed[] = expandedIn8D(player, row, col);
        int existDirection =  - 1;
        for (int i = 0; i < 4; i++)
        {
            if (i == exceptDirection || cd[i] + cd[i + 4] + 1 < n || (ed[i] -
                cd[i]) + (ed[i + 4] - cd[i + 4]) < 0)
                continue;


            existDirection = i;
            break;
        }

        return existDirection;
    }

    private int[]connectedIn8D(int player, int row, int col)
    {
        int cd[] = new int[8];
        for (int d = 0; d < 8; d++)
            cd[d] = connectedIn1D(player, row, col, d);

        return cd;
    }

    private int connectedIn1D(int player, int row, int col, int direction)
    {
        int n = 0;
        Dot d = new Dot(row, col);
        do
        {
            d.copyFrom(moveOneStep(d, direction));
            if (d.isInBoard(boardSize) && table[d.row][d.col] == player)
                n++;
            else
                return n;
        }
        while (true);
    }

    private Dot moveOneStep(Dot d, int direction)
    {
        int r = d.row;
        int c = d.col;
        switch (direction)
        {
            case 0:
                // '\0'
                c++;
                break;

            case 1:
                // '\001'
                r--;
                c++;
                break;

            case 2:
                // '\002'
                r--;
                break;

            case 3:
                // '\003'
                r--;
                c--;
                break;

            case 4:
                // '\004'
                c--;
                break;

            case 5:
                // '\005'
                r++;
                c--;
                break;

            case 6:
                // '\006'
                r++;
                break;

            case 7:
                // '\007'
                r++;
                c++;
                break;
        }
        return new Dot(r, c);
    }



}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区在线免费观看| 自拍视频在线观看一区二区| 精品一区二区免费看| 日韩视频一区二区三区在线播放| 久久se精品一区精品二区| 久久一夜天堂av一区二区三区| 国产成人亚洲综合a∨婷婷| 国产精品久久精品日日| 色综合久久久久综合99| 亚洲第一成年网| 日韩一区二区精品在线观看| 欧美videofree性高清杂交| 日韩电影免费在线看| 日本不卡视频在线观看| 精品国产乱码久久久久久老虎| 国产美女精品一区二区三区| 国产精品入口麻豆原神| 欧美色网一区二区| 日韩国产在线一| 久久日韩精品一区二区五区| 97精品视频在线观看自产线路二| 亚洲影视资源网| 日韩欧美在线一区二区三区| 国产sm精品调教视频网站| 亚洲美女视频一区| 91精品国产乱| 成人免费看的视频| 亚洲成人激情自拍| 精品88久久久久88久久久| 99麻豆久久久国产精品免费| 偷拍一区二区三区| 久久精品欧美一区二区三区不卡 | 日韩成人一级大片| 亚洲精品在线免费播放| 97精品超碰一区二区三区| 午夜久久久影院| 国产亚洲污的网站| 欧美伊人精品成人久久综合97 | 精品一区二区久久| 国产精品久久久久久久久免费相片| 欧美日精品一区视频| 国产一区二区三区在线观看免费视频 | 国产精品免费网站在线观看| 欧美日韩卡一卡二| 国产在线观看免费一区| 一区二区三区色| 日韩一区二区免费电影| 91麻豆高清视频| 男男视频亚洲欧美| 亚洲欧洲国产专区| 欧美一区二区日韩| 91美女在线视频| 狠狠色狠狠色合久久伊人| 亚洲综合成人网| 久久久久久久性| 一区二区三区高清| 欧美成人艳星乳罩| 一本一本久久a久久精品综合麻豆| 蜜臀av一区二区三区| 中文字幕在线不卡| 精品久久久网站| 欧美美女一区二区在线观看| 成年人午夜久久久| 精品一区二区三区免费视频| 亚洲一区二区三区在线| 久久精品亚洲麻豆av一区二区| 欧美区在线观看| 91亚洲精品久久久蜜桃网站| 国产福利不卡视频| 另类中文字幕网| 午夜久久久久久久久| 亚洲人成在线播放网站岛国| 久久久www成人免费无遮挡大片| 51精品久久久久久久蜜臀| 91网页版在线| 国产91精品一区二区麻豆亚洲| 美腿丝袜一区二区三区| 亚洲电影中文字幕在线观看| 国产精品色在线观看| 久久久另类综合| 日韩一二三区不卡| 欧美日精品一区视频| 色综合久久天天综合网| 成人午夜免费电影| 狠狠色丁香婷综合久久| 日韩成人一级片| 天涯成人国产亚洲精品一区av| 国产精品中文字幕欧美| 欧美日韩久久久一区| 在线亚洲+欧美+日本专区| 成人h版在线观看| 国产精品自拍毛片| 精品一区二区三区在线观看| 日本成人在线不卡视频| 午夜伦理一区二区| 亚洲第一主播视频| 亚洲综合视频在线观看| 一区二区在线观看视频| 综合欧美一区二区三区| 国产精品人人做人人爽人人添| 久久九九全国免费| 久久你懂得1024| 久久精品一区蜜桃臀影院| 欧美videossexotv100| 欧美一区二区美女| 亚洲妇熟xx妇色黄| 亚洲自拍偷拍九九九| 亚洲自拍偷拍麻豆| 香港成人在线视频| 午夜精品成人在线| 日韩va欧美va亚洲va久久| 蜜臀av一区二区三区| 麻豆国产精品官网| 国产一区二区三区最好精华液| 国产精品亚洲а∨天堂免在线| 国产福利一区二区三区| 国产91在线观看| 波多野结衣在线一区| 91美女片黄在线观看91美女| 色婷婷激情一区二区三区| 在线观看免费成人| 欧美日韩一区二区三区高清| 欧美日韩成人综合天天影院| 91精品国产免费| 精品区一区二区| 久久久精品欧美丰满| 国产精品乱子久久久久| 一区二区视频在线看| 亚洲国产精品自拍| 日本成人在线不卡视频| 精品一二线国产| 波多野结衣精品在线| 欧美影视一区二区三区| 欧美精品视频www在线观看| 日韩欧美亚洲国产精品字幕久久久| 精品久久人人做人人爱| 中文字幕第一页久久| 亚洲男人的天堂av| 午夜精品久久久久影视| 麻豆视频一区二区| 国产大片一区二区| 91在线一区二区| 欧美日韩免费不卡视频一区二区三区| 日韩三级在线免费观看| 久久免费电影网| 亚洲麻豆国产自偷在线| 偷拍一区二区三区| 国产精品影视在线观看| 91在线观看地址| 欧美精品丝袜久久久中文字幕| 精品国产第一区二区三区观看体验 | 国产精品成人免费精品自在线观看 | 国产精品久久久久aaaa樱花| 亚洲在线视频网站| 蜜桃一区二区三区在线| www.欧美.com| 欧美蜜桃一区二区三区| 久久久久久久性| 亚洲综合999| 国产精品资源网站| 色先锋资源久久综合| 日韩一区二区三区电影在线观看| 国产亚洲欧美激情| 亚洲伊人色欲综合网| 久88久久88久久久| 91视视频在线观看入口直接观看www | 精品少妇一区二区三区免费观看| 国产精品日韩精品欧美在线| 午夜精品福利一区二区三区蜜桃| 国产九色sp调教91| 色悠悠久久综合| 精品久久久久久久久久久久久久久久久| 一区在线观看免费| 免费观看在线色综合| 91视频你懂的| 精品少妇一区二区三区| 亚洲综合色区另类av| 国产一区二区免费在线| 欧美性猛交一区二区三区精品| 久久久亚洲国产美女国产盗摄| 亚洲综合色婷婷| 懂色av一区二区三区蜜臀 | 欧美伊人久久大香线蕉综合69| 久久先锋资源网| 亚洲国产精品一区二区www | 精品视频免费看| 日本一区二区三级电影在线观看| 五月婷婷欧美视频| 不卡的av电影| 精品99久久久久久| 亚洲3atv精品一区二区三区| 99精品欧美一区二区三区综合在线| 欧美一区二区三区婷婷月色| 成人欧美一区二区三区视频网页| 免费成人在线影院| 欧美在线看片a免费观看| 国产欧美日韩一区二区三区在线观看 | 久久丁香综合五月国产三级网站| 欧美三级视频在线| 国产精品美女久久久久久久久|