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

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

?? block.java

?? SWT編寫的俄羅期方塊
?? JAVA
字號:
/* 
 * $Id: Block.java, 2007-10-11, 下午02:12:09, Eric. Exp$
 *
 * Copyright (c) 2006-2007 Wipro Technologies. All Rights Reserved.
 * This software program and documentation are copyrighted by Wipro 
 * Technologies.
 */
package eric.block;

import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Display;


/**
 * Class/Interface description
 * 
 * @author Eric
 * @see Another Class
 * @since 0.1
 */
public class Block implements Cloneable
{
	// L type bolck's tag value
	final static int L_Block_1 = 0;

	final static int L_Block_2 = 1;

	final static int L_Block_3 = 2;

	final static int L_Block_4 = 3;

	// J Type block's tag value
	final static int J_BLOCK_1 = 10;

	final static int J_BLOCK_2 = 11;

	final static int J_BLOCK_3 = 12;

	final static int J_BLOCK_4 = 13;

	// four block's tag value
	final static int I_BLOCK_1 = 20;

	final static int I_BLOCK_2 = 21;

	// Z type block's tag value
	final static int Z_BLOCK_1 = 30;

	final static int Z_BLOCK_2 = 31;

	// 
	final static int S_BLOCK_1 = 40;

	final static int S_BLOCK_2 = 41;

	final static int diamonds_BLOCK_1 = 50;

	// T type blocks tag value
	final static int T_BLOCK_1 = 60;

	final static int T_BLOCK_2 = 61;

	final static int T_BLOCK_3 = 62;

	final static int T_BLOCK_4 = 63;

	private int blockType;

	private int[] blockX = new int[4];

	private int[] blockY = new int[4];

	private int x;

	private int y;

	private Display display;

	/**
	 * @param x
	 * @param y
	 * @param blockType
	 * @param display
	 */
	public Block(int x, int y, int blockType, Display display)
	{
		this.x = x;
		this.y = y;
		this.blockType = blockType;
		this.display = display;

		init();
	}

	private void init()
	{
		switch (blockType)
		{

		//		L_BLOCK 4 types
		case L_Block_1:

			blockX[0] = 0;
			blockY[0] = -1;
			blockX[1] = 0;
			blockY[1] = 0;
			blockX[2] = 0;
			blockY[2] = 1;
			blockX[3] = 1;
			blockY[3] = 1;
			break;

		case L_Block_2:

			blockX[0] = -1;
			blockY[0] = 1;
			blockX[1] = -1;
			blockY[1] = 0;
			blockX[2] = 0;
			blockY[2] = 0;
			blockX[3] = 1;
			blockY[3] = 0;
			break;

		case L_Block_3:

			blockX[0] = -1;
			blockY[0] = 0;
			blockX[1] = 0;
			blockY[1] = 0;
			blockX[2] = 0;
			blockY[2] = 1;
			blockX[3] = 0;
			blockY[3] = 2;
			break;

		case L_Block_4:

			blockX[0] = -1;
			blockY[0] = 0;
			blockX[1] = 0;
			blockY[1] = 0;
			blockX[2] = 1;
			blockY[2] = 0;
			blockX[3] = 1;
			blockY[3] = -1;
			break;

		//			J_BLOCK 4 types
		case J_BLOCK_1:

			blockX[0] = 0;
			blockY[0] = -1;
			blockX[1] = 0;
			blockY[1] = 0;
			blockX[2] = 0;
			blockY[2] = 1;
			blockX[3] = -1;
			blockY[3] = 1;
			break;

		case J_BLOCK_2:

			blockX[0] = -1;
			blockY[0] = -1;
			blockX[1] = -1;
			blockY[1] = 0;
			blockX[2] = 0;
			blockY[2] = 0;
			blockX[3] = 1;
			blockY[3] = 0;
			break;

		case J_BLOCK_3:

			blockX[0] = 1;
			blockY[0] = -1;
			blockX[1] = 0;
			blockY[1] = -1;
			blockX[2] = 0;
			blockY[2] = 0;
			blockX[3] = 0;
			blockY[3] = 1;
			break;

		case J_BLOCK_4:

			blockX[0] = -1;
			blockY[0] = 0;
			blockX[1] = 0;
			blockY[1] = 0;
			blockX[2] = 1;
			blockY[2] = 0;
			blockX[3] = 1;
			blockY[3] = 1;
			break;

		//			I_BLOCK 2 types
		case I_BLOCK_1:

			blockX[0] = 0;
			blockY[0] = -1;
			blockX[1] = 0;
			blockY[1] = 0;
			blockX[2] = 0;
			blockY[2] = 1;
			blockX[3] = 0;
			blockY[3] = 2;
			break;

		case I_BLOCK_2:

			blockX[0] = -1;
			blockY[0] = 0;
			blockX[1] = 0;
			blockY[1] = 0;
			blockX[2] = 1;
			blockY[2] = 0;
			blockX[3] = 2;
			blockY[3] = 0;
			break;
			
			//	Z_BLOCK 2 types
		case Z_BLOCK_1:
			
			blockX[0] = -1;
			blockY[0] = -1;
			blockX[1] = 0;
			blockY[1] = -1;
			blockX[2] = 0;
			blockY[2] = 0;
			blockX[3] = 1;
			blockY[3] = 0;
			break;	
			
		case Z_BLOCK_2:
			
			blockX[0] = 0;
			blockY[0] = -1;
			blockX[1] = 0;
			blockY[1] = 0;
			blockX[2] = -1;
			blockY[2] = 0;
			blockX[3] = -1;
			blockY[3] = 1;
			break;
			
			//	T_BLOCK 4 types
		case T_BLOCK_1:
			
			blockX[0] = -1;
			blockY[0] = 0;
			blockX[1] = 0;
			blockY[1] = 0;
			blockX[2] = 1;
			blockY[2] = 0;
			blockX[3] = 0;
			blockY[3] = 1;
			break;	
			
		case T_BLOCK_2:
			
			blockX[0] = 0;
			blockY[0] = -1;
			blockX[1] = -1;
			blockY[1] = 0;
			blockX[2] = 0;
			blockY[2] = 0;
			blockX[3] = 0;
			blockY[3] = 1;
			break;
			
		case T_BLOCK_3:
			
			blockX[0] = 0;
			blockY[0] = -1;
			blockX[1] = -1;
			blockY[1] = 0;
			blockX[2] = 0;
			blockY[2] = 0;
			blockX[3] = 1;
			blockY[3] = 0;
			break;
			
		case T_BLOCK_4:
			
			blockX[0] = 0;
			blockY[0] = -1;
			blockX[1] = 0;
			blockY[1] = 0;
			blockX[2] = 0;
			blockY[2] = 1;
			blockX[3] = 1;
			blockY[3] = 0;
			break;
			
		//cute block
		case diamonds_BLOCK_1:
			
			blockX[0] = -1;
			blockY[0] = -1;
			blockX[1] = 0;
			blockY[1] = -1;
			blockX[2] = -1;
			blockY[2] = 0;
			blockX[3] = 0;
			blockY[3] = 0;
			break;	
			
			//Z block
		case S_BLOCK_1:
			
			blockX[0] = -1;
			blockY[0] = 0;
			blockX[1] = 0;
			blockY[1] = 0;
			blockX[2] = 0;
			blockY[2] = -1;
			blockX[3] = 1;
			blockY[3] = -1;
			break;	
		
		case S_BLOCK_2:
			
			blockX[0] = -1;
			blockY[0] = -1;
			blockX[1] = -1;
			blockY[1] = 0;
			blockX[2] = 0;
			blockY[2] = 0;
			blockX[3] = 0;
			blockY[3] = 1;
			break;
		}
	}

	/**
	 * @return int[]
	 */
	public int[] getBlockX(){
		return blockX;
	}
	/**
	 * @return int[]
	 */
	public int[] getBlockY(){
		return blockY;
	}
	
	/**
	 * Draw block
	 */
	public void draw(){
		
		int factX = 0;
		int factY = 0;
		for(int i = 0; i < 4; i++){
			factX = blockX[i] * 30 + x;
			factY = blockY[i] * 30 + y;
			new Square(factX, factY, blockType, display).draw();
		}
	}
	
	
	/**
	 * erasure current block
	 */
	public void clear(){
		int factX = 0;
		int factY = 0;
		for(int i = 0; i < 4; i++){
			factX = blockX[i] * 30 + x;
			factY = blockY[i] * 30 + y;
			Square square = new Square(factX, factY, 100, display);
			square.setBorderColor(new Color(display, 0, 0, 0));
			square.draw();
		}
	}
	
	/**
	 * @return int
	 */
	public int getBlockType(){
		return blockType;
	}

	/**
	 * @return the x
	 */
	public int getX()
	{
		return x;
	}

	/**
	 * @param x the x to set
	 */
	public void setX(int x)
	{
		this.x = x;
	}

	/**
	 * @return the y
	 */
	public int getY()
	{
		return y;
	}

	/**
	 * @param y the y to set
	 */
	public void setY(int y)
	{
		this.y = y;
	}

	/**
	 * Prepare for move block state
	 */
	public Block clone(){
		Block block = null;
		try {
			block = (Block)super.clone();
			block.blockX = (int[])blockX.clone();
			block.blockY = (int[])blockY.clone();
		} catch (CloneNotSupportedException e) {
			e.printStackTrace();
		}
		return block;
	}
	
	/**
	 * Move block down to one level
	 */
	public void moveDown(){

		clear();
		y += 30;
		draw();
	}
	
	/**
	 *  Move block down to right row
	 */
	public void moveRight()
	{
		clear();
		x += 30;
		draw();
	}
	
	/**
	 *  Move block down to left row
	 */
	public void moveLeft()
	{
		clear();
		x -= 30;
		draw();
	}
	
	
	/**
	 *  Move block up to one
	 */
	public void moveUp()
	{
		clear();
		y -=30;
		draw();
	}
	
	/**
	 * Deasil draw block
	 * @param x int
	 * @param y int
	 * @param display Display 
	 * @return  Block
	 */
	public static Block getRandomBlock(int x, int y,Display display)
	{
		int[] blockTypes = {
				0, 1, 2, 3,
				10, 11, 12, 13,
				20, 21, 30, 31,
				40, 41,50, 60, 
				61, 62, 63
			};
			int num = (int) (Math.random() * 19);
			
			return new Block(x, y, blockTypes[num], display);
	}
	
	/**
	 * @return Block
	 */
	public Block deasilBlock()
	{
		clear();
		if(blockType >= L_Block_1 && blockType <= L_Block_4){
			if(blockType == L_Block_4){
				blockType = L_Block_1;
				return new Block(x, y, blockType, display);
			}
			else
				return new Block(x, y, ++blockType, display);
		}
		
		else if(blockType >= J_BLOCK_1 && blockType <= J_BLOCK_4){
			
			if(blockType == J_BLOCK_4){
				blockType = J_BLOCK_1;
				
				return new Block(x, y, blockType, display);
			}
			else
				return new Block(x, y, ++blockType, display);
			
				
		}
		
		else if(blockType == I_BLOCK_1 || blockType == I_BLOCK_2){
			if(blockType == I_BLOCK_2){
				blockType = I_BLOCK_1;
				return new Block(x, y, blockType, display);
			}
			else
				return new Block(x, y, ++blockType, display);
		}
		
		else if(blockType == Z_BLOCK_1 || blockType == Z_BLOCK_2){
			if(blockType == Z_BLOCK_2){
				blockType = Z_BLOCK_1;
				return new Block(x, y, blockType, display);
			}
			else
				return new Block(x, y, ++blockType, display);
		}
		
		else if(blockType == S_BLOCK_1 || blockType == S_BLOCK_2){
			if(blockType == S_BLOCK_2){
				blockType = S_BLOCK_1;
				return new Block(x, y, blockType, display);
			}
			else
				return new Block(x, y, ++blockType, display);
		}

		else if(blockType >= T_BLOCK_1 && blockType <= T_BLOCK_4){
			if(blockType == T_BLOCK_4){
				blockType = T_BLOCK_1;
				return new Block(x, y, blockType, display);
			}
			else
				return new Block(x, y, ++blockType, display);
		}
		
		else if(blockType == diamonds_BLOCK_1){
			return this;
		}
		else
			return null;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
全国精品久久少妇| 日本最新不卡在线| 亚洲精品国产成人久久av盗摄| 亚洲日本va在线观看| 亚洲一级在线观看| 美腿丝袜一区二区三区| 亚洲日本va午夜在线影院| 一区二区三区中文字幕电影| 亚洲国产日韩综合久久精品| 日本不卡视频在线观看| 国产丶欧美丶日本不卡视频| 91色乱码一区二区三区| 日韩区在线观看| 国产精品午夜免费| 蜜桃视频免费观看一区| 大胆亚洲人体视频| 日韩欧美在线1卡| 一区二区三区在线免费视频| 天堂一区二区在线| 国产91色综合久久免费分享| 在线一区二区视频| 国产欧美日韩麻豆91| 日日摸夜夜添夜夜添精品视频| 国产在线精品免费| 欧美一级日韩不卡播放免费| 亚洲视频一二三| 国产成人免费在线观看不卡| 欧美一区二区三区视频免费| 一区二区三区免费看视频| 国产精品亚洲第一区在线暖暖韩国| 欧美亚洲国产一卡| 亚洲一卡二卡三卡四卡无卡久久 | 精品一区二区三区免费毛片爱| 99久久精品免费| 国产精品无码永久免费888| 久久国产乱子精品免费女| 欧美一区日韩一区| 美女诱惑一区二区| 91麻豆精品久久久久蜜臀 | 欧美xxxxx裸体时装秀| 国产精品欧美一区喷水| 国产精品一区二区91| 久久精品男人天堂av| 韩国精品免费视频| 国产精品进线69影院| 99久久久久久99| 亚洲国产视频直播| 日韩精品一区二区三区在线| 极品瑜伽女神91| 中文字幕av免费专区久久| 中国色在线观看另类| 国产+成+人+亚洲欧洲自线| 日本一二三不卡| 欧美性受xxxx| 激情综合色综合久久综合| 中文字幕一区二区在线播放| 91片黄在线观看| 国内久久精品视频| 亚洲美女少妇撒尿| www国产精品av| 欧美亚洲禁片免费| 国产999精品久久久久久绿帽| 亚洲人成在线播放网站岛国| 日韩欧美自拍偷拍| 99精品国产热久久91蜜凸| 日本欧洲一区二区| 欧美四级电影在线观看| 亚洲a一区二区| 国产精品伦理在线| 日韩色在线观看| 在线观看亚洲精品视频| 国产suv精品一区二区883| 奇米色一区二区三区四区| 亚洲另类中文字| 最新欧美精品一区二区三区| 欧美mv日韩mv| 欧美一区二区播放| 亚洲制服丝袜av| 日韩精品一区二区三区在线观看| av在线播放一区二区三区| 国产一区二区三区国产| 免费观看一级特黄欧美大片| 午夜日韩在线观看| 亚洲一二三四在线| 午夜欧美电影在线观看| 亚洲二区视频在线| 午夜久久久影院| 蜜桃一区二区三区在线| 久久99蜜桃精品| 国产98色在线|日韩| 99国产精品久久久| 欧美三级电影在线看| 欧美人xxxx| 久久久另类综合| 欧美国产日产图区| 一区二区三区精品在线| 亚洲综合色区另类av| 日日夜夜免费精品视频| 麻豆中文一区二区| 懂色av一区二区在线播放| 91麻豆免费观看| 日韩欧美一级精品久久| 欧美不卡激情三级在线观看| 欧美国产日韩亚洲一区| 成人自拍视频在线观看| 国产亚洲短视频| 亚洲午夜电影网| 国产精一品亚洲二区在线视频| 91欧美激情一区二区三区成人| 欧美亚洲高清一区| 国产视频911| 午夜精品福利一区二区三区蜜桃| 国内国产精品久久| 777久久久精品| 亚洲欧洲日本在线| 极品美女销魂一区二区三区免费| 欧美三级韩国三级日本三斤| 国产精品久久综合| 国产·精品毛片| 久久久久久久av麻豆果冻| 久久国产精品99精品国产 | 欧美这里有精品| 亚洲图片激情小说| 不卡av在线网| 中文字幕亚洲欧美在线不卡| 国产一区二区不卡在线| 欧美大片一区二区三区| 五月天久久比比资源色| 91成人免费在线视频| 中文字幕一区二区三区在线观看| 国产精品亚洲午夜一区二区三区 | 久久精品国产亚洲一区二区三区| 欧美日韩精品一区视频| 亚洲国产成人91porn| 欧美丝袜自拍制服另类| 亚洲成人av电影在线| 91精品国产综合久久久久| 另类小说综合欧美亚洲| 久久久久久夜精品精品免费| 成人激情综合网站| 亚洲欧美色一区| 日韩一区二区三区视频| 国产精品亚洲成人| 亚洲精品日日夜夜| 欧美一区二区三区免费| 久久精品国产亚洲高清剧情介绍| 国产视频不卡一区| 欧美精品777| 国产精品2024| 丝袜美腿高跟呻吟高潮一区| 国产三级一区二区| 欧美精品久久久久久久久老牛影院| 日本美女一区二区三区| 18欧美亚洲精品| 精品国产一区二区在线观看| 成人h动漫精品一区二| 免费欧美在线视频| 亚洲一区二区视频在线观看| 国产欧美精品国产国产专区| 欧美日韩成人一区| 欧美在线三级电影| 成人看片黄a免费看在线| 精品伊人久久久久7777人| 一区二区三区日韩欧美| 国产精品免费人成网站| 久久综合九色综合97婷婷女人 | 国产精品99久久久久久似苏梦涵| 一区二区三区久久久| 亚洲免费av观看| 136国产福利精品导航| 国产欧美久久久精品影院| 久久网站热最新地址| 精品国精品自拍自在线| 日韩丝袜情趣美女图片| 91精品国产91久久综合桃花| 欧美色欧美亚洲另类二区| 欧美日韩在线播放三区四区| 日本中文在线一区| 欧美一区二区三级| 欧美日韩免费观看一区三区| 色噜噜久久综合| 欧美麻豆精品久久久久久| 欧美在线免费播放| 日韩午夜av一区| 国产性色一区二区| 亚洲视频资源在线| 一区二区三区成人| 日本中文字幕一区二区视频| 久久精品国产亚洲高清剧情介绍| 国产尤物一区二区| 91视频在线观看免费| 欧美日韩一区二区在线观看视频| 欧美一级一区二区| 中文一区在线播放| 日日摸夜夜添夜夜添亚洲女人| 国产在线精品不卡| 欧洲av一区二区嗯嗯嗯啊| 久久综合色一综合色88| 一区二区三区在线视频免费| 蜜臀久久99精品久久久久久9|