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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? fivelogic.java

?? j2me上的FIR游戲 從原代碼光盤(pán)上復(fù)制
?? JAVA
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):


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

public class FiveLogic
{

    public FiveLogic(FiveCanvas cav, int bSize, boolean cFirst, int deg)
    {
    	
    private FiveCanvas cavFive;
    private int borderSize;
    private boolean computerFirst;
    private int degree;
    public static int STONE_NONE = 0;
    public static int STONE_COMPUTER = 1;
    public static int STONE_MAN = 2;
    private int stones[][];
    private Dot lastDot;
    private int stoneCounter[];
    private Stack steps;
    private Dot triedDot;
    private static int GAIN_BY_COMPUTER = 5;
    private static int GAIN_BY_NONE = 1;
    private boolean endOfGame;
    private boolean computerWon;
    private boolean thinking;
    private Random rnd;

    static 
    {
        STONE_NONE = 0;
        STONE_COMPUTER = 1;
        STONE_MAN = 2;
        GAIN_BY_COMPUTER = 5;
        GAIN_BY_NONE = 1;
    }
    	
        borderSize = 11;
        computerFirst = true;
        degree = 1;
        cavFive = cav;
        borderSize = bSize;
        computerFirst = cFirst;
        degree = deg;
        stones = new int[bSize][bSize];
        for(int r = 0; r < borderSize; r++)
        {
            for(int c = 0; c < borderSize; c++)
                stones[r][c] = 0;

        }

        lastDot = new Dot(borderSize);
        stoneCounter = new int[3];
        stoneCounter[1] = 0;
        stoneCounter[2] = 0;
        stoneCounter[0] = borderSize * borderSize;
        steps = new Stack();
        triedDot = new Dot(-1, -1);
        endOfGame = false;
        thinking = false;
        rnd = new Random();
    }

    public int[][] stones()
    {
        return stones;
    }

    public Dot lastDot()
    {
        return lastDot;
    }

    public Dot triedDot()
    {
        return triedDot;
    }

    public boolean gameEnd()
    {
        return endOfGame;
    }

    public boolean computerWon()
    {
        return computerWon;
    }

    public boolean thinking()
    {
        return thinking;
    }

    private boolean endOfGame()
    {
        endOfGame = false;
        for(int r = 0; r < borderSize; r++)
        {
            for(int c = 0; c < borderSize; c++)
            {
                if(stones[r][c] == 0 || existNLineWithMinFree(r, c, 5, 0, -1) == -1)
                    continue;
                endOfGame = true;
                computerWon = stones[r][c] == 1;
                break;
            }

            if(endOfGame)
                break;
        }

        if(endOfGame)
            cavFive.notifyGameEnd();
        return endOfGame;
    }

    public void manGo(int row, int col)
    {
        if(row >= 0 && row < borderSize && col >= 0 && col < borderSize && stones[row][col] == 0)
        {
            goAt(row, col, 2);
            if(endOfGame())
            {
                if(computerWon)
                    cavFive.setStatus("\u4F60\u8F93\u4E86!", 0xff0000, 2);
                else
                    cavFive.setStatus("\u4F60\u8D62\u4E86!", 65280, 1);
            } else
            {
                computerGo();
            }
        }
    }

    private void goAt(int row, int col, int playerStone)
    {
        int lastRow = lastDot.row;
        int lastCol = lastDot.col;
        stones[row][col] = playerStone;
        lastDot.setRowCol(row, col);
        cavFive.repaintAt(lastRow, lastCol);
        cavFive.repaintAt(row, col);
        switch(playerStone)
        {
        case 1: // '\001'
            stoneCounter[1]++;
            break;

        case 2: // '\002'
            stoneCounter[2]++;
            break;
        }
        stoneCounter[0]--;
        if(steps.size() > 10)
            steps.removeElementAt(0);
        steps.push(new Dot(row, col));
    }

    public boolean undo()
    {
        if(steps.size() >= 3)
        {
            Dot d = new Dot();
            d.copyFrom((Dot)steps.pop());
            stones[d.row][d.col] = 0;
            cavFive.repaintAt(d.row, d.col);
            d.copyFrom((Dot)steps.pop());
            stones[d.row][d.col] = 0;
            cavFive.repaintAt(d.row, d.col);
            d.copyFrom((Dot)steps.peek());
            lastDot.copyFrom(d);
            cavFive.repaintAt(d.row, d.col);
            return true;
        } else
        {
            return false;
        }
    }

    public void computerGo()
    {
        cavFive.setStatus("\u601D\u8003\u4E2D...", 0, 0);
        cavFive.serviceRepaints();
        think();
    }

    public void think()
    {
        thinking = true;
        Dot dc = null;
        if((dc = thinkInNumber(1, 5)) == null && (dc = thinkInNumber(2, 5)) == null && (dc = to4B(1)) == null && (dc = to4B(2)) == null && (dc = toDouble4S_3B_2N1B(1, true)) == null && (dc = toDouble4S_3B_2N1B(2, true)) == null && (dc = toDouble4S_3B_2N1B(1, false)) == null && (dc = toDouble4S_3B_2N1B(2, false)) == null && (dc = toSingle4S_3B_2N1B(1)) == null)
            dc = toSingle4S_3B_2N1B(2);
        if(dc == null)
            dc = maxGainedDot();
        if(dc == null || stoneCounter[0] == 0)
        {
            cavFive.setStatus("\u5E73\u5C40!", 255, 3);
        } else
        {
            System.out.println("Gone!");
            goAt(dc.row, dc.col, 1);
            if(endOfGame())
            {
                if(computerWon)
                    cavFive.setStatus("\u4F60\u8F93\u4E86!", 0xff0000, 2);
                else
                    cavFive.setStatus("\u4F60\u8D62\u4E86 !", 65280, 1);
            } else
            {
                cavFive.setStatus("\u8BF7\u4E0B\u5B50...");
            }
        }
        thinking = false;
    }

    private Dot to4B(int playerStone)
    {
        if(stoneCounter[playerStone] < 3)
            return null;
        Dot dot = null;
        int maxGain = 0;
        for(int r = 1; r < borderSize - 1; r++)
        {
            for(int c = 1; c < borderSize - 1; c++)
                if(stones[r][c] == 0)
                {
                    int cd[] = connectedIn8D(playerStone, r, c);
                    int ed[] = expandedIn8D(playerStone, r, c);
                    for(int i = 0; i < 4; i++)
                        if(ed[i] > cd[i] && ed[i + 4] > cd[i + 4] && cd[i] + cd[i + 4] + 1 >= 4)
                        {
                            int gain = gainAt(r, c);
                            if(gain > maxGain || gain > 0 && gain == maxGain && randomTrue())
                            {
                                maxGain = gain;
                                dot = new Dot(r, c);
                            }
                        }

                }

        }

        return dot;
    }

    private Dot toSingle4S_3B_2N1B(int playerStone)
    {
        if(stoneCounter[playerStone] < 2)
            return null;
        Dot dot = null;
        for(int r = 0; r < borderSize; r++)
        {
            for(int c = 0; c < borderSize; c++)
            {
                if(stones[r][c] != 0 || find4S_3B_2N1BAt(r, c, playerStone, -1) == -1)
                    continue;
                dot = new Dot(r, c);
                break;
            }

            if(dot != null)
                break;
        }

        return dot;
    }

    private Dot toDouble4S_3B_2N1B(int playerStone, boolean only4S)
    {
        if(stoneCounter[playerStone] < 4)
            return null;
        Dot dot = null;
        for(int rTest = 0; rTest < borderSize; rTest++)
        {
            for(int cTest = 0; cTest < borderSize; cTest++)
            {
                if(stones[rTest][cTest] != 0)
                    continue;
                int cd[] = connectedIn8D(playerStone, rTest, cTest);
                if(cd[0] + cd[1] + cd[2] + cd[3] + cd[4] + cd[5] + cd[6] + cd[7] <= 0)
                    continue;
                triedDot.setRowCol(rTest, cTest);
                stones[rTest][cTest] = playerStone;
                boolean found = false;
                int dFirst = find4S_3B_2N1B(playerStone, -1, rTest, cTest, only4S);
                if(dFirst != -1 && find4S_3B_2N1B(playerStone, dFirst, rTest, cTest, false) != -1)
                    found = true;
                stones[rTest][cTest] = 0;
                triedDot.setRowCol(-1, -1);
                if(!found)
                    continue;
                dot = new Dot(rTest, cTest);
                break;
            }

            if(dot != null)
                break;
        }

        return dot;
    }

    private int find4SAt(int row, int col, int playerStone, int exceptDirection)
    {
        int dFond = -1;
        int cd[] = connectedIn8D(playerStone, row, col);
        int ed[] = expandedIn8D(playerStone, row, col);
        for(int d = 0; d < 4; d++)
        {
            if(d == exceptDirection || stones[row][col] != playerStone)
                continue;
            int nConnect = cd[d] + cd[d + 4] + 1;
            int nFree1 = ed[d] - cd[d];
            int nFree2 = ed[d + 4] - cd[d + 4];
            boolean b4S = nConnect >= 4 && (nFree1 >= 1 || nFree2 >= 1);
            if(!b4S)
                continue;
            dFond = d;
            break;
        }

        return dFond;
    }

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
另类调教123区| 在线中文字幕一区| 婷婷久久综合九色国产成人| 欧美视频在线一区二区三区| 一区二区三区免费网站| 欧美日韩你懂的| 欧美日韩国产片| 日韩一级大片在线观看| 免费成人在线影院| 成人午夜看片网址| 亚洲精品在线观| 国产精品一区二区91| 91美女片黄在线观看| 国产精品初高中害羞小美女文| 色狠狠一区二区三区香蕉| 国产人久久人人人人爽| 国产精品国产三级国产专播品爱网| 欧美成人r级一区二区三区| 国产精品毛片大码女人| 国产一区在线观看视频| 欧美日韩一二区| 欧美电影免费观看高清完整版在线| 欧美一区二区视频在线观看2022| 中文字幕日本乱码精品影院| 精品亚洲免费视频| 日韩欧美资源站| 国产一区二区免费视频| 国产亚洲一区字幕| 亚洲国产精品二十页| 精品国产一区二区三区久久久蜜月| 色哟哟一区二区在线观看| 日韩一区二区三区免费观看| 亚洲欧洲日产国码二区| 日韩av高清在线观看| 91官网在线免费观看| 国产蜜臀97一区二区三区| 免费一级欧美片在线观看| 91麻豆国产精品久久| 国产精品九色蝌蚪自拍| 国产精品亚洲综合一区在线观看| 欧美图片一区二区三区| 中文字幕乱码日本亚洲一区二区| 久久国内精品自在自线400部| 欧美三级中文字| 亚洲综合视频在线| 色综合视频在线观看| 亚洲激情网站免费观看| 91网站在线观看视频| 国产精品久久免费看| 99久久久精品| 一区二区三区小说| 欧美最猛黑人xxxxx猛交| 亚洲色图第一区| 色播五月激情综合网| 亚洲综合在线免费观看| 色婷婷亚洲精品| 日韩电影在线免费看| 欧美老肥妇做.爰bbww| 青青草97国产精品免费观看无弹窗版| 69精品人人人人| 韩国欧美国产一区| 亚洲视频一二三| 欧美一区二区三区免费在线看 | 欧美私模裸体表演在线观看| 亚洲最大成人网4388xx| 精品毛片乱码1区2区3区| proumb性欧美在线观看| 日韩不卡一二三区| 中文字幕第一页久久| 欧美精品自拍偷拍动漫精品| 国产成人免费视| 日韩中文字幕不卡| 中文字幕亚洲一区二区av在线| 欧美亚洲图片小说| 精品一区二区在线看| 一区二区三区欧美视频| 久久亚洲精精品中文字幕早川悠里 | 91在线视频播放地址| 久久99精品国产麻豆婷婷| 中文字幕一区二区视频| 久久精品视频一区二区| 欧美私人免费视频| 成人丝袜视频网| 奇米在线7777在线精品 | 亚洲女同一区二区| 久久久噜噜噜久噜久久综合| 欧美日韩国产免费| 在线视频你懂得一区| 色综合网色综合| 99热精品一区二区| 大陆成人av片| 成人综合在线观看| 一本色道久久加勒比精品| 国产69精品久久777的优势| 国产综合久久久久久久久久久久| 久久国内精品自在自线400部| 另类小说一区二区三区| 蜜臀av性久久久久蜜臀av麻豆| 免费xxxx性欧美18vr| 国产一区二区在线观看视频| 国产精品一区免费在线观看| 韩国精品在线观看| jiyouzz国产精品久久| 精品视频一区三区九区| 91麻豆精品国产综合久久久久久| 欧美成人一区二区三区片免费| 欧美xxx久久| 日本一区二区三区久久久久久久久不| 精品久久一二三区| 亚洲黄色小视频| 日韩av成人高清| 国产成人久久精品77777最新版本| 国产成人免费视频| 欧美主播一区二区三区美女| 7777精品伊人久久久大香线蕉完整版 | 日本不卡在线视频| 国内精品伊人久久久久影院对白| 91亚洲精品一区二区乱码| 欧美一区二区三区四区视频| 久久精品亚洲乱码伦伦中文 | 国产91在线看| 欧美一区二区精品| 中文字幕人成不卡一区| 经典三级在线一区| 欧美久久婷婷综合色| 最新国产精品久久精品| 韩国女主播一区| 欧美一区二区三区喷汁尤物| 午夜久久久久久电影| 欧美丝袜丝交足nylons| 国产精品久久一卡二卡| 国产一区二区三区久久久| 日韩视频不卡中文| 免费av成人在线| 日韩欧美一级片| 国产一区二区在线观看免费| 精品少妇一区二区三区日产乱码| 日韩精彩视频在线观看| 欧美一级欧美一级在线播放| 亚洲电影在线播放| 色天天综合久久久久综合片| 亚洲精品自拍动漫在线| 在线观看日产精品| 五月天婷婷综合| 日韩三级视频在线看| 高清shemale亚洲人妖| 亚洲欧美激情在线| 精品视频一区二区不卡| 视频精品一区二区| 日韩一区二区免费电影| 高清不卡一区二区| 亚洲视频一二三| 欧美成人a∨高清免费观看| 国产九色sp调教91| 亚洲综合色在线| 日韩一级欧美一级| 97se狠狠狠综合亚洲狠狠| 婷婷丁香激情综合| 成人免费小视频| 91精品国产高清一区二区三区| 福利视频网站一区二区三区| 午夜精品久久久久影视| 精品国产乱码久久久久久1区2区| 91久久人澡人人添人人爽欧美| 久久精品国产亚洲一区二区三区| 中文字幕二三区不卡| 精品国产制服丝袜高跟| 欧美自拍偷拍一区| 国产大片一区二区| 免费成人av资源网| 婷婷综合在线观看| 亚洲一级电影视频| 欧美激情一区二区三区全黄| 日韩一区二区三区视频| 欧美精品视频www在线观看 | 91亚洲永久精品| 99在线精品一区二区三区| 不卡一区二区中文字幕| 国产91精品在线观看| 精品一区二区三区免费视频| 午夜精品久久久久久久蜜桃app| 亚洲乱码一区二区三区在线观看| 亚洲欧洲精品一区二区精品久久久| 精品少妇一区二区三区免费观看| 欧美一级片免费看| 日韩欧美精品在线视频| 2020国产精品| 国产精品久久三区| 亚洲视频一区二区免费在线观看| 国产精品欧美一级免费| 一区二区三区精品视频在线| 亚洲欧美欧美一区二区三区| 亚洲国产精品欧美一二99| 偷拍日韩校园综合在线| 精品一区二区三区在线观看国产| 粉嫩欧美一区二区三区高清影视| 国产91精品露脸国语对白| 一本久久a久久免费精品不卡| 欧美综合亚洲图片综合区| 2021国产精品久久精品|