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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? pkcard.java

?? 在JDK1.5上運(yùn)行的蜘蛛紙牌.運(yùn)行"打包發(fā)布"文件夾下的Spider.bat便可直接運(yùn)行."源程序"文件夾下為程序源文件
?? JAVA
字號(hào):
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class PKCard extends JLabel implements MouseListener,
        MouseMotionListener{

    //紙牌的位置
	Point point = null;
    Point initPoint = null;
    
	int value = 0;
    int type = 0;
    
	String name = null;
    Container pane = null;
    
	Spider main = null;
    
	boolean canMove = false;
    boolean isFront = false;
    PKCard previousCard = null;

    public void mouseClicked(MouseEvent arg0){
	}
    
    public void flashCard(PKCard card){
		//啟動(dòng)Flash線程
		new Flash(card).start();
		//不停的獲得下一張牌,直到完成
		if(main.getNextCard(card) != null){
			card.flashCard(main.getNextCard(card));
		}
	}

    class Flash extends Thread{
		private PKCard card = null;
		
		public Flash(PKCard card){
			this.card = card;
		}
		
		/*
		 **線程的run()方法
		 **為紙牌的正面設(shè)置白色圖片
		 */
		public void run(){
			boolean is = false;
			ImageIcon icon = new ImageIcon("images/white.gif");
			for (int i = 0; i < 4; i++){
				try{
					Thread.sleep(200);
				}
				catch (InterruptedException e){
					e.printStackTrace();
				}
				
				if (is){
					this.card.turnFront();
					is = !is;
				}
				else{
					this.card.setIcon(icon);
					is = !is;
				}
				// 根據(jù)當(dāng)前外觀將card的UI屬性重置
				card.updateUI();
			}
		}
	}

    /**
	 **點(diǎn)擊鼠標(biāo)
	 */
	public void mousePressed(MouseEvent mp){
        point = mp.getPoint();
        main.setNA();
        this.previousCard = main.getPreviousCard(this);
    }

    /**
	 **釋放鼠標(biāo)
	 */
	public void mouseReleased(MouseEvent mr){
		Point point = ((JLabel) mr.getSource()).getLocation();
		//判斷可行列
		int n = this.whichColumnAvailable(point);
		if (n == -1 || n == this.whichColumnAvailable(this.initPoint)){
			this.setNextCardLocation(null);
			main.table.remove(this.getLocation());
			this.setLocation(this.initPoint);
			main.table.put(this.initPoint, this);
			return;
		}
		
		point = main.getLastCardLocation(n);
		boolean isEmpty = false;
		PKCard card = null;
		if (point == null){
			point = main.getGroundLabelLocation(n);
			isEmpty = true;
		}
		else{
			card = (PKCard) main.table.get(point);
		}
		
		if (isEmpty || (this.value + 1 == card.getCardValue())){
			point.y += 40;
			if (isEmpty) point.y -= 20;
			this.setNextCardLocation(point);
			main.table.remove(this.getLocation());
			point.y -= 20;
			this.setLocation(point);
			main.table.put(point, this);
			this.initPoint = point;
			if (this.previousCard != null){
				this.previousCard.turnFront();
				this.previousCard.setCanMove(true);
			}
			
			this.setCanMove(true);
		}
		else{
			this.setNextCardLocation(null);
			main.table.remove(this.getLocation());
			this.setLocation(this.initPoint);
			main.table.put(this.initPoint, this);
			return;
		}
        point = main.getLastCardLocation(n);
        card = (PKCard) main.table.get(point);
        if (card.getCardValue() == 1){
			point.y -= 240;
			card = (PKCard) main.table.get(point);
			if (card != null && card.isCardCanMove()){
				main.haveFinish(n);
			}
		}
	}
	
	/*
	 **方法:放置紙牌
	 */
	public void setNextCardLocation(Point point){
		PKCard card = main.getNextCard(this);
		if (card != null){
			if (point == null){
				card.setNextCardLocation(null);
				main.table.remove(card.getLocation());
				card.setLocation(card.initPoint);
				main.table.put(card.initPoint, card);
			}
			else{
				point = new Point(point);
				point.y += 20;
				card.setNextCardLocation(point);
				point.y -= 20;
				main.table.remove(card.getLocation());
				card.setLocation(point);
				main.table.put(card.getLocation(), card);
				card.initPoint = card.getLocation();
			}
		}
	}

    /**
	 **返回值:int
	 **方法:判斷可用列
	 */
	public int whichColumnAvailable(Point point){
		int x = point.x;
		int y = point.y;
		int a = (x - 20) / 101;
		int b = (x - 20) % 101;
		if (a != 9){
			if (b > 30 && b <= 71){
				a = -1;
			}
			else if (b > 71){
				a++;
			}
		}
		else if (b > 71){
			a = -1;
		}
		
		if (a != -1){
			Point p = main.getLastCardLocation(a);
			if (p == null) p = main.getGroundLabelLocation(a);
			b = y - p.y;
			if (b <= -96 || b >= 96){
				a = -1;
			}
		}
		return a;
	}

    public void mouseEntered(MouseEvent arg0){
    }

    public void mouseExited(MouseEvent arg0){
    }

    /**
	 **用鼠標(biāo)拖動(dòng)紙牌
	 */
	public void mouseDragged(MouseEvent arg0){
        if (canMove){
			int x = 0;
			int y = 0;
			Point p = arg0.getPoint();
			x = p.x - point.x;
			y = p.y - point.y;
			this.moving(x, y);
		}
	}

    /**
	 **返回值:void
	 **方法:移動(dòng)(x,y)個(gè)位置
	 */
	public void moving(int x, int y){
        PKCard card = main.getNextCard(this);
        Point p = this.getLocation();
        
		//將組件移動(dòng)到容器中指定的順序索引。 
		pane.setComponentZOrder(this, 1);
        
		//在Hashtable中保存新的節(jié)點(diǎn)信息
		main.table.remove(p);
        p.x += x;
        p.y += y;
        this.setLocation(p);
        main.table.put(p, this);
        if (card != null) card.moving(x, y);
    }

    public void mouseMoved(MouseEvent arg0){
    }

    /**
     **構(gòu)造函數(shù)
     */
    public PKCard(String name, Spider spider){
        super();
        this.type = new Integer(name.substring(0, 1)).intValue();
        this.value = new Integer(name.substring(2)).intValue();
        this.name = name;
        this.main = spider;
        this.pane = this.main.getContentPane();
        this.addMouseListener(this);
        this.addMouseMotionListener(this);
        this.setIcon(new ImageIcon("images/rear.gif"));
        this.setSize(71, 96);
        this.setVisible(true);
    }

    /**
	 **返回值:void
	 **方法:令紙牌顯示正面
	 */
	public void turnFront(){
        this.setIcon(new ImageIcon("images/" + name + ".gif"));
        this.isFront = true;
    }

    /**
	 **返回值:void
	 **方法:令紙牌顯示背面
	 */
	public void turnRear(){
        this.setIcon(new ImageIcon("images/rear.gif"));
        this.isFront = false;
        this.canMove = false;
    }

    /**
	 **返回值:void
	 **方法:將紙牌移動(dòng)到點(diǎn)point
	 */
	public void moveto(Point point){
        this.setLocation(point);
        this.initPoint = point;
    }

    /**
	 **返回值:void
	 **方法:判斷牌是否能移動(dòng)
	 */
	public void setCanMove(boolean can){
        this.canMove = can;
        PKCard card = main.getPreviousCard(this);
        if (card != null && card.isCardFront()){
            if (!can){
                if (!card.isCardCanMove()){
                    return;
				}
                else{
					card.setCanMove(can);
				}
			}
            else{
                if (this.value + 1 == card.getCardValue()
                        && this.type == card.getCardType()){
					card.setCanMove(can);
				}
				else{
					card.setCanMove(false);
				}
            }
        }
    }

    /**
	 **返回值:boolean
	 **方法:判斷card是否是正面
	 */
	public boolean isCardFront(){
        return this.isFront;
    }

    /*
	 **返回值:boolean
	 **方法:返回是否能夠移動(dòng)
	 */
	public boolean isCardCanMove(){
        return this.canMove;
    }

    /**
	 **返回值:int
	 **方法:獲得card的內(nèi)容值
	 */
	public int getCardValue(){
        return value;
    }

    /**
	 **返回值:int
	 **方法:獲得card的類型
	 */
	public int getCardType(){
        return type;
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品久久久久久久久老牛影院| 国产一区二区毛片| 91福利在线观看| 夜夜嗨av一区二区三区网页 | 国产日韩精品一区二区三区| 国产又粗又猛又爽又黄91精品| 26uuu精品一区二区| 国产成人h网站| 亚洲欧美一区二区不卡| 91成人在线精品| 日本在线播放一区二区三区| 精品久久人人做人人爽| 高清国产一区二区| 亚洲男同性视频| 91精品婷婷国产综合久久 | 国产精品国产三级国产aⅴ无密码| 99久久99久久免费精品蜜臀| 亚洲亚洲人成综合网络| 欧美一级一级性生活免费录像| 国产一区二区三区观看| 综合电影一区二区三区| 欧美精品在欧美一区二区少妇| 久久99精品国产麻豆婷婷| 亚洲国产精品成人综合| 欧美性xxxxxxxx| 国产综合一区二区| 亚洲精品日韩一| 精品国产一区二区三区久久久蜜月| 99久久伊人久久99| 亚洲不卡一区二区三区| 日本一区二区三区在线观看| 在线精品视频一区二区| 韩国欧美国产一区| 亚洲精品免费在线观看| 久久综合久久综合亚洲| 欧美色偷偷大香| 粉嫩嫩av羞羞动漫久久久 | 国产成人精品亚洲午夜麻豆| 亚洲一区二三区| 国产色产综合产在线视频| 欧洲中文字幕精品| 国产成人精品免费看| 丝袜美腿一区二区三区| 中文在线一区二区| 日韩免费一区二区| 色播五月激情综合网| 国产九九视频一区二区三区| 五月婷婷综合网| 亚洲视频你懂的| 国产视频不卡一区| 欧美日韩久久不卡| 97成人超碰视| 色偷偷88欧美精品久久久| 中文字幕一区在线| 精品久久久久久久久久久久久久久久久| 99久久国产综合色|国产精品| 久久国产日韩欧美精品| 亚洲不卡一区二区三区| 一区二区三区在线观看视频| 欧美激情一区二区三区蜜桃视频| 91精品国产高清一区二区三区蜜臀 | 欧美成人精品福利| 欧美三级一区二区| av午夜精品一区二区三区| 国产乱理伦片在线观看夜一区| 亚洲成在人线免费| 亚洲国产一区二区在线播放| 日韩一区中文字幕| 国产精品久久久久久久裸模 | 精品久久人人做人人爰| 日韩欧美中文一区二区| 国产一区二区三区最好精华液| 日韩免费电影网站| 欧美成人性战久久| 69堂亚洲精品首页| 3atv在线一区二区三区| 欧美麻豆精品久久久久久| 欧美日韩视频专区在线播放| 欧美影视一区在线| 91麻豆精品久久久久蜜臀| 911精品国产一区二区在线| 日韩欧美一卡二卡| 国内精品写真在线观看| 日韩精品一区二区三区swag | 高清不卡一二三区| 中文字幕一区二区在线播放| 国产欧美va欧美不卡在线| 久久精品人人做人人爽人人| 久久精品欧美日韩精品 | 亚洲精品一区二区三区精华液| 欧美一区二区精美| 日韩视频不卡中文| 久久久久高清精品| 国产精品久久久久影院老司 | 精品日本一线二线三线不卡| 精品成人一区二区三区| 国产精品乱码人人做人人爱| 国产精品剧情在线亚洲| 国产美女精品一区二区三区| 国产一区91精品张津瑜| 大陆成人av片| 色综合久久中文字幕综合网| 欧美人xxxx| ww亚洲ww在线观看国产| 亚洲国产高清在线| 亚洲专区一二三| 久久精品国产一区二区三区免费看| 国内精品国产成人国产三级粉色 | 91亚洲精品久久久蜜桃网站 | 精品福利av导航| 久久精品夜色噜噜亚洲a∨| 欧美国产97人人爽人人喊| 亚洲日本在线天堂| 亚洲国产精品久久久久婷婷884 | 韩国三级中文字幕hd久久精品| 从欧美一区二区三区| 欧美无砖专区一中文字| 精品国产制服丝袜高跟| 亚洲日本在线视频观看| 免费在线看成人av| 成人免费黄色在线| 欧美精品久久99| 国产精品无遮挡| 秋霞成人午夜伦在线观看| 成人精品免费看| 欧美一区二区三区在线| 国产精品久久久久aaaa| 日韩精品电影一区亚洲| 97se亚洲国产综合自在线观| 日韩欧美国产一区在线观看| 亚洲精品日韩一| 国产又黄又大久久| 欧美猛男男办公室激情| 免费在线看一区| 91亚洲精品久久久蜜桃网站| 日韩美女一区二区三区四区| 亚洲码国产岛国毛片在线| 国产在线不卡一卡二卡三卡四卡| 欧美怡红院视频| 国产精品青草综合久久久久99| 视频在线观看国产精品| 色综合久久综合网| 国产欧美日韩在线观看| 另类调教123区| 欧美裸体一区二区三区| 亚洲精品亚洲人成人网在线播放| 国产精品综合一区二区三区| 91精品国产高清一区二区三区 | 欧美精品一区二区三区蜜臀| 亚洲自拍偷拍综合| 99在线热播精品免费| 欧美精品一区二区不卡| 日韩黄色片在线观看| 在线看日本不卡| 亚洲男帅同性gay1069| av日韩在线网站| 中国色在线观看另类| 国产在线精品一区二区不卡了 | 日韩精品一区二区三区中文不卡| 一区二区在线免费观看| av资源网一区| 日韩毛片高清在线播放| 成人一级片网址| 国产精品久久福利| 国产91精品一区二区麻豆网站| 欧美电影免费观看高清完整版在线观看| 亚洲综合偷拍欧美一区色| 色综合中文字幕国产 | 国产麻豆精品95视频| 日韩一区二区免费视频| 日韩福利电影在线| 欧美日韩国产一区二区三区地区| 亚洲国产精品一区二区久久 | 国产福利电影一区二区三区| 日韩三级高清在线| 久久av中文字幕片| 精品sm捆绑视频| 国产成人av电影| 国产精品国产三级国产普通话99 | 国产在线播放一区| 久久久久久一二三区| 国产成人精品免费看| 中文字幕乱码日本亚洲一区二区 | 免费看精品久久片| 欧美三级电影一区| 日韩精品视频网| 欧美精品一区视频| 成人黄页在线观看| 亚洲欧美日韩小说| 欧美理论片在线| 久久精品二区亚洲w码| 国产欧美一区二区精品性色| 本田岬高潮一区二区三区| 亚洲图片另类小说| 欧美日韩dvd在线观看| 久久av资源网| 中文字幕一区在线| 欧美日韩久久一区| 国产成人在线电影| 夜夜嗨av一区二区三区中文字幕|