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

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

?? blocksgame.java

?? java源代碼
?? JAVA
字號:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.Border;
import javax.swing.border.EtchedBorder;
import java.applet.*;

public class BlocksGame extends JFrame {
	public final static int PER_LINE_SCORE = 100;
	public final static int MAX_LEVEL = 10;
	public final static int DEFAULT_LEVEL = 6;

	private GameTable table;
	private Block block;
	private boolean playing = false;
  private ControlPanel ctrlPanel;  
  
  private JMenuBar bar=new JMenuBar();
  private JMenu mGame=new JMenu("Set Color");
  private JMenuItem SetBlockColor=new JMenuItem("set block color");
  private JMenuItem SetBackColor=new JMenuItem("set background color");

	public BlocksGame() {
  	this.setSize(350, 391);
		
		this.createMenu();
		this.setJMenuBar(bar);
		
		Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize();
		setLocation((scrSize.width - getSize().width) / 2,
		        (scrSize.height - getSize().height) / 2);
		        
		      

    this.getContentPane().setLayout(new BorderLayout());
    
    table = new GameTable(25, 22);
  	ctrlPanel = new ControlPanel(this);
  
    this.getContentPane().add(table,BorderLayout.CENTER);
    this.getContentPane().add(ctrlPanel,BorderLayout.EAST);
    this.setTitle("俄羅斯方塊");
    this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
	//	Container container = getContentPane();
	//	container.setLayout(new BorderLayout(6, 0));

	//	container.add(canvas, BorderLayout.CENTER);
	//	container.add(ctrlPanel, BorderLayout.EAST);
       
	/*	addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent we) {
				stopGame();
				System.exit(0);
			}
		});*/
	 
/*		addComponentListener(new ComponentAdapter() {
			public void componentResized(ComponentEvent ce) {
				canvas.fanning();
			}
		});*/
    // show();
       setVisible(true);
  	table.fanning();
  	
}

public void createMenu(){
     bar.add(mGame);
     mGame.add(SetBlockColor);
     mGame.addSeparator();
     mGame.add(SetBackColor);
     
     SetBlockColor.addActionListener(new ActionListener(){
      public void  actionPerformed(ActionEvent e){
      Color FrontColor=
      JColorChooser.showDialog(BlocksGame.this,"set color for block",table.getBlockColor());
      if(FrontColor!=null){
       table.setBlockColor(FrontColor);
      }
      }
     });
     SetBackColor.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e){
       Color BackColor=
       JColorChooser.showDialog(BlocksGame.this,"set color for table",table.getBackgroundColor());
       if(BackColor!=null){
        table.setBackgroundColor(BackColor);
       }
      }
     });
         }

// 讓游戲“復位”

	public void reset() {
		ctrlPanel.reset();
		table.reset();
	} 
// 判斷游戲是否還在進行
	public boolean isPlaying() {
		return playing;
	}

// 得到當前活動的塊
	public Block getCurBlock() {
		return block;
	}
	
	public GameTable gettable() {
		return table;
	}

// 開始游戲
	
	public void playGame() {
		play();
		ctrlPanel.setPlayButtonEnable(false);

		ctrlPanel.requestFocus();
	}

//游戲暫停

	public void pauseGame() {
  	
		if(table.getScore()>=100){
		if (block != null) {
     block.pauseMove();
     ctrlPanel.setPauseButtonLabel(false);
    JOptionPane.showMessageDialog(this,"恭喜你!");
    }
    }
	}

// 讓暫停中的游戲繼續

	public void resumeGame() {
		if (block != null) 
    block.resumeMove();
		ctrlPanel.setPauseButtonLabel(true);
		ctrlPanel.requestFocus();
	}

// 用戶停止游戲

	public void stopGame() {
		playing = false;
		if (block != null) block.stopMove();
		ctrlPanel.setPlayButtonEnable(true);
		ctrlPanel.setPauseButtonLabel(true);
	}

	public int getLevel() {
		return ctrlPanel.getLevel();
	}

	public void setLevel(int level) {
		if (level < 11 && level > 0) ctrlPanel.setLevel(level);
	}

	public int getScore() {
		if (table != null)
    return table.getScore();
		return 0;
	}


/*	public int getScoreForLevelUpdate() {
		if (table != null) 
    return table.getScoreForLevelUpdate();
		return 0;
	}*/
 

// 當分數累計到一定的數量時,升一次級
/*	public boolean levelUpdate() {
		int curLevel = getLevel();
		if (curLevel < MAX_LEVEL) {
		setLevel(curLevel + 1);
			table.resetScoreForLevelUpdate();
			return true;
		}
		return false;
	}*/


// 游戲開始

	private void play() {
	reset();
		playing = true;
		Thread thread = new Thread(new Game());
		thread.start();
	}

//當你達到一定的分數時,彈出一消息框
 /*  private void xiaoxi(){
   if(table.getScore()>=100){
     JOptionPane.showMessageDialog(this,"恭喜你!");
   }
   }*/
   
// 報告游戲結束了
	private void reportGameOver() {
		
   		if(table.getScore()>=100){
      //JOptionPane.showMessageDialog(this,"你還行,給你個獎勵!");
        JOptionPane.showOptionDialog(this,"你還行,給你個驚喜!得分為:"+getScore(),"Option Dialog",
        JOptionPane.DEFAULT_OPTION,
        JOptionPane.PLAIN_MESSAGE,null,new Object[]{"Button1","Button2","Button3"},"Button2"); 
                                                                
       }
		else{
        JOptionPane.showMessageDialog(this, "哈哈!你太笨了!得分為:"+getScore());
    }
	}

//設置窗口外觀
	 private void setWindowStyle(String plaf) {
		try {
			UIManager.setLookAndFeel(plaf);
			SwingUtilities.updateComponentTreeUI(this);
		} catch (Exception e) {
		}
	}

	/**
	 * 一輪游戲過程,實現了Runnable接口
	 * 一輪游戲是一個大循環,在這個循環中,每隔100毫秒,
	 * 檢查游戲中的當前塊是否已經到底了,如果沒有,
	 * 就繼續等待。如果到底了,就看有沒有全填滿的行,
	 * 如果有就刪除它,并為游戲者加分,同時隨機產生一個
	 * 新的當前塊,讓它自動下落。
	 * 當新產生一個塊時,先檢查畫布最頂上的一行是否已經
	 * 被占了,如果是,可以判斷Game Over了。
	 */
	private class Game implements Runnable {
		public void run() {
			int col = (int)(Math.random()*(table.getCols()-3)),
			        style=Block.STYLES[(int)(Math.random()*7)][(int)(Math.random()*4)];

			while (playing) {
				if (block != null) {    //第一次循環時,block為空
					if (block.isAlive()) {
						try {
							Thread.currentThread().sleep(100);
						} catch (InterruptedException ie) {
							ie.printStackTrace();
						}
						continue;
					}
				}

				checkFullLine();        //檢查是否有全填滿的行

				if (isGameOver()) {     //檢查游戲是否應該結束了
			
					ctrlPanel.setPlayButtonEnable(true);
					ctrlPanel.setPauseButtonLabel(true);

					reportGameOver();
					return;
				}

				block = new Block(style, -1, col, getLevel(), table);
				block.start();

				col = (int) (Math.random() * (table.getCols() - 3));
				style =Block.STYLES[(int) (Math.random() * 7)][(int) (Math.random() * 4)];

				ctrlPanel.setTipStyle(style);
			}
		}

/*
檢查畫布中是否有全填滿的行,如果有就刪除
*/
		public void checkFullLine() {
			for (int i = 0; i < table.getRows(); i++) {
				int row = -1;
				boolean fullLineColorBox = true;
				for (int j = 0; j < table.getCols(); j++) {
					if (!table.getBox(i, j).isColorBox()) {
						fullLineColorBox = false;
						break;
					}
				}
				if (fullLineColorBox) {
					row = i--;
					table.removeLine(row);
				}
			}
		}

	
//根據最頂行是否被占,判斷游戲是否已經結束了。
		 
		private boolean isGameOver() {
			for (int i = 0; i < table.getCols(); i++) {
				ErsBox box = table.getBox(0, i);
				if (box.isColorBox()) return true;
			}
			return false;
		}
	}
		
	public static void main(String[] args) {
		new BlocksGame();
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色老头old∨ideo| 成人国产精品视频| 一区二区三区日韩精品视频| 久久综合狠狠综合久久综合88| 欧美日韩国产综合一区二区三区| 91视频在线观看免费| 成人精品国产福利| 成人精品一区二区三区四区| 国产精品影视天天线| 福利电影一区二区| 成人av影视在线观看| 一本到不卡免费一区二区| jiyouzz国产精品久久| 色综合久久久久久久久| 色系网站成人免费| 欧美日韩国产天堂| 欧美一区二区三区色| 精品国产成人在线影院 | 国产日韩欧美电影| 亚洲色图一区二区三区| 自拍偷拍欧美精品| 亚洲高清免费观看| 久久精品二区亚洲w码| 国产在线国偷精品产拍免费yy| 激情欧美日韩一区二区| 粉嫩aⅴ一区二区三区四区五区| 99国产精品久久久久久久久久久| 色一情一伦一子一伦一区| 欧美日韩第一区日日骚| 精品国产亚洲一区二区三区在线观看| 久久蜜臀中文字幕| 一区二区三区中文字幕| 久久激情综合网| a美女胸又www黄视频久久| 欧美日韩亚洲综合在线| 国产亚洲欧美色| 亚洲无人区一区| 国产寡妇亲子伦一区二区| 色天天综合色天天久久| 精品国产精品一区二区夜夜嗨| 亚洲丝袜自拍清纯另类| 久久99精品国产麻豆不卡| 99久久免费视频.com| 日韩午夜在线播放| 亚洲一区欧美一区| 粉嫩蜜臀av国产精品网站| 欧美日韩久久久久久| 国产精品久久三区| 六月丁香婷婷久久| 欧美三级韩国三级日本三斤| 久久久精品免费免费| 婷婷中文字幕综合| 色菇凉天天综合网| 国产精品日产欧美久久久久| 日本午夜精品视频在线观看| 色久优优欧美色久优优| 亚洲国产成人在线| 精品一区二区三区视频在线观看 | 国产精品69久久久久水密桃| 欧洲av一区二区嗯嗯嗯啊| 久久精品欧美一区二区三区不卡| 亚洲成在人线免费| 欧美日韩1区2区| 一区二区三区免费网站| av午夜精品一区二区三区| 国产亚洲精品aa午夜观看| 琪琪久久久久日韩精品| 欧美日韩在线播放三区| 一区二区三区高清| 色综合视频在线观看| 日韩一区在线看| av在线这里只有精品| 国产精品麻豆视频| 成人午夜视频福利| 中文字幕精品一区二区精品绿巨人 | 亚洲自拍都市欧美小说| proumb性欧美在线观看| 国产精品久久久久久久久免费相片 | 国产一区二区三区在线观看免费视频| 欧美高清视频www夜色资源网| 亚洲综合免费观看高清完整版| 成人av动漫网站| 亚洲视频香蕉人妖| 色哟哟国产精品| 丝袜诱惑亚洲看片| 欧美一区二区免费| 国模冰冰炮一区二区| 久久影视一区二区| 成人av在线播放网站| 亚洲女人****多毛耸耸8| 99久久国产免费看| 亚洲亚洲人成综合网络| 91精品综合久久久久久| 久99久精品视频免费观看| 久久久久国产精品麻豆ai换脸 | 欧美写真视频网站| 成人一区在线看| 中文字幕一区二区三区在线播放 | 欧美久久久影院| 久久精品72免费观看| 亚洲国产高清aⅴ视频| 色噜噜夜夜夜综合网| 日日夜夜免费精品视频| 国产视频一区在线观看| 欧美亚洲综合网| 美女视频网站久久| 国产精品久久久久一区二区三区 | 日韩一区二区三区四区五区六区| 玖玖九九国产精品| 国产精品传媒视频| 777久久久精品| 国产成人8x视频一区二区| 一区二区三区精品视频| 精品毛片乱码1区2区3区| 99久久er热在这里只有精品15 | 欧美国产成人在线| 欧美亚州韩日在线看免费版国语版| 蜜臀av一区二区在线观看| 中文字幕av在线一区二区三区| 欧美天天综合网| 欧美午夜精品一区二区蜜桃| 国内成+人亚洲+欧美+综合在线 | 91官网在线免费观看| 美国欧美日韩国产在线播放| 亚洲人成网站色在线观看| 精品国产一区二区三区久久久蜜月| av在线一区二区| 国产综合色在线| 日日夜夜一区二区| 亚洲精品免费看| 国产精品免费久久久久| 欧美日韩精品专区| 99久久国产综合精品女不卡| 国产在线国偷精品免费看| 日韩精品一区第一页| 亚洲免费观看高清完整| 国产精品国产三级国产三级人妇 | 91免费观看视频在线| 国产最新精品免费| 美女脱光内衣内裤视频久久影院| 亚洲成人av电影在线| 亚洲日本电影在线| 中文字幕av不卡| 久久久久久免费毛片精品| 日韩一区二区在线观看视频| 欧美日韩精品一区二区三区四区 | 色婷婷国产精品久久包臀| 国产.精品.日韩.另类.中文.在线.播放| 亚洲国产精品久久人人爱| 亚洲精品视频在线观看免费| 国产精品高潮呻吟久久| 久久久久久久精| 久久影院电视剧免费观看| 精品国产乱码久久久久久影片| 欧美一级电影网站| 欧美一级一区二区| 日韩欧美一级二级三级久久久| 欧美区在线观看| 555www色欧美视频| 欧美一区二区三级| 26uuuu精品一区二区| 久久精品欧美一区二区三区不卡| 久久婷婷综合激情| 亚洲国产成人在线| 综合激情成人伊人| 亚洲自拍偷拍综合| 日韩av电影免费观看高清完整版| 麻豆精品视频在线观看视频| 麻豆成人综合网| 国产福利精品一区二区| 国产精品性做久久久久久| 国产成人精品www牛牛影视| a级高清视频欧美日韩| 欧美私模裸体表演在线观看| 欧美日韩1区2区| 26uuu国产日韩综合| 成人欧美一区二区三区白人 | 国产午夜精品一区二区三区四区| 国产亚洲综合在线| 亚洲视频在线一区| 亚洲国产视频直播| 激情综合色播五月| 99久久99久久久精品齐齐| 欧美精选在线播放| 久久精品视频在线免费观看| 一区二区三区在线观看动漫| 日本在线不卡视频| 97se亚洲国产综合在线| 欧美一区欧美二区| 国产精品国产成人国产三级| 日韩电影在线一区二区三区| 国产综合色在线| 欧美影片第一页| 久久亚洲免费视频| 亚洲成a天堂v人片| 粉嫩一区二区三区在线看| 欧美欧美欧美欧美| 亚洲精品日韩综合观看成人91| 天天av天天翘天天综合网色鬼国产| 国产大陆精品国产|