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

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

?? map.java

?? 利用Java Swing 編寫游戲源代碼 適用平臺 Win9x/Me/NT/2000/XP 包含很多示例文件。
?? JAVA
字號:
package kyodai.map;

import java.awt.Point;
import java.util.Random;
import java.util.Vector;

public class Map
{

    private int level;
    private int map[][];
    int array[];
    private int restBlock;
    private Vector vector;
    AnimateDelete animate;
    private boolean test;

    public Map()
    {
        level = 28;
        map = new int[10][17];
        array = new int[170];
        restBlock = level * 4;
        vector = new Vector();
        test = false;
        initMap();
    }

    public Map(int level)
    {
        this.level = 28;
        map = new int[10][17];
        array = new int[170];
        restBlock = this.level * 4;
        vector = new Vector();
        test = false;
        this.level = level;
        restBlock = level * 4;
        initMap();
    }

    public void setTest(boolean test)
    {
        this.test = test;
    }

    public void setLevel(int level)
    {
        this.level = level;
        restBlock = level * 4;
        initMap();
    }

    private void initMap()
    {
        for(int i = 0; i < level; i++)
        {
            array[i * 4] = i + 1;
            array[i * 4 + 1] = i + 1;
            array[i * 4 + 2] = i + 1;
            array[i * 4 + 3] = i + 1;
        }

        random(array);
        for(int i = 0; i < 10; i++)
        {
            for(int j = 0; j < 17; j++)
                map[i][j] = array[i * 17 + j];

        }

    }

    private void random(int array[])
    {
        Random random = new Random();
        for(int i = array.length; i > 0; i--)
        {
            int j = random.nextInt(i);
            int temp = array[j];
            array[j] = array[i - 1];
            array[i - 1] = temp;
        }

    }

    public void earse(Point a, Point b)
    {
        map[a.x][a.y] = 0;
        map[b.x][b.y] = 0;
        restBlock -= 2;
    }

    public int getCount()
    {
        return restBlock <= 0 ? 0 : restBlock;
    }

    public void refresh()
    {
        int count = getCount();
        if(count <= 0)
            return;
        int temp[] = new int[count];
        count = 0;
        for(int row = 0; row < 10; row++)
        {
            for(int col = 0; col < 17; col++)
                if(map[row][col] > 0)
                {
                    temp[count] = map[row][col];
                    count++;
                }

        }

        random(temp);
        count = 0;
        for(int row = 0; row < 10; row++)
        {
            for(int col = 0; col < 17; col++)
                if(map[row][col] > 0)
                {
                    map[row][col] = temp[count];
                    count++;
                }

        }

    }

    private boolean horizon(Point a, Point b, boolean recorder)
    {
        if(a.x == b.x && a.y == b.y)
            return false;
        int x_start = a.y <= b.y ? a.y : b.y;
        int x_end = a.y <= b.y ? b.y : a.y;
        for(int x = x_start + 1; x < x_end; x++)
            if(map[a.x][x] != 0)
                return false;

        if(!test && recorder)
            animate = new AnimateDelete(1, a, b);
        return true;
    }

    private boolean vertical(Point a, Point b, boolean recorder)
    {
        if(a.x == b.x && a.y == b.y)
            return false;
        int y_start = a.x <= b.x ? a.x : b.x;
        int y_end = a.x <= b.x ? b.x : a.x;
        for(int y = y_start + 1; y < y_end; y++)
            if(map[y][a.y] != 0)
                return false;

        if(!test && recorder)
            animate = new AnimateDelete(0, a, b);
        return true;
    }

    private boolean oneCorner(Point a, Point b)
    {
        Point c = new Point(a.x, b.y);
        Point d = new Point(b.x, a.y);
        if(map[c.x][c.y] == 0)
        {
            boolean method1 = horizon(a, c, false) && vertical(b, c, false);
            if(method1)
            {
                if(!test)
                    animate = new AnimateDelete(1, a, c, b);
                return method1;
            }
        }
        if(map[d.x][d.y] == 0)
        {
            boolean method2 = vertical(a, d, false) && horizon(b, d, false);
            if(method2 && !test)
                animate = new AnimateDelete(0, a, d, b);
            return method2;
        } else
        {
            return false;
        }
    }

    private Vector scan(Point a, Point b)
    {
        Vector v = new Vector();
        Point c = new Point(a.x, b.y);
        Point d = new Point(b.x, a.y);
        for(int y = a.y; y >= 0; y--)
            if(map[a.x][y] == 0 && map[b.x][y] == 0 && vertical(new Point(a.x, y), new Point(b.x, y), false))
                v.add(new Line(0, new Point(a.x, y), new Point(b.x, y)));

        for(int y = a.y; y < 17; y++)
            if(map[a.x][y] == 0 && map[b.x][y] == 0 && vertical(new Point(a.x, y), new Point(b.x, y), false))
                v.add(new Line(0, new Point(a.x, y), new Point(b.x, y)));

        for(int x = a.x; x >= 0; x--)
            if(map[x][a.y] == 0 && map[x][b.y] == 0 && horizon(new Point(x, a.y), new Point(x, b.y), false))
                v.add(new Line(1, new Point(x, a.y), new Point(x, b.y)));

        for(int x = a.x; x < 10; x++)
            if(map[x][a.y] == 0 && map[x][b.y] == 0 && horizon(new Point(x, a.y), new Point(x, b.y), false))
                v.add(new Line(1, new Point(x, a.y), new Point(x, b.y)));

        return v;
    }

    private boolean twoCorner(Point a, Point b)
    {
        vector = scan(a, b);
        if(vector.isEmpty())
            return false;
        for(int index = 0; index < vector.size(); index++)
        {
            Line line = (Line)vector.elementAt(index);
            if(line.direct == 1)
            {
                if(vertical(a, line.a, false) && vertical(b, line.b, false))
                {
                    if(!test)
                        animate = new AnimateDelete(0, a, line.a, line.b, b);
                    return true;
                }
            } else
            if(horizon(a, line.a, false) && horizon(b, line.b, false))
            {
                if(!test)
                    animate = new AnimateDelete(1, a, line.a, line.b, b);
                return true;
            }
        }

        return false;
    }

    public boolean test(Point a, Point b)
    {
        if(map[a.x][a.y] != map[b.x][b.y])
            return false;
        if(a.x == b.x && horizon(a, b, true))
            return true;
        if(a.y == b.y && vertical(a, b, true))
            return true;
        if(oneCorner(a, b))
            return true;
        else
            return twoCorner(a, b);
    }

    public Line findNext(Point a)
    {
        Point b = new Point();
        a = findFirst(a);
        if(a.equals(new Point(-1, -1)))
            return new Line(0, a, b);
        for(; !a.equals(new Point(-1, -1)); a = findFirst(a))
            for(b = findSecond(a, b); !b.equals(new Point(-1, -1)); b = findSecond(a, b))
                if(test(a, b))
                    return new Line(1, a, b);


        return new Line(0, a, b);
    }

    private Point findFirst(Point a)
    {
        int offset = 0;
        if(a != null)
            offset = a.x * 17 + a.y;
        if(offset < 0)
            offset = -1;
        for(int x = offset + 1; x < 170; x++)
        {
            int row = Math.round(x / 17);
            int col = x - row * 17;
            if(map[row][col] != 0)
                return new Point(row, col);
        }

        return new Point(-1, -1);
    }

    private Point findSecond(Point a, Point b)
    {
        if(a == null)
            return new Point(-1, -1);
        if(a.x + a.y < 0)
            return new Point(-1, -1);
        if(b == null)
            b = new Point(0, 0);
        int offset = Math.max(a.x * 17 + a.y, b.x * 17 + b.y);
        for(int x = offset + 1; x < 170; x++)
        {
            int row = Math.round(x / 17);
            int col = x - row * 17;
            if(map[row][col] == map[a.x][a.y])
                return new Point(row, col);
        }

        return new Point(-1, -1);
    }

    public int[][] getMap()
    {
        return map;
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲福中文字幕伊人影院| 色噜噜狠狠一区二区三区果冻| 欧美丰满一区二区免费视频| 天天av天天翘天天综合网 | 中文字幕乱码久久午夜不卡 | 日韩一级大片在线| 欧美96一区二区免费视频| 日韩视频免费观看高清完整版 | 日韩欧美国产wwwww| 精品一区二区三区影院在线午夜| 日韩欧美aaaaaa| 国产成人在线网站| 亚洲婷婷综合色高清在线| 色网站国产精品| 亚洲午夜久久久久久久久电影网 | 精品国产凹凸成av人导航| 国产一区二区三区免费观看| 国产日韩欧美制服另类| 91小视频在线观看| 香港成人在线视频| 欧美r级在线观看| 成人一区二区在线观看| 一区二区三区高清不卡| 欧美片在线播放| 久久精品国产免费| 国产精品毛片久久久久久| 欧美三级在线播放| 国产精品亚洲综合一区在线观看| 亚洲人成影院在线观看| 欧美一区二区三区公司| 成人一级视频在线观看| 天天操天天干天天综合网| 欧美高清在线精品一区| 欧美做爰猛烈大尺度电影无法无天| 蜜桃视频第一区免费观看| 国产精品全国免费观看高清| 欧美日韩在线播放| kk眼镜猥琐国模调教系列一区二区| 亚洲福利一区二区| 欧美激情一区二区三区蜜桃视频 | 亚洲精品国产视频| 91精品国产乱码久久蜜臀| 国产91清纯白嫩初高中在线观看| 亚洲一区二三区| 久久综合色8888| 欧美视频在线观看一区| 成人黄色av电影| 精品中文字幕一区二区小辣椒| 亚洲欧美色图小说| 久久久久88色偷偷免费| 在线观看av不卡| 国产美女精品在线| 亚洲一区二区成人在线观看| 国产欧美一区二区精品仙草咪| 欧美疯狂做受xxxx富婆| 在线观看免费一区| 91亚洲男人天堂| 成人sese在线| 国产精品一区二区久久精品爱涩| 亚洲高清一区二区三区| 亚洲精品欧美综合四区| 国产精品久久网站| 国产日韩在线不卡| 久久视频一区二区| 精品国产免费久久 | 97se亚洲国产综合自在线观| 精品在线你懂的| 日韩av电影免费观看高清完整版在线观看| 国产欧美精品在线观看| 日韩欧美资源站| 色偷偷久久一区二区三区| 国产成人免费在线观看| 久久国产欧美日韩精品| 五月婷婷久久丁香| 一区二区久久久久| 中文字幕一区二区三区在线观看| 日韩一区二区影院| 欧美日韩精品欧美日韩精品一综合| 成人黄色av电影| 成人18视频日本| 成人免费高清视频| 成人国产视频在线观看| 国产一区二区三区四区五区入口| 精品一区二区三区免费播放| 日韩黄色片在线观看| 亚洲超丰满肉感bbw| 天堂久久一区二区三区| 美国十次了思思久久精品导航| 日本成人在线电影网| 免费成人结看片| 国模套图日韩精品一区二区| 国产成人三级在线观看| 成人午夜短视频| av亚洲精华国产精华精| 色国产精品一区在线观看| 色吧成人激情小说| 欧美在线免费播放| 7777精品伊人久久久大香线蕉的| 欧美日韩久久不卡| 欧美老肥妇做.爰bbww| 欧美一区二区女人| 日本一区二区三区视频视频| 久久久久国产精品麻豆ai换脸| 国产精品丝袜黑色高跟| 国产精品不卡一区二区三区| 国产精品你懂的在线| 国产精品传媒入口麻豆| 中文字幕亚洲区| 亚洲精品乱码久久久久久日本蜜臀| 亚洲乱码国产乱码精品精可以看 | 91在线观看污| 欧美日韩国产美| 久久亚洲二区三区| 伊人婷婷欧美激情| 热久久久久久久| 99视频一区二区| 日韩一级视频免费观看在线| 国产欧美日韩精品在线| 亚洲一区免费观看| 国产成人亚洲精品狼色在线| 欧美做爰猛烈大尺度电影无法无天| 欧美一区二区三区男人的天堂| 国产女人18毛片水真多成人如厕| 亚洲国产日产av| 国产一区二区成人久久免费影院 | 理论电影国产精品| a级精品国产片在线观看| 欧美性视频一区二区三区| 日韩视频免费观看高清完整版在线观看 | 日韩美女视频一区| 亚洲图片欧美视频| 国内精品伊人久久久久影院对白| 色综合天天综合| 91麻豆精品国产自产在线观看一区 | 韩国v欧美v日本v亚洲v| 国产黄色精品网站| 欧美丰满美乳xxx高潮www| 中文字幕成人av| 亚洲午夜激情网站| caoporm超碰国产精品| 91精品蜜臀在线一区尤物| 亚洲欧洲精品一区二区三区 | 高清国产午夜精品久久久久久| 96av麻豆蜜桃一区二区| 26uuu另类欧美亚洲曰本| 亚洲欧美日韩综合aⅴ视频| 国产精品18久久久久久vr | 欧美日韩的一区二区| 久久久久国产精品麻豆ai换脸 | 国产精品看片你懂得| 久久99热国产| 欧美一级片在线| 亚洲444eee在线观看| 94色蜜桃网一区二区三区| 国产免费成人在线视频| 久久99在线观看| 欧美一级日韩免费不卡| 日韩av在线播放中文字幕| 欧美日韩国产成人在线免费| 亚洲免费在线播放| 色婷婷综合激情| 亚洲免费在线观看视频| 91猫先生在线| 亚洲精品福利视频网站| 色综合天天综合色综合av| 亚洲欧美一区二区三区孕妇| 99久久精品国产一区二区三区| 欧美—级在线免费片| 国产成人综合网| 欧美国产日韩一二三区| 大陆成人av片| 亚洲天堂a在线| 91视频在线看| 一区二区在线观看视频| 在线免费观看不卡av| 一区二区三区av电影| 色妞www精品视频| 一区二区在线观看视频| 欧美视频完全免费看| 日本中文在线一区| 日韩欧美成人午夜| 国产福利一区二区三区| 中文字幕免费不卡在线| 91麻豆免费看| 石原莉奈一区二区三区在线观看| 日韩视频在线你懂得| 国产乱人伦精品一区二区在线观看 | 国产精品国产三级国产普通话99 | 精品欧美一区二区在线观看| 激情亚洲综合在线| 欧美经典一区二区| 色域天天综合网| 日本女人一区二区三区| 国产婷婷一区二区| 一本久久a久久免费精品不卡| 亚洲成在线观看| 久久婷婷国产综合国色天香| 91亚洲精华国产精华精华液| 天堂午夜影视日韩欧美一区二区| 久久先锋影音av|