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

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

?? spider.java

?? java紙牌java紙牌java紙牌java紙牌java紙牌java紙牌
?? JAVA
字號(hào):
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;

public class Spider extends JFrame{
	
	//整型變量,表示難度等級(jí)為:簡(jiǎn)單
	public static final int EASY = 1;
    //整型變量,表示難度等級(jí)為:普通
	public static final int NATURAL = 2;
    //整型變量,表示難度等級(jí)為:難
	public static final int HARD = 3;
    //設(shè)定初始難度等級(jí)為簡(jiǎn)單
	private int grade = Spider.EASY;
    private Container pane = null;
    //生成紙牌數(shù)組
	private PKCard cards[] = new PKCard[104];
    private JLabel clickLabel = null;
    private int c = 0;
    private int n = 0;
    private int a = 0;
    private int finish = 0;
    Hashtable table = null;
    private JLabel groundLabel[] = null;

    public static void main(String[] args){
        Spider spider = new Spider();
		spider.setVisible(true);
    }

    /**
     **構(gòu)造函數(shù)
     */
    public Spider(){
		setTitle("蜘蛛牌");
        setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
        //設(shè)置框架的大小
		setSize(1024, 742);
        
		//生成SpiderMenuBar對(duì)象,并放置在框架之上
		setJMenuBar(new SpiderMenuBar(this));
        pane = this.getContentPane();
        //設(shè)置背景顏色
		pane.setBackground(new Color(0, 112, 26));
        //將布局管理器設(shè)置成為null
		pane.setLayout(null);
        clickLabel = new JLabel();
        clickLabel.setBounds(883, 606, 121, 96);
        pane.add(clickLabel);
        
		clickLabel.addMouseListener(new MouseAdapter(){
            public void mouseReleased(MouseEvent me){
                if (c < 60){
					Spider.this.deal();
				}
            }
        });
        
		this.initCards();
        this.randomCards();
        this.setCardsLocation();
        groundLabel = new JLabel[10];
        
		int x = 20;
        for (int i = 0; i < 10; i++)
        {
            groundLabel[i] = new JLabel();
            groundLabel[i]
                    .setBorder(javax.swing.BorderFactory
                            .createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));
            groundLabel[i].setBounds(x, 25, 71, 96);
            x += 101;
            this.pane.add(groundLabel[i]);
        }
        
		this.setVisible(true);
        this.deal();
        
		this.addKeyListener(new KeyAdapter(){
            class Show extends Thread{
                public void run(){
                    Spider.this.showEnableOperator();
                }
            }

            public void keyPressed(KeyEvent e){
                if (finish != 8) if (e.getKeyCode() == KeyEvent.VK_D && c < 60){
                    Spider.this.deal();
                }
                else if (e.getKeyCode() == KeyEvent.VK_M){
                    new Show().start();
                }
            }
        });
    }

    /**
	 **開(kāi)始新游戲
	 */
	public void newGame(){
        this.randomCards();
        this.setCardsLocation();
        this.setGroundLabelZOrder();
        this.deal();
    }

    /**
	 **返回值:int
	 **返回牌的數(shù)量
	  */
	public int getC(){
        return c;
    }

    /**
	 **設(shè)置等級(jí)
	 */
	public void setGrade(int grade){
        this.grade = grade;
    }

    /**
	 **紙牌初始化
	 */
	public void initCards(){
        //如果紙牌已被賦值,即將其從框架的面板中移去
		if (cards[0] != null){
            for (int i = 0; i < 104; i++){
                pane.remove(cards[i]);
            }
        }
        
		int n = 0;
        //通過(guò)難度等級(jí),為n賦值
		if (this.grade == Spider.EASY){
            n = 1;
        }
        else if (this.grade == Spider.NATURAL){
            n = 2;
        }
        else{
            n = 4;
        }
      //為card賦值  
		for (int i = 1; i <= 8; i++){
            for (int j = 1; j <= 13; j++){
                cards[(i - 1) * 13 + j - 1] = new PKCard((i % n + 1) + "-" + j,
                        this);
            }
        }
        
		//隨機(jī)紙牌初始化
		this.randomCards();
    }

    /**
	 **紙牌隨機(jī)分配
	 */
	public void randomCards(){
        PKCard temp = null;
        //隨機(jī)生成牌號(hào)
		for (int i = 0; i < 52; i++){
            int a = (int) (Math.random() * 104);
            int b = (int) (Math.random() * 104);
            temp = cards[a];
            cards[a] = cards[b];
            cards[b] = temp;
        }
    }

    /**
	 **設(shè)置還原
	 */
	public void setNA(){
        a = 0;
        n = 0;
    }

    /**
	 **設(shè)置紙牌的位置
	 */
	public void setCardsLocation(){
        table = new Hashtable();
        c = 0;
        finish = 0;
        n = 0;
        a = 0;
        int x = 883;
        int y = 580;
		//初始化待展開(kāi)的紙牌
        for (int i = 0; i < 6; i++){
            for (int j = 0; j < 10; j++){
                int n = i * 10 + j;
                pane.add(cards[n]);
                //將card轉(zhuǎn)向背面
				cards[n].turnRear();
                //將card放在固定的位置上
				cards[n].moveto(new Point(x, y));
                //將card的位置及相關(guān)信息存入
				table.put(new Point(x, y), cards[n]);
            }
            x += 10;
        }
		
		x = 20;
        y = 45;
        //初始化表面顯示的紙牌
		for (int i = 10; i > 5; i--){
            for (int j = 0; j < 10; j++){
                int n = i * 10 + j;
                if (n >= 104) continue;
                pane.add(cards[n]);
                cards[n].turnRear();
                cards[n].moveto(new Point(x, y));
                table.put(new Point(x, y), cards[n]);
                x += 101;
            }
            x = 20;
            y -= 5;
        }
    }

    /**
	 **返回值:void
	 **方法:顯示可移動(dòng)的操作
	 */
	public void showEnableOperator(){
        int x = 0;
        out: while (true){
            Point point = null;
            PKCard card = null;
            do{
                if (point != null){
					n++;
				}
                point = this.getLastCardLocation(n);
                while (point == null){
                    point = this.getLastCardLocation(++n);
                    if (n == 10) n = 0;
                    x++;
                    if (x == 10) break out;
                }
                card = (PKCard) this.table.get(point);
            }
            while (!card.isCardCanMove());
            while (this.getPreviousCard(card) != null
                    && this.getPreviousCard(card).isCardCanMove()){
                card = this.getPreviousCard(card);
            }
            if (a == 10){
				a = 0;
			}
            for (; a < 10; a++){
                if (a != n){
                    Point p = null;
                    PKCard c = null;
                    do{
                        if (p != null){
							a++;
						}
						p = this.getLastCardLocation(a);
                        int z = 0;
                        while (p == null){
                            p = this.getLastCardLocation(++a);
                            if (a == 10) a = 0;
                            if (a == n) a++;
                            z++;
                            if (z == 10) break out;
                        }
                        c = (PKCard) this.table.get(p);
                    }
                    while (!c.isCardCanMove());
                    if (c.getCardValue() == card.getCardValue() + 1){
                        card.flashCard(card);
                        try{
                            Thread.sleep(800);
                        }
                        catch (InterruptedException e){
                            e.printStackTrace();
                        }
                        c.flashCard(c);
                        a++;
                        if (a == 10){
							n++;
						}
                        break out;
                    }
                }
            }
            n++;
            if (n == 10){
				n = 0;
			}
            x++;
            if (x == 10){
				break out;
			}
        }
    }

    /*
	 **返回值:void
	 **方法:游戲運(yùn)行
	 */
	public void deal()
    {
        this.setNA();
        //判斷10列中是否空列
		for (int i = 0; i < 10; i++){
            if (this.getLastCardLocation(i) == null){
                JOptionPane.showMessageDialog(this, "有空位不能發(fā)牌!", "提示",
                        JOptionPane.WARNING_MESSAGE);
                return;
            }
        }
        int x = 20;
        
		for (int i = 0; i < 10; i++){
            Point lastPoint = this.getLastCardLocation(i);
            //這張牌應(yīng)“背面向上”
			if (c == 0){
                lastPoint.y += 5;
			}
            //這張牌應(yīng)“正面向上”
			else{
                lastPoint.y += 20;
			}
            
			table.remove(cards[c + i].getLocation());
            cards[c + i].moveto(lastPoint);
            table.put(new Point(lastPoint), cards[c + i]);
            cards[c + i].turnFront();
            cards[c + i].setCanMove(true);
            
			//將組件card移動(dòng)到容器中指定的順序索引。 
			this.pane.setComponentZOrder(cards[c + i], 1);
            
			Point point = new Point(lastPoint);
            if (cards[c + i].getCardValue() == 1){
                int n = cards[c + i].whichColumnAvailable(point);
                point.y -= 240;
                PKCard card = (PKCard) this.table.get(point);
                if (card != null && card.isCardCanMove()){
                    this.haveFinish(n);
                }
            }
            x += 101;
        }
        c += 10;
    }

	/*
	 **返回值:PKCard對(duì)象
	 **方法:獲得card上面的那張牌
	 */
	public PKCard getPreviousCard(PKCard card){
        Point point = new Point(card.getLocation());
        point.y -= 5;
        card = (PKCard) table.get(point);
        if (card != null){
			return card;
		}
        point.y -= 15;
        card = (PKCard) table.get(point);
        return card;
    }

    /**
	 **返回值:PKCard對(duì)象
	 **方法:取得card下面的一張牌
	 */
	public PKCard getNextCard(PKCard card){
        Point point = new Point(card.getLocation());
        point.y += 5;
        card = (PKCard) table.get(point);
        if (card != null)
			return card;
        point.y += 15;
        card = (PKCard) table.get(point);
        return card;
    }

    /**
	 **返回值:Point對(duì)象
	 **方法:取得第column列最后一張牌的位置
	 */
	public Point getLastCardLocation(int column){
        Point point = new Point(20 + column * 101, 25);
        PKCard card = (PKCard) this.table.get(point);
        if (card == null) return null;
        while (card != null){
            point = card.getLocation();
            card = this.getNextCard(card);
        }
        return point;
    }

    public Point getGroundLabelLocation(int column){
        return new Point(groundLabel[column].getLocation());
    }

    /*
	 **返回值:void
	 **方法:放置groundLable組件
	 */
	public void setGroundLabelZOrder(){
        for (int i = 0; i < 10; i++){
            //將組件groundLable移動(dòng)到容器中指定的順序索引。順序(105+i)確定了繪制組件的順序;具有最高順序的組件將第一個(gè)繪制,而具有最低順序的組件將最后一個(gè)繪制。在組件重疊的地方,具有較低順序的組件將覆蓋具有較高順序的組件。 
			pane.setComponentZOrder(groundLabel[i], 105 + i);
        }
    }

    /*
	 **返回值:void
	 **方法:判斷紙牌的擺放是否完成
	 */
	public void haveFinish(int column){
        Point point = this.getLastCardLocation(column);
        PKCard card = (PKCard) this.table.get(point);
        do{
            this.table.remove(point);
            card.moveto(new Point(20 + finish * 10, 580));
            //將組件移動(dòng)到容器中指定的順序索引。 
			pane.setComponentZOrder(card, 1);
            //將紙牌新的相關(guān)信息存入Hashtable
			this.table.put(card.getLocation(), card);
            card.setCanMove(false);
            point = this.getLastCardLocation(column);
            if (point == null)
                card = null;
            else
                card = (PKCard) this.table.get(point);
        }
        while (card != null && card.isCardCanMove());
        finish++;
        //如果8付牌全部組合成功,則顯示成功的對(duì)話(huà)框
		if (finish == 8){
            JOptionPane.showMessageDialog(this, "恭喜你,順利通過(guò)!", "成功",
                    JOptionPane.PLAIN_MESSAGE);
        }
        if (card != null){
            card.turnFront();
            card.setCanMove(true);
        }
    }
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情久久五月天| 欧美在线短视频| 亚洲国产cao| 国产亚洲综合在线| 精品污污网站免费看| 国产 日韩 欧美大片| 日韩一区二区三区电影在线观看 | 日产欧产美韩系列久久99| 国产人伦精品一区二区| 欧美日韩精品久久久| a级精品国产片在线观看| 韩国av一区二区三区| 天堂久久久久va久久久久| 日韩一区中文字幕| 精品av久久707| 欧美精品自拍偷拍| 91女神在线视频| 国产一区二区三区| 免费人成在线不卡| 亚洲黄色小视频| 欧美国产欧美综合| 久久色在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 日韩—二三区免费观看av| 一区二区中文字幕在线| 国产欧美精品一区二区色综合 | 乱中年女人伦av一区二区| 一区二区三区日韩在线观看| 国产精品日韩精品欧美在线| 亚洲精品一区二区三区影院| 日韩欧美国产精品| 欧美一区二区三区色| 欧美日韩一区二区电影| 日本精品裸体写真集在线观看 | 免费一级欧美片在线观看| 午夜精品久久久久久久蜜桃app | 麻豆精品精品国产自在97香蕉| 亚洲综合自拍偷拍| 亚洲综合自拍偷拍| 亚洲精品第一国产综合野| 国产精品视频一二三区| 国产日韩欧美高清| 国产丝袜欧美中文另类| 国产亚洲欧美在线| 久久久久国产精品人| 久久久久综合网| 久久精品视频在线看| 国产日韩欧美在线一区| 中文字幕的久久| 国产精品色噜噜| 成人免费一区二区三区在线观看| 中文字幕在线不卡| 亚洲另类一区二区| 一区二区三区毛片| 亚洲综合激情另类小说区| 中文字幕一区二区三区视频| 中文字幕日韩一区二区| 亚洲色图欧美偷拍| 一区二区三区精品视频| 午夜伦理一区二区| 美女在线视频一区| 国产精品系列在线观看| 99久久伊人久久99| 欧洲一区在线观看| 日韩欧美的一区| 国产喂奶挤奶一区二区三区| 国产精品久久看| 亚洲在线一区二区三区| 奇米综合一区二区三区精品视频| 国模大尺度一区二区三区| 国产成人亚洲精品青草天美| 色综合久久久久综合99| 91精品国产综合久久久蜜臀图片| www日韩大片| 中文字幕一区二区三区不卡在线| 一二三区精品福利视频| 久久精品国产精品亚洲红杏| 波多野结衣中文字幕一区二区三区 | 色丁香久综合在线久综合在线观看| 精品视频1区2区3区| 精品电影一区二区三区| 亚洲欧洲成人av每日更新| 亚洲在线视频网站| 国产精品原创巨作av| 色综合中文字幕| 精品999在线播放| 一区二区三区四区中文字幕| 蜜桃精品视频在线观看| 成人av免费在线播放| 欧美剧情电影在线观看完整版免费励志电影| 欧美一区二区精美| 国产精品久久久久一区二区三区共| 偷拍一区二区三区四区| 国产91富婆露脸刺激对白| 欧美妇女性影城| 国产精品免费人成网站| 美国十次综合导航| 色综合天天综合在线视频| 欧美成人精品福利| 一区二区三区影院| 国产999精品久久久久久绿帽| 91超碰这里只有精品国产| 国产精品久久久久影院老司| 美女网站一区二区| 91福利社在线观看| 国产精品亲子伦对白| 久久黄色级2电影| 欧美三级三级三级爽爽爽| 中文欧美字幕免费| 麻豆成人免费电影| 欧美视频完全免费看| 国产精品麻豆网站| 黄页视频在线91| 欧美裸体一区二区三区| 亚洲欧美日韩成人高清在线一区| 国产最新精品免费| 欧美一区二区三区视频在线观看| 亚洲欧美日韩国产中文在线| 高清成人免费视频| 久久免费的精品国产v∧| 日本v片在线高清不卡在线观看| 色一区在线观看| 成人免费视频在线观看| 成人免费观看av| 国产区在线观看成人精品| 久久精品国产一区二区三区免费看| 在线亚洲一区二区| 亚洲精品中文字幕在线观看| 成人一区二区三区中文字幕| 国产无一区二区| 国产精品一区三区| 久久蜜桃av一区二区天堂 | 在线欧美日韩精品| 亚洲天堂久久久久久久| 成人午夜伦理影院| 国产精品无码永久免费888| 国产麻豆精品久久一二三| 欧美大胆一级视频| 久久国内精品自在自线400部| 日韩一区二区三区视频| 六月丁香婷婷久久| 日韩欧美激情一区| 日本不卡中文字幕| 精品国产伦理网| 国产精品99久久久久久似苏梦涵| 337p粉嫩大胆噜噜噜噜噜91av| 精品一区二区三区不卡| 精品粉嫩aⅴ一区二区三区四区| 国产一区二三区| 国产日产精品1区| 成人aa视频在线观看| 亚洲精品一卡二卡| 欧美日韩视频在线一区二区| 午夜亚洲国产au精品一区二区| 欧美日韩高清一区二区不卡 | 国产69精品一区二区亚洲孕妇| 国产精品入口麻豆九色| 91亚洲资源网| 亚洲777理论| 欧美成人乱码一区二区三区| 国产精品一区二区你懂的| 国产精品毛片高清在线完整版| 91啪亚洲精品| 日韩精品视频网| www激情久久| 91蜜桃传媒精品久久久一区二区| 亚洲伊人色欲综合网| 91精品国产综合久久蜜臀| 国产毛片精品视频| ●精品国产综合乱码久久久久| 在线亚洲人成电影网站色www| 日韩精品乱码免费| 久久天天做天天爱综合色| 99久久精品免费| 日本v片在线高清不卡在线观看| 久久在线免费观看| 欧洲一区二区三区在线| 狠狠色狠狠色综合系列| 中文字幕一区二区视频| 欧美精选在线播放| 成人性生交大片免费| 午夜国产不卡在线观看视频| 精品国产乱码久久久久久久久| 北条麻妃国产九九精品视频| 亚洲444eee在线观看| 国产婷婷色一区二区三区| 欧美视频中文字幕| 国产一区二区三区四区在线观看| 亚洲嫩草精品久久| 2021国产精品久久精品| 色哟哟一区二区在线观看| 麻豆精品久久精品色综合| 亚洲精品视频观看| 精品国产青草久久久久福利| 97精品超碰一区二区三区| 久久国产成人午夜av影院| 亚洲激情第一区| 国产欧美一区二区三区在线老狼| 欧美日韩dvd在线观看| 成人av在线资源网站|