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

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

?? araneid.java

?? windows的蜘蛛紙牌游戲源代碼
?? JAVA
字號:
// main object
package spider.araneid;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.util.Random;
import java.util.Vector;

public class Araneid extends JFrame 
{
	private static final long serialVersionUID = 1765741821700801949L;
	private String version = "蜘蛛紙牌1.1.0";
	public int cardWidth = 71;							// the width of card
	public int cardHeight = 96;							// the height of card
	public int poolSpace = 5;							// the primariy pool distance
	public Color backgroundcolor = new Color(0,112,26);	// the background color

	public Pools[] pool;								// the pool to store the cards
	public Vector cardlist;								// eight deck of card
	Random rand = new Random();

	public BackgroundPanel pane;
	public PoolMouseListener poolmouse;
	public PoolMouseMotionListener poolmousemotion;
	public Pools mousepanel;
	public DealPool dealpool;
	public CompletedPool completedpool;
	public StatusPanel statuspanel;
	public StatusPanelListener statusmouse;
	public Player player;
	public VictoryPanel victorypanel;

	private JCheckBoxMenuItem mnuSimple;
	private JCheckBoxMenuItem mnuAdvanced;
	private JCheckBoxMenuItem mnuMiddle;
	private int DIFF;

	public static final int SIMPLE_DIFF = 1;
	public static final int MIDDLE_DIFF = 2;
	public static final int ADVANCED_DIFF = 3;

	// constructor for araneid game
	public Araneid(int diff) 
	{
		super("蜘蛛紙牌");
		
        this.DIFF = diff;
		// format this frame
		setSize(800,600);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		// create menubar for araneid game
		JMenuBar mb = new JMenuBar();
		JMenu mnuGame = new JMenu("游戲");
		mb.add(mnuGame);

		// use a action to construct a menu item for start a new game
		Action action = new AbstractAction("新游戲(NEW)") {
			private static final long serialVersionUID = -5996901378181784617L;

			public void actionPerformed(ActionEvent evt) {
				RestartAraneid();
			}
		};
		JMenuItem mnuANewGame = new JMenuItem(action);
		mnuGame.add(mnuANewGame);

		mnuGame.addSeparator();

		action = new AbstractAction("低級難度") {
			private static final long serialVersionUID = -3488449640576577740L;

			public void actionPerformed(ActionEvent evt) {
				if (((JCheckBoxMenuItem)evt.getSource()).getState()) {
					mnuMiddle.setState(false);
					mnuAdvanced.setState(false);
					DIFF = SIMPLE_DIFF;
					RestartAraneid();
				} else {
					mnuSimple.setState(true);
				}
			}
		};
		mnuSimple = new JCheckBoxMenuItem(action);
		if (diff==SIMPLE_DIFF) mnuSimple.setState(true);
		mnuGame.add(mnuSimple);

		action = new AbstractAction("中級難度") {
			private static final long serialVersionUID = -7059955518802174349L;

			public void actionPerformed(ActionEvent evt) {
				if (((JCheckBoxMenuItem)evt.getSource()).getState()) {
					mnuSimple.setState(false);
					mnuAdvanced.setState(false);
					DIFF = MIDDLE_DIFF;
					RestartAraneid();
				} else {
					mnuMiddle.setState(true);
				}
			}
		};
	    mnuMiddle = new JCheckBoxMenuItem(action);
		if (diff==MIDDLE_DIFF) mnuMiddle.setState(true);
		mnuGame.add(mnuMiddle);

		action = new AbstractAction("高級難度") {
			private static final long serialVersionUID = -4646192299554935592L;
			
			public void actionPerformed(ActionEvent evt) {
				if (((JCheckBoxMenuItem)evt.getSource()).getState()) {
					mnuSimple.setState(false);
					mnuMiddle.setState(false);
					DIFF = ADVANCED_DIFF;
					RestartAraneid();
				} else {
					mnuAdvanced.setState(true);
				}
			}
		};
		mnuAdvanced = new JCheckBoxMenuItem(action);
		if (diff==ADVANCED_DIFF) mnuAdvanced.setState(true);
		mnuGame.add(mnuAdvanced);

		

		// use a action to construct a menu item for exit menu
		action = new AbstractAction("退出") {
			private static final long serialVersionUID = 0L;

			public void actionPerformed(ActionEvent evt) {
			    dispose();
				System.exit(0);
			}
		};
		JMenuItem mnuExit = new JMenuItem(action);
		mnuGame.addSeparator();
		mnuGame.add(mnuExit);

		JMenu mnuHelp = new JMenu("幫助");

		action = new AbstractAction("關于...") {
			private static final long serialVersionUID = 0L;

			public void actionPerformed(ActionEvent evt) {
				AboutFrame aboutframe = new AboutFrame(getVersion());
				aboutframe.setVisible(true);
			}
		};
		JMenuItem mnuAbout = new JMenuItem(action);
		mnuHelp.add(mnuAbout);

		mb.add(mnuHelp);

		this.setJMenuBar(mb);
		this.addKeyListener(new BackgroundKeyListener(this));

		// display me
		this.setVisible(true);

		// start a new game
		initialize();
	}

	// method: initialize the game when a new game starting
	public void initialize() {

		// get system user name
		String uid=System.getProperty("user.name");
		if (uid.length()<=0) uid = "player1";
		this.player = new Player(uid);

		// create eight deck of card
		cardlist = new Vector();
		//int dealcount = this.DIFF==this.SIMPLE_DIFF?8:(this.DIFF==this.MIDDLE_DIFF?4:2);
		switch(this.DIFF) {
			case MIDDLE_DIFF:
				for (int a=0;a<4;a++) 
				{
					for (int b=1;b<14;b++) 
					{
						Card card = new Card(Integer.toString(b));
						this.cardlist.add(card);
					}
					for (int b=21;b<34;b++) 
					{
						Card card = new Card(Integer.toString(b));
						this.cardlist.add(card);
					}
				}
				break;
			case ADVANCED_DIFF://四種花色
				for (int a=0;a<2;a++) 
				{
					for (int b=1;b<14;b++) 
					{
						Card card = new Card(Integer.toString(b));
						this.cardlist.add(card);
					}
					for (int b=21;b<34;b++) 
					{
						Card card = new Card(Integer.toString(b));
						this.cardlist.add(card);
					}
					for (int b=41;b<54;b++) 
					{
						Card card = new Card(Integer.toString(b));
						this.cardlist.add(card);
					}
					for (int b=61;b<74;b++) 
					{
						Card card = new Card(Integer.toString(b));
						this.cardlist.add(card);
					}
				}
				break;
			case SIMPLE_DIFF://一種花色
			default:
				for (int a=0;a<8;a++) {
					for (int b=1;b<14;b++) {
						Card card = new Card(Integer.toString(b));
						this.cardlist.add(card);
					}
				}
		}

		pane = new BackgroundPanel(this);

		// construct temp drag-on-drop panel
		this.mousepanel = new Pools(this);
		this.mousepanel.setVisible(false);
		pane.add(mousepanel);

		// construct status panel
		this.statuspanel = new StatusPanel(this);
		this.statusmouse = new StatusPanelListener(this);
		this.statuspanel.addMouseListener(this.statusmouse);
		pane.add(statuspanel);

		// addition mouse listener
		this.poolmouse = new PoolMouseListener(this);
		this.poolmousemotion = new PoolMouseMotionListener(this);

		// construct 10 pool for store some of cards
		pool= new Pools[10];//10列牌
		for (int k=0;k<5;k++) 
		{
			for (int i=0;i<pool.length;i++) 
			{
				if (pool[i]==null) 
				{
					pool[i] = new Pools(i,this);
					pane.add(pool[i]);
					pool[i].addMouseListener(poolmouse);
					pool[i].addMouseMotionListener(poolmousemotion);
				}
				deal(pool[i]);
				if (k==4 && i<4) deal(pool[i]);
			}
		}

		// construct a dealpool for wait player deal cards
		dealpool = new DealPool(this);
		pane.add(dealpool);

		for(int i=0;i<5*pool.length;i++) 
		{
			int r = rand.nextInt(cardlist.size());
			Card card = (Card)cardlist.get(r);
			cardlist.remove(r);
			dealpool.putCard(card);
		}
		dealpool.deal();

		// construct the pool for restore the completed cards
		this.completedpool = new CompletedPool(this);
		pane.add(completedpool);

		this.getContentPane().add(pane);

		this.victorypanel = new VictoryPanel(this);
	}

	// method: deal to every last of pool
	public void deal(Pools targetPool) {
		int r = rand.nextInt(cardlist.size());
		Card card = (Card)cardlist.get(r);
		cardlist.remove(r);
		targetPool.putCard(card);
	}

	public static void main(String args[]) {
		// change my appearance
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (Exception ignore) {}

		// construct a new game
		Araneid thisgame = new Araneid(Araneid.SIMPLE_DIFF);
     	thisgame.setVisible(true);

	}

	public String getVersion() {
		return this.version;
	}

	public void RestartAraneid() {
		int response = JOptionPane.showConfirmDialog(null,
			"立即開始一個新游戲嗎?",
			"Araneid 消息",
			JOptionPane.YES_NO_OPTION,
			JOptionPane.INFORMATION_MESSAGE);
		if (response == JOptionPane.NO_OPTION) return;
		dispose();
		Araneid newgame = new Araneid(this.DIFF);
		newgame.setVisible(true);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人在线观看免费网站| 日韩一区二区免费在线观看| 亚洲欧美在线视频观看| 色哦色哦哦色天天综合| 精品亚洲国产成人av制服丝袜| 欧美大片日本大片免费观看| 国产精品嫩草影院com| 亚洲欧美怡红院| 国产一区二区三区在线观看免费| 在线观看一区二区视频| 国产精品污www在线观看| 激情图片小说一区| 欧美一区午夜视频在线观看| 亚洲一区二区三区视频在线播放| 成人精品视频.| 久久一区二区三区国产精品| 蜜桃视频一区二区三区| 欧美丝袜丝交足nylons| 日韩码欧中文字| 成人免费视频一区二区| 久久精子c满五个校花| 久久国产欧美日韩精品| 欧美电影免费观看高清完整版 | 精品成人私密视频| 日本欧美久久久久免费播放网| 欧美性猛交一区二区三区精品| 中文字幕一区在线观看视频| 成人性生交大片免费| 国产欧美一区二区精品仙草咪 | 久久美女高清视频| 激情欧美一区二区| 久久丝袜美腿综合| 国产suv一区二区三区88区| 久久综合色8888| 国产成+人+日韩+欧美+亚洲| 欧美国产精品专区| 97国产精品videossex| 亚洲丝袜美腿综合| 色哟哟一区二区| 亚洲成人精品一区二区| 91精品在线一区二区| 久久99精品久久久久久| 久久精子c满五个校花| 成人av免费在线播放| 国产精品理论片| 色视频一区二区| 丝袜a∨在线一区二区三区不卡| 在线电影院国产精品| 美女网站一区二区| 欧美国产精品久久| 色噜噜狠狠色综合欧洲selulu| 亚洲国产美女搞黄色| 欧美一级片免费看| 国产东北露脸精品视频| 亚洲综合成人在线视频| 欧美午夜精品免费| 日韩国产在线观看| 中文字幕av不卡| 91久久国产最好的精华液| 天天亚洲美女在线视频| 久久精品亚洲麻豆av一区二区 | 国产精品一级片| 亚洲男人天堂av网| 欧美一二三区精品| 波波电影院一区二区三区| 亚洲第一久久影院| 国产婷婷精品av在线| 欧美日韩精品三区| 国产成人免费视频网站高清观看视频| 亚洲色图欧美在线| 精品国产一区二区精华| 91麻豆蜜桃一区二区三区| 青青草97国产精品免费观看无弹窗版| 日本一区二区三区久久久久久久久不| 欧美天天综合网| 懂色av一区二区三区蜜臀| 亚洲成a人片在线观看中文| 国产欧美一区在线| 日韩午夜三级在线| 欧美系列在线观看| 成人av电影免费在线播放| 日韩精品五月天| 亚洲女与黑人做爰| 精品免费视频一区二区| 欧美性猛交一区二区三区精品| 国产麻豆精品一区二区| 水蜜桃久久夜色精品一区的特点| 国产午夜精品理论片a级大结局| 欧美一区二区视频在线观看2022| a美女胸又www黄视频久久| 精品一区二区三区在线播放| 亚洲小说欧美激情另类| 国产精品家庭影院| 国产日产欧美一区二区三区| 欧美v亚洲v综合ⅴ国产v| 欧美日韩国产欧美日美国产精品| 99在线热播精品免费| 国产成人免费在线观看不卡| 韩国一区二区三区| 精品在线一区二区三区| 日韩电影免费在线看| 亚洲欧美成人一区二区三区| 国产精品久久久久久久午夜片 | 日韩精品一区二区三区中文精品| 欧美色图激情小说| 欧美在线你懂得| 99re热视频精品| 99国产精品久久久久久久久久久| 成人性生交大片免费看中文网站| 国产裸体歌舞团一区二区| 精品一区二区av| 精品在线观看免费| 国产一级精品在线| 国产成人无遮挡在线视频| 国产成人免费9x9x人网站视频| 国产精品中文字幕一区二区三区| 久久精品理论片| 国产综合久久久久影院| 国产一区二区三区在线看麻豆| 国产一区二区久久| 国内成人自拍视频| 丰满放荡岳乱妇91ww| 91在线视频免费观看| 欧洲av一区二区嗯嗯嗯啊| 欧美日韩一区二区三区视频| 欧美精选在线播放| 日韩亚洲欧美高清| 欧美精彩视频一区二区三区| 国产精品美女www爽爽爽| 亚洲人妖av一区二区| 一区二区成人在线| 免费观看日韩电影| 成人免费看黄yyy456| 欧美综合欧美视频| 91精品国产欧美日韩| 久久久99久久| 曰韩精品一区二区| 奇米777欧美一区二区| 国产成人午夜高潮毛片| 在线免费观看不卡av| 51精品秘密在线观看| 国产欧美一区二区三区在线看蜜臀| 国产精品美女久久久久高潮| 亚洲成a人片在线观看中文| 久久国产剧场电影| 99精品国产一区二区三区不卡| 欧美色倩网站大全免费| 久久久www成人免费毛片麻豆| 亚洲欧美另类久久久精品 | 国产精品123| 欧美性大战久久| 久久久精品人体av艺术| 亚洲综合无码一区二区| 国内外成人在线视频| 一本大道久久a久久精品综合| 日韩欧美成人激情| 亚洲婷婷在线视频| 久久精品国产成人一区二区三区| 91丨porny丨国产| 精品88久久久久88久久久| 一区二区视频免费在线观看| 国产真实乱子伦精品视频| 欧美亚洲综合在线| 日本一区二区三区国色天香| 免费在线看一区| 色妞www精品视频| 久久精品亚洲精品国产欧美| 亚洲成人精品影院| 91在线视频网址| 久久久高清一区二区三区| 日本三级亚洲精品| 在线国产电影不卡| 国产精品成人在线观看| 国产精品一区二区久久精品爱涩| 欧美精品一级二级| 中文字幕亚洲一区二区av在线| 韩国欧美国产一区| 欧美一区二区三区免费| 亚洲制服欧美中文字幕中文字幕| 成人av在线观| 国产亚洲欧美中文| 久久精品99国产精品| 在线不卡的av| 亚洲狠狠爱一区二区三区| 99re8在线精品视频免费播放| 国产亚洲一本大道中文在线| 捆绑紧缚一区二区三区视频| 欧美一区二区三区免费大片 | 制服.丝袜.亚洲.中文.综合| 亚洲第一激情av| 欧美三片在线视频观看 | 免费成人美女在线观看| 欧美日韩亚洲综合一区二区三区| 中文字幕一区二区三区视频| 丁香激情综合五月| 久久蜜桃香蕉精品一区二区三区| 国产在线精品视频| 国产日韩精品一区二区浪潮av| 紧缚捆绑精品一区二区| 精品国产亚洲在线|