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

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

?? fivecanvas.java

?? j2me上的FIR游戲 從原代碼光盤上復制
?? JAVA
字號:

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

public class FiveCanvas extends Canvas
    implements CommandListener
{
    public static int BLACK = 0;
    public static int WHITE = 0xffffff;
    public static int RED = 0xff0000;
    public static int GREEN = 65280;
    public static int BLUE = 255;
    public static int WOOD = 0xffd020;
    private FiveMIDlet midFive;
    private Reg reg;
    private Command cmdStop;
    private Command cmdNew;
    private Command cmdUndo;
    private FiveLogic logic;
    private int borderSize;
    private boolean computerFirst;
    private int degree;
    private int cavWidth;
    private int cavHeight;
    private int cWidth;
    private int cHeight;
    private Font font;
    private int fWidth;
    private int fHeight;
    private int borderX;
    private int borderY;
    private int borderLength;
    private int gridLength;
    private int stoneLength;
    private int statusY;
    private String status;
    private int statusColor;
    private boolean statusUpSide;
    private final Image imgStatus[] = new Image[4];
    private int statusImage;
    public static int THINK = 0;
    public static int SMILE = 1;
    public static int CRY = 2;
    public static int NONE = 3;
    private boolean isColor;

    static 
    {
        BLACK = 0;
        WHITE = 0xffffff;
        RED = 0xff0000;
        GREEN = 65280;
        BLUE = 255;
        WOOD = 0xffd020;
        THINK = 0;
        SMILE = 1;
        CRY = 2;
        NONE = 3;
    }
    public FiveCanvas(FiveMIDlet m, Reg r)
    {
        midFive = m;
        reg = r;
        cmdNew = new Command("\u91CD\u73A9", 4, 2);
        cmdStop = new Command("\u9000\u51FA", 2, 1);
        cmdUndo = new Command("悔棋", 1, 3);
        addCommand(cmdNew);
        addCommand(cmdStop);
        setCommandListener(this);
        cavWidth = getWidth();
        cavHeight = getHeight();
        status = "";
        statusColor = 0;
        statusUpSide = true;
        for(int i = 0; i < 4; i++)
            imgStatus[i] = Image.createImage(1, 1);

        try
        {
            imgStatus[0] = Image.createImage("/Think.png");
        }
        catch(IOException _ex) { }
        try
        {
            imgStatus[1] = Image.createImage("/Smile.png");
        }
        catch(IOException _ex) { }
        try
        {
            imgStatus[2] = Image.createImage("/Cry.png");
        }
        catch(IOException _ex) { }
        statusImage = 3;
        isColor = Display.getDisplay(midFive).numColors() > 2;
    }

    private void calcSize()
    {
        font = Font.getDefaultFont();
        fWidth = font.charWidth('\u5B57');
        fHeight = font.getHeight();
        statusUpSide = cavHeight > cavWidth;
        if(statusUpSide)
        {
            cWidth = cavWidth;
            cHeight = cavHeight - fHeight;
        } else
        {
            cWidth = cavWidth - fWidth;
            cHeight = cavHeight;
        }
        borderLength = cWidth > cHeight ? cHeight : cWidth;
        gridLength = borderLength / borderSize;
        borderLength = gridLength * borderSize;
        borderX = (cWidth - borderLength) / 2;
        borderY = (cHeight - borderLength) / 2;
        if(statusUpSide)
            borderY += fHeight;
        stoneLength = gridLength - 2;
    }

    public void paint(Graphics g)
    {
        g.setColor(0xffffff);
        g.fillRect(0, 0, cavWidth, cavHeight);
        if(isColor)
        {
            g.setColor(0x41f22d);
            g.fillRect(borderX, borderY, borderLength, borderLength);
        }
        g.setColor(isColor ? 255 : 0);
        int y;
        for(int r = 0; r < borderSize; r++)
        {
            int x1 = borderX + gridLength / 2;
            int x2 = (x1 + borderLength) - gridLength;
            y = borderY + r * gridLength + gridLength / 2;
            g.drawLine(x1, y, x2, y);
        }

        int x;
        for(int c = 0; c < borderSize; c++)
        {
            x = borderX + c * gridLength + gridLength / 2;
            int y1 = borderY + gridLength / 2;
            int y2 = (y1 + borderLength) - gridLength;
            g.drawLine(x, y1, x, y2);
        }

        int computerColor;
        int manColor;
        if(computerFirst)
        {
            computerColor = 0;
            manColor = 0xffffff;
        } else
        {
            computerColor = 0xffffff;
            manColor = 0;
        }
        Dot triedDot = logic.triedDot();
        int triedRow = triedDot.row;
        int triedCol = triedDot.col;
        for(int r = 0; r < borderSize; r++)
        {
            for(int c = 0; c < borderSize; c++)
                if(r != triedRow || c != triedCol)
                {
                    int stone = logic.stones()[r][c];
                    if(stone != 0)
                    {
                        x = xByCol(c) - stoneLength / 2;
                        y = yByRow(r) - stoneLength / 2;
                        g.setColor(stone == 1 ? computerColor : manColor);
                        g.fillArc(x, y, stoneLength, stoneLength, 0, 360);
                        g.setColor(0);
                        g.drawArc(x, y, stoneLength, stoneLength, 0, 360);
                    }
                }

        }

        Dot lastDot = logic.lastDot();
        int lastRow = lastDot.row;
        int lastCol = lastDot.col;
        int cLast;
        if(isColor)
        {
            cLast = 0xff0000;
        } else
        {
            cLast = 0;
            switch(logic.stones()[lastRow][lastCol])
            {
            case 1: // '\001'
                cLast = manColor;
                break;

            case 2: // '\002'
                cLast = computerColor;
                break;
            }
        }
        g.setColor(cLast);
        x = xByCol(lastCol) - 3;
        y = yByRow(lastRow) - 3;
        g.drawRect(x, y, 6, 6);
        g.setFont(font);
        g.setColor(isColor ? statusColor : 0);
        if(statusUpSide)
        {
            g.drawImage(imgStatus[statusImage], 0, 0, 20);
            x = imgStatus[statusImage].getWidth();
            g.drawString(status, x, 0, 20);
        } else
        {
            x = cWidth + fWidth;
            g.drawImage(imgStatus[statusImage], x, 0, 24);
            x = cWidth + fWidth / 2;
            y = imgStatus[statusImage].getHeight();
            for(int i = 0; i < status.length(); i++)
            {
                char c = status.charAt(i);
                g.drawChar(c, x, y, 17);
                y += fHeight;
            }

        }
    }

    private int xByCol(int col)
    {
        return borderX + col * gridLength + gridLength / 2;
    }

    private int yByRow(int row)
    {
        return borderY + row * gridLength + gridLength / 2;
    }

    protected void keyPressed(int keyCode)
    {
        if(!logic.gameEnd() && !logic.thinking())
        {
            int bs = borderSize;
            Dot lastDot = logic.lastDot();
            int r = lastDot.row;
            int c = lastDot.col;
            repaintAt(r, c);
            int ga = getGameAction(keyCode);
            if(ga == 2 || keyCode == 52)
            {
                if(--c < 0)
                    c = bs - 1;
                lastDot.setRowCol(r, c);
                repaintAt(r, c);
            } else
            if(ga == 5 || keyCode == 54)
            {
                if(++c >= bs)
                    c = 0;
                lastDot.setRowCol(r, c);
                repaintAt(r, c);
            } else
            if(ga == 1 || keyCode == 50)
            {
                if(--r < 0)
                    r = bs - 1;
                lastDot.setRowCol(r, c);
                repaintAt(r, c);
            } else
            if(ga == 6 || keyCode == 56)
            {
                if(++r >= bs)
                    r = 0;
                lastDot.setRowCol(r, c);
                repaintAt(r, c);
            } else
            if(ga == 8 || keyCode == 53)
                logic.manGo(r, c);
        }
    }

    protected void keyRepeated(int keyCode)
    {
        keyPressed(keyCode);
    }

    protected void pointerPressed(int x, int y)
    {
        if(!logic.gameEnd() && !logic.thinking())
        {
            int row = (y - borderY) / gridLength;
            int col = (x - borderX) / gridLength;
            logic.manGo(row, col);
        }
    }

    public void commandAction(Command c, Displayable s)
    {
        if(!logic.thinking())
            if(c == cmdStop)
                midFive.backHome();
            else
            if(c == cmdNew)
                newStage();
            else
            if(c == cmdUndo && !logic.undo())
                setStatus("\u4E0D\u80FD\u6094\u68CB!");
    }

    public void setOptions(int borderSize, boolean computerFirst, int degree)
    {
        this.borderSize = borderSize;
        this.computerFirst = computerFirst;
        this.degree = degree;
    }

    public boolean newStage()
    {
        addCommand(cmdUndo);
        addCommand(cmdStop);
        removeCommand(cmdNew);
        calcSize();
        logic = new FiveLogic(this, borderSize, computerFirst, degree);
        if(computerFirst)
            logic.computerGo();
        else
            setStatus("請下子\u8BF7\u4E0B\u5B50:");
        repaint();
        return true;
    }

    public void notifyGameEnd()
    {
        addCommand(cmdNew);
        addCommand(cmdStop);
        removeCommand(cmdUndo);
    }

    public void setStatus(String s)
    {
        setStatus(s, 0, 3);
    }

    public void setStatus(String s, int color, int image)
    {
        status = s;
        statusColor = color;
        statusImage = image;
        int x;
        int y;
        int w;
        int h;
        if(statusUpSide)
        {
            x = 0;
            y = 0;
            w = cavWidth;
            h = fHeight;
        } else
        {
            x = cWidth;
            y = 0;
            w = fWidth;
            h = cavHeight;
        }
        repaint(x, y, w, h);
    }

    public void repaintAt(int row, int col)
    {
        int pX = borderX + (col - 1) * gridLength;
        int pY = borderY + (row - 1) * gridLength;
        int pW = gridLength * 2;
        int pH = pW;
        repaint(pX, pY, pW, pH);
    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
7777精品伊人久久久大香线蕉经典版下载 | 亚洲与欧洲av电影| 欧美日韩免费观看一区三区| 亚洲精品久久7777| 欧美日韩视频在线第一区 | 久久99精品国产.久久久久久| 欧美成人性战久久| 美女免费视频一区| 久久久久久久久久美女| av一二三不卡影片| 亚洲超碰精品一区二区| 日韩一级黄色片| 国产乱码精品一区二区三区五月婷| 国产午夜精品久久| 91麻豆免费视频| 性做久久久久久免费观看| 精品国产伦一区二区三区观看体验| 国产乱对白刺激视频不卡| 亚洲天堂中文字幕| 91精品免费观看| 国产精品白丝av| 亚洲午夜影视影院在线观看| 日韩一二三四区| 91污在线观看| 久久99国产精品久久99果冻传媒| 国产精品天天看| 欧美日韩高清一区二区三区| 国产老女人精品毛片久久| 亚洲另类一区二区| 精品福利一二区| 欧美中文字幕亚洲一区二区va在线 | 丝袜亚洲精品中文字幕一区| 天天操天天干天天综合网| 精品国产一区二区在线观看| 色婷婷av一区二区| 国产精品一二三四五| 亚洲成人tv网| 中文字幕在线观看一区二区| 欧美一区2区视频在线观看| 成人黄色a**站在线观看| 婷婷中文字幕综合| 中文字幕视频一区二区三区久| 7777女厕盗摄久久久| 91网站最新地址| 韩国成人在线视频| 亚洲国产sm捆绑调教视频| 国产精品免费人成网站| 欧美一区二区福利在线| 欧美四级电影网| 成人高清视频在线观看| 极品美女销魂一区二区三区| 亚洲成人三级小说| 亚洲日本va午夜在线影院| 久久综合九色综合久久久精品综合 | 国产性色一区二区| 日韩一区二区免费在线电影 | 国产成人精品免费一区二区| 91亚洲精品乱码久久久久久蜜桃| 久久精品国产免费| 日韩国产欧美视频| 亚洲一区二区三区美女| 亚洲天堂网中文字| 日韩理论片一区二区| 国产精品久久久久一区二区三区共| 欧美sm美女调教| 日韩免费看的电影| 欧美一级欧美三级在线观看| 在线免费不卡电影| 91碰在线视频| 一道本成人在线| 91久久精品日日躁夜夜躁欧美| 懂色av一区二区三区免费观看 | 丁香婷婷综合色啪| 国产麻豆精品theporn| 九九九精品视频| 久久99精品国产| 久久精品国产**网站演员| 欧美aaaaa成人免费观看视频| 天天综合天天做天天综合| 日日骚欧美日韩| 日本不卡一区二区三区高清视频| 亚洲国产毛片aaaaa无费看| 亚洲另类春色校园小说| 亚洲一区在线观看免费| 一区二区三区.www| 亚洲国产美女搞黄色| 首页综合国产亚洲丝袜| 日韩国产精品大片| 韩国v欧美v日本v亚洲v| 成人蜜臀av电影| 91在线免费视频观看| 欧美在线观看一区二区| 欧美精三区欧美精三区| 日韩你懂的在线观看| 久久亚洲精品小早川怜子| 国产欧美精品区一区二区三区 | 亚洲最新在线观看| 亚洲成av人综合在线观看| 蜜桃av噜噜一区| 国产精品18久久久久| 不卡欧美aaaaa| 欧美日韩国产一区二区三区地区| 欧美另类videos死尸| 精品国一区二区三区| 亚洲欧洲成人精品av97| 亚洲成人av一区| 久久99久久久久久久久久久| 风间由美性色一区二区三区| 色婷婷精品大视频在线蜜桃视频| 7777精品伊人久久久大香线蕉超级流畅 | 欧美亚洲日本国产| 日韩精品自拍偷拍| 国产精品久久免费看| 亚洲一卡二卡三卡四卡| 精品亚洲国产成人av制服丝袜| 国产91精品久久久久久久网曝门| 91猫先生在线| 精品成人在线观看| 亚洲三级电影网站| 国产一区二区在线电影| 在线观看不卡一区| 久久这里只精品最新地址| 亚洲黄网站在线观看| 国内精品国产成人国产三级粉色| 色视频欧美一区二区三区| 久久婷婷综合激情| 亚洲一级二级三级在线免费观看| 国产在线视频一区二区| 欧美日韩性生活| 国产精品国产三级国产有无不卡 | 欧美日韩亚洲综合一区| 国产精品久线观看视频| 青娱乐精品视频| 色天天综合久久久久综合片| 久久久精品2019中文字幕之3| 亚洲一区二区av电影| 风间由美一区二区av101| 欧美精品丝袜中出| 国产精品你懂的在线欣赏| 激情另类小说区图片区视频区| 日本福利一区二区| 国产精品视频免费| 狠狠狠色丁香婷婷综合久久五月| 欧美在线观看一区二区| 中文字幕在线播放不卡一区| 国模无码大尺度一区二区三区| 欧美日韩国产一区| 亚洲精选视频免费看| 成人午夜私人影院| 国产午夜精品在线观看| 精品一区二区在线看| 日韩欧美视频一区| 日本美女一区二区三区视频| 欧美调教femdomvk| 亚洲一区二区三区在线播放| 东方aⅴ免费观看久久av| 久久亚洲一区二区三区明星换脸| 久久精品国产精品亚洲红杏| 在线播放亚洲一区| 日韩专区一卡二卡| 在线播放欧美女士性生活| 亚洲1区2区3区视频| 欧美日韩一区在线| 亚洲一二三级电影| 欧美日韩情趣电影| 午夜精品久久久久久久99樱桃| 在线免费观看成人短视频| 一区二区成人在线视频| 欧美性大战xxxxx久久久| 亚洲一区二区在线免费观看视频| 欧美在线视频你懂得| 丝袜脚交一区二区| 日韩美女在线视频| 久久成人久久爱| 久久久噜噜噜久噜久久综合| 国产福利不卡视频| 国产精品热久久久久夜色精品三区| 国产成人午夜电影网| 中文字幕免费不卡在线| 色综合久久久久综合| 亚洲午夜视频在线| 日韩一区二区三区电影在线观看 | 婷婷亚洲久悠悠色悠在线播放| 69堂成人精品免费视频| 精品一区二区三区影院在线午夜| 亚洲精品一区二区三区福利| 国产麻豆欧美日韩一区| 综合久久国产九一剧情麻豆| 91久久精品日日躁夜夜躁欧美| 亚洲444eee在线观看| 精品久久久三级丝袜| 大美女一区二区三区| 亚洲精品视频在线| 91精品国产综合久久精品性色| 精品一区二区三区香蕉蜜桃 | 色视频欧美一区二区三区| 日产欧产美韩系列久久99| 久久精品一二三| 一本色道综合亚洲| 久久se精品一区二区|