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

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

?? mythread.java

?? 使用JAVA開發一個俄羅斯方塊小游戲源碼,希望對初學都有幫助.
?? JAVA
字號:
package eluosi;

import java.awt.AWTException;
import java.awt.Robot;
import java.util.Random;

public class MyThread extends Thread
{
    public static MainFrame main = new MainFrame();
    public static final int MAXX = 12;
    public static final int MAXY = 24;
    public static boolean isDead = false;
    public static boolean start = false;
    public static boolean start1;
    public static int DieLine[] = new int[4];
    public static int Score = 0;
    public static int Level = 0;
    public static int Speed = 0;
    public static int NextScore = 100;
    public static int time[] = {
        900, 800, 700, 600, 500, 400, 300, 200, 100
    };
    public static boolean fall = false;
    public static Random random = new Random();
    public static Object CurObj = new Object();
    public static Object NexObj = new Object();
    public static int EV[][] = new int[12][24];
    public static Robot ne;
    public MyThread(){
    	try {
			ne = new Robot();
		} catch (AWTException e) {
			e.printStackTrace();
		}
    }
    public void run()
    {
        BeginGame();
        while(start1){
        	if(!start)yanshi(2);
            while(start) 
            {
                yanshi(time[Speed]);
                if(start)
                  fall();
                isDead();
                if(isDead)
                {
                    EndGame();
                    start = false;
                    start1 = false;
                }
            }
        }
    }

    public static void CreateObj(Object obj)
    {
        int sx = 6;
        obj.type = random.nextInt(7)+1;
        switch(obj.type)
        {
        case 1:
            obj.pos[0].x = sx;
            obj.pos[0].y = 0;
            obj.pos[1].x = sx + 1;
            obj.pos[1].y = 0;
            obj.pos[2].x = sx;
            obj.pos[2].y = 1;
            obj.pos[3].x = sx + 1;
            obj.pos[3].y = 1;
            obj.center.x = 0;
            obj.center.y = 0;
            break;

        case 2:
            obj.pos[0].x = sx;
            obj.pos[0].y = 0;
            obj.pos[1].x = sx;
            obj.pos[1].y = 1;
            obj.pos[2].x = sx + 1;
            obj.pos[2].y = 1;
            obj.pos[3].x = sx + 1;
            obj.pos[3].y = 2;
            obj.center.x = sx + 1;
            obj.center.y = 1;
            break;

        case 3:
            obj.pos[0].x = sx + 1;
            obj.pos[0].y = 0;
            obj.pos[1].x = sx;
            obj.pos[1].y = 1;
            obj.pos[2].x = sx + 1;
            obj.pos[2].y = 1;
            obj.pos[3].x = sx;
            obj.pos[3].y = 2;
            obj.center.x = sx;
            obj.center.y = 1;
            break;

        case 4:
            obj.pos[0].x = sx;
            obj.pos[0].y = 0;
            obj.pos[1].x = sx + 1;
            obj.pos[1].y = 0;
            obj.pos[2].x = sx + 1;
            obj.pos[2].y = 1;
            obj.pos[3].x = sx + 1;
            obj.pos[3].y = 2;
            obj.center.x = sx + 1;
            obj.center.y = 1;
            break;

        case 5:
            obj.pos[0].x = sx;
            obj.pos[0].y = 0;
            obj.pos[1].x = sx + 1;
            obj.pos[1].y = 0;
            obj.pos[2].x = sx;
            obj.pos[2].y = 1;
            obj.pos[3].x = sx;
            obj.pos[3].y = 2;
            obj.center.x = sx;
            obj.center.y = 1;
            break;

        case 6:
            obj.pos[0].x = sx;
            obj.pos[0].y = 0;
            obj.pos[1].x = sx;
            obj.pos[1].y = 1;
            obj.pos[2].x = sx + 1;
            obj.pos[2].y = 1;
            obj.pos[3].x = sx;
            obj.pos[3].y = 2;
            obj.center.x = sx;
            obj.center.y = 1;
            break;

        case 7:
            obj.pos[0].x = sx;
            obj.pos[0].y = 0;
            obj.pos[1].x = sx;
            obj.pos[1].y = 1;
            obj.pos[2].x = sx;
            obj.pos[2].y = 2;
            obj.pos[3].x = sx;
            obj.pos[3].y = 3;
            obj.center.x = sx;
            obj.center.y = 2;
            break;
        }
    }

    public static void SetCruObjZero()
    {
        for(int i = 0; i < 4; i++)
            CurObj.pos[i].y = 30;
    }

    public static void Filp()
    {
        Point temp[] = new Point[4];
        temp[0] = new Point();
        temp[1] = new Point();
        temp[2] = new Point();
        temp[3] = new Point();
        if(CurObj.type == 0)
            return;
        for(int i = 0; i < 4; i++)
        {
            int cx = CurObj.pos[i].x - CurObj.center.x;
            int cy = CurObj.center.y - CurObj.pos[i].y;
            temp[i].x = CurObj.center.x + cy;
            temp[i].y = CurObj.center.y + cx;
            if(temp[i].x < 0 || temp[i].x >= 12)
                return;
            if(temp[i].y < 0 || temp[i].y >= 24)
                return;
            if(EV[temp[i].x][temp[i].y] == 1)
                return;
        }

        for(int i = 0; i < 4; i++)
        {
            CurObj.pos[i].x = temp[i].x;
            CurObj.pos[i].y = temp[i].y;
        }
        main.repaint();
    }

    public static void GetNextObj()
    {
        CurObj.type = NexObj.type;
        CurObj.center.x = NexObj.center.x;
        CurObj.center.y = NexObj.center.y;
        for(int i = 0; i < 4; i++)
        {
            CurObj.pos[i].x = NexObj.pos[i].x;
            CurObj.pos[i].y = NexObj.pos[i].y;
        }
        CreateObj(NexObj);
        main.repaint();
    }

    public static void DelDieLine()
    {
        int isDead = 1;
        int DieCount = 0;
        for(int i = 0; i < 4; i++)
            DieLine[i] = -1;

        for(int i = 23; i >= 0; i--)
        {
            isDead = 1;
            for(int j = 0; j < 12; j++)
            {
                if(EV[j][i] != 0)
                    continue;
                isDead = 0;
                break;
            }

            if(isDead == 1)
            {
                DieLine[DieCount] = i;
                DieCount++;
            }
        }

        switch(DieCount)
        {
        case 1:
            Score++;
            break;

        case 2:
            Score += 3;
            break;

        case 3:
            Score += 4;
            break;

        case 4:
            Score += 6;
            break;
        }
        if(Score >= NextScore)
        {
            Speed++;
            if(Speed >= 9)
                Speed = 0;
            NextScore += 100;
        }
        for(int i = DieCount - 1; i >= 0; i--)
        {
            for(int DestLine = DieLine[i]; DestLine > 0; DestLine--)
            {
                for(int j = 0; j < 12; j++)
                    EV[j][DestLine] = EV[j][DestLine - 1];
            }
        }
    }

    public static void Move(int step)
    {
        Point temp[] = new Point[4];
        temp[0] = new Point();
        temp[1] = new Point();
        temp[2] = new Point();
        temp[3] = new Point();
        for(int i = 0; i < 4; i++)
        {
            temp[i].x = CurObj.pos[i].x + step;
            temp[i].y = CurObj.pos[i].y;
            if(temp[i].x < 0 || temp[i].x >= 12)
                return;
            if(temp[i].y < 0 || temp[i].y >= 24)
                return;
            if(EV[temp[i].x][temp[i].y] != 0)
                return;
        }

        for(int i = 0; i < 4; i++)
        {
            CurObj.pos[i].x = temp[i].x;
            CurObj.pos[i].y = temp[i].y;
        }

        CurObj.center.x += step;
        main.repaint();
    }

    public static void fall()
    {
        Point temp[] = new Point[4];
        temp[0] = new Point();
        temp[1] = new Point();
        temp[2] = new Point();
        temp[3] = new Point();
        for(int i = 0; i < 4; i++)
        {
            temp[i].x = CurObj.pos[i].x;
            temp[i].y = CurObj.pos[i].y + 1;
            if(temp[i].y >= 30)
                return;
            if(temp[i].y >= 24)
            {
                for(int n = 0; n < 4; n++)
                    EV[CurObj.pos[n].x][CurObj.pos[n].y] = CurObj.type;

                DelDieLine();
                SetCruObjZero();
                GetNextObj();
                main.repaint();
                return;
            }
            if(EV[temp[i].x][temp[i].y] != 0)
            {
                for(int n = 0; n < 4; n++)
                    EV[CurObj.pos[n].x][CurObj.pos[n].y] = CurObj.type;

                DelDieLine();
                SetCruObjZero();
                GetNextObj();
                main.repaint();
                return;
            }
        }

        for(int i = 0; i < 4; i++)
        {
            CurObj.pos[i].x = temp[i].x;
            CurObj.pos[i].y = temp[i].y;
        }
        
        CurObj.center.y++;
        main.repaint();
    }

    public static void isDead()
    {
        int isdead = 0;
        for(int i = 23; i >= 0; i--)
        {
            isdead = 1;
            for(int j = 0; j < 12; j++)
            {
                if(EV[j][i] == 0)
                    continue;
                isdead = 0;
                break;
            }
        }

        if(isdead == 0)
        {
            isDead = true;
            SetCruObjZero();
        }
    }

    public static void EndGame()
    {
        Level = 0;
        Speed = 0;
        Score = 0;
        for(int j = 0; j < 24; j++)
        {
            for(int i = 0; i < 12; i++)
                EV[i][j] = 1;

            main.repaint();
            yanshi(5);
        }

        for(int j = 23; j >= 0; j--)
        {
            for(int i = 11; i >= 0; i--)
                EV[i][j] = 0;

            main.repaint();
            yanshi(5);
        }
    }

    public void BeginGame()
    {
        start = true;
        start1 = true;
        isDead = false;
        CreateObj(NexObj);
        GetNextObj();
        for(int i = 0; i < 12; i++)
        {
            for(int j = 0; j < 24; j++)
                EV[i][j] = 0;
        }

        for(int i = 0; i < 12; i++)
        {
            for(int j = 24 - Level; j < 24; j++)
                EV[i][j] = random.nextInt(7)+1;
        }

        main.repaint();
    }

    public static void yanshi(int shijian)
    {       
            ne.delay(shijian);
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区专区| 豆国产96在线|亚洲| 国产精品久线观看视频| 久久综合狠狠综合久久综合88| 69p69国产精品| 日韩欧美美女一区二区三区| 欧美一级二级三级乱码| 日韩视频一区二区| 久久亚洲综合色| 欧美精彩视频一区二区三区| 成人欧美一区二区三区白人| 欧美国产视频在线| 亚洲日本在线a| 午夜电影久久久| 久久精品国产在热久久| 国产精品乡下勾搭老头1| 成人性视频免费网站| 91美女精品福利| 555www色欧美视频| 国产欧美精品一区二区色综合朱莉| 国产精品情趣视频| 亚洲欧洲一区二区三区| 婷婷国产在线综合| 国产乱码精品1区2区3区| 91丨九色丨蝌蚪丨老版| 8x8x8国产精品| 中文字幕永久在线不卡| 丰满亚洲少妇av| 91福利区一区二区三区| 欧美一区二区视频在线观看| 久久亚洲精华国产精华液 | 久久成人综合网| 高清不卡一区二区在线| 欧美日韩另类国产亚洲欧美一级| 欧美一级一区二区| 专区另类欧美日韩| 免费人成在线不卡| 色综合久久综合网97色综合| 日韩视频一区二区在线观看| 最新日韩在线视频| 韩国欧美一区二区| 欧美图片一区二区三区| 中文一区二区完整视频在线观看| 亚洲一区二区av在线| 高清av一区二区| 欧美一区二区在线免费播放 | 九九九精品视频| 日本韩国精品在线| 欧美精品一区二| 亚洲成av人片一区二区| 91亚洲精品乱码久久久久久蜜桃| 欧美成人欧美edvon| 午夜精品福利视频网站| 95精品视频在线| 五月婷婷色综合| 色中色一区二区| 中文字幕中文字幕在线一区| 狠狠色丁香婷婷综合| 欧美放荡的少妇| 亚洲成人7777| 欧美视频一区在线| 亚洲精品高清在线| 91在线视频官网| 日韩一区有码在线| 99在线精品观看| 亚洲欧美日韩综合aⅴ视频| 成人的网站免费观看| 国产欧美日韩在线| 国产福利91精品一区二区三区| 日韩一区二区精品葵司在线| 天天综合网 天天综合色| 欧美日韩午夜在线| 亚洲福利视频三区| 51久久夜色精品国产麻豆| 日韩高清国产一区在线| 欧美日韩国产123区| 亚洲成人av在线电影| 欧美日韩国产大片| 六月丁香综合在线视频| 久久影音资源网| 国产成人在线观看| 亚洲同性gay激情无套| 色综合天天在线| 亚洲自拍都市欧美小说| 欧美精品在线一区二区三区| 亚洲v中文字幕| 精品免费国产二区三区| 国产精品123| 亚洲视频你懂的| 欧美日韩午夜影院| 韩国成人福利片在线播放| 久久精品水蜜桃av综合天堂| 成人激情午夜影院| 亚洲韩国一区二区三区| 日韩一级二级三级精品视频| 韩国女主播成人在线| 亚洲色欲色欲www在线观看| 欧美视频日韩视频| 精东粉嫩av免费一区二区三区| 久久精品一区二区三区四区| 成人av资源在线| 午夜精品一区在线观看| 亚洲精品在线观| 色成年激情久久综合| 一区二区三区在线免费| 日韩一区二区在线免费观看| 成人一级黄色片| 奇米777欧美一区二区| 国产精品色哟哟| 日韩一区二区三区在线观看| 丁香婷婷深情五月亚洲| 天天综合日日夜夜精品| 国产人伦精品一区二区| 欧美无砖砖区免费| 国产91丝袜在线播放九色| 亚洲高清免费一级二级三级| 国产色综合久久| 91麻豆精品国产自产在线观看一区| 国产精品一区二区在线看| 午夜精品久久久久久久久 | 99综合影院在线| 美美哒免费高清在线观看视频一区二区 | 成人免费高清视频在线观看| 亚洲第一av色| 亚洲欧洲韩国日本视频| 日韩精品一区二区三区在线播放 | 偷拍亚洲欧洲综合| 国产精品国产a| 精品久久久久久最新网址| 欧洲一区二区三区免费视频| 风间由美性色一区二区三区| 免费成人在线视频观看| 亚洲综合图片区| 国产精品久久福利| 国产视频一区在线播放| 日韩一区二区在线看片| 欧美日韩高清一区二区不卡| 日本国产一区二区| 国产不卡在线一区| 国产又粗又猛又爽又黄91精品| 亚洲裸体xxx| 国产精品高潮呻吟久久| 国产精品欧美一区喷水| 久久影院电视剧免费观看| 久久先锋资源网| 久久综合九色综合97_久久久| 日韩一区二区电影| 日韩欧美国产小视频| 91精品在线观看入口| 欧美一级精品大片| 欧美一区二区在线看| 日韩欧美国产一区二区在线播放| 欧美一区二区三区日韩| 制服丝袜亚洲精品中文字幕| 欧美日韩一区二区三区在线| 欧美日韩高清一区二区不卡| 欧美日韩不卡一区| 欧美老人xxxx18| 91精品国产综合久久香蕉的特点 | 欧美白人最猛性xxxxx69交| 日韩午夜在线播放| 26uuu国产日韩综合| 国产亚洲一区二区三区四区| 国产区在线观看成人精品 | 日韩一区二区中文字幕| 欧美成人精品1314www| 久久蜜桃香蕉精品一区二区三区| 欧美xingq一区二区| 国产欧美日韩另类一区| 亚洲欧洲综合另类在线| 亚洲韩国一区二区三区| 日本欧美在线看| 粉嫩av亚洲一区二区图片| 成人av在线网站| 在线观看欧美日本| 欧美白人最猛性xxxxx69交| 中文字幕欧美区| 亚洲一区二区三区视频在线| 日本成人在线看| thepron国产精品| 欧美日韩高清一区| 久久精品免视看| 一二三四社区欧美黄| 久久精品国产精品亚洲红杏| 成人自拍视频在线| 欧美日韩成人综合在线一区二区| 精品日韩一区二区| 亚洲黄一区二区三区| 免费的成人av| 日本道色综合久久| 337p粉嫩大胆噜噜噜噜噜91av | 欧美亚洲日本国产| 精品电影一区二区三区| 亚洲裸体xxx| 国产精品123| 91精品中文字幕一区二区三区| 国产精品青草久久| 激情av综合网| 51久久夜色精品国产麻豆| 综合av第一页|