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

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

?? gameboard.java

?? SWT編寫的俄羅期方塊
?? JAVA
字號:
/* 
 * $Id: GameBoard.java, 2007-10-11, 下午04:10:18, 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.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.widgets.Display;

/**
 * Class/Interface description
 * 
 * @author Eric
 * @see Another Class
 * @since 0.1
 */
public class GameBoard
{
	/**
	 * The value is used for character storage.
	 */
	public static int EMPTY = -1;

	private int x_columns;

	private int y_rows;

	private Display display = null;

	private int[][] matrix;

	private GC gc = null;

	private int removedLines;
	
	private int fullRowOneTime;
	
	/**
	 * @param cols
	 * @param rows
	 * @param display
	 */
	public GameBoard(int cols, int rows, Display display)
	{
		this.x_columns = cols;
		this.y_rows = rows;
		this.display = display;
		init();
	}

	/**
	 * Inital all column's xy inital value -1;
	 */
	void init()
	{
		matrix = new int[x_columns][y_rows];
		for (int cols = 0; cols < x_columns; cols++)
		{
			for (int rows = 0; rows < y_rows; rows++)
			{
				matrix[cols][rows] = EMPTY;
			}
		}
	}

	/**
	 * @param currentBlock
	 * @return boolean
	 */
	public boolean canMoveDown(Block currentBlock)
	{
		if (currentBlock != null)
		{
			for (int i = 0; i < 4; i++)
			{
				int y = currentBlock.getY() / 30 + currentBlock.getBlockY()[i];
				int x = currentBlock.getX() / 30 + currentBlock.getBlockX()[i];
				if (y++ == y_rows - 1)
				{
					return false;
				} else if (x > -1 && x < x_columns && matrix[x][y++] != EMPTY)
				{
					return false;
				}
			}
		}
		return true;
	}

	/**
	 * adjust can move block to left
	 * 
	 * @param block
	 * @return boolean
	 */
	public boolean canMoveLeft(Block block)
	{
		if (block != null)
		{
			for (int i = 0; i < 4; i++)
			{
				int y = block.getY() / 30 + block.getBlockY()[i];
				int x = block.getX() / 30 + block.getBlockX()[i];

				if (x-- == 0)
				{
					return false;
				} else if (y > -1 && matrix[x--][y] != EMPTY)
				{
					return false;
				}
			}
		}
		return true;
	}

	/**
	 * Remove full rows
	 */
	public void removeFullRows(){
		for(int y = y_rows - 1; y > 0; y--){
			if(isFullRow(y)){
				removeRow(y);
				removedLines++;
				fullRowOneTime++;
				y++;
			}
		}
		
	}
	
	/**
	 * Remove y row
	 * @param y int
	 */
	public void removeRow(int y){

		if(y > 0 && y < y_rows){
			for(; y > 0; y--){
				for(int x = 0; x < x_columns; x++){
					matrix[x][y] = matrix[x][y - 1];
				}
			}
		}
		for(int x = 0; x < x_columns; x++){
			matrix[x][0] = EMPTY;
		}
		
	}
	
	/**
	 * adjust can move block to right
	 * 
	 * @param block
	 * @return boolean
	 */
	public boolean canMoveRight(Block block)
	{
		if (block != null)
		{
			for (int i = 0; i < 4; i++)
			{
				int y = block.getY() / 30 + block.getBlockY()[i];
				int x = block.getX() / 30 + block.getBlockX()[i];

				if (x++ == x_columns - 1)
				{
					return false;
				} else if (y > -1 && matrix[x++][y] != EMPTY)
				{
					return false;
				}
			}
		}
		return true;
	}

	/**
	 * 
	 * @param block
	 * @return boolean
	 */
	public boolean canRotate(Block block)
	{
		if (block != null)
		{
			Block newBlock = (Block) block.clone();
			newBlock = newBlock.deasilBlock();
			for (int i = 0; i < 4; i++)
			{
				int y = newBlock.getY() / 30 + newBlock.getBlockY()[i];
				int x = newBlock.getX() / 30 + newBlock.getBlockX()[i];

				if (y > y_rows - 1 || y < 0 || x < 0 || x > x_columns - 1)
				{
					return false;
				} else if (matrix[x][y] != EMPTY)
				{
					return false;
				}
			}
		}
		return true;
	}

	/**
	 * @param msg
	 *            String
	 */
	public void drawMessage(String msg)
	{
		gc = MyGC.getMyGC();
		final Font font = new Font(display, "Helvetica", 18, SWT.NORMAL);
		gc.setFont(font);
		gc.setForeground(new Color(display, 255, 255, 255));
		int x = (x_columns * 30 - (gc.getFontMetrics().getAverageCharWidth() * msg.length())) / 2;
		int y = (y_rows * 30) / 2;
		gc.drawString(msg, x, y, true);
		font.dispose();
	}

	/**
	 * Draw not empty block
	 */
	public void draw()
	{
		for (int y = y_rows - 1; y >= 0; y--)
		{
			for (int x = 0; x < x_columns; x++)
			{
				if (matrix[x][y] != EMPTY)
				{
					int xPos = x * 30;
					int yPos = y * 30;
					new Square(xPos, yPos, matrix[x][y], display).draw();
				}
			}
		}
	}
	
	/**
	 * @return boolean
	 */
	public boolean hasFullRow(){
		fullRowOneTime = 0;
		for(int y = y_rows - 1; y >= 0; y--){
			if(isFullRow(y)){
				return true;
			}
		}
		return false;
	}
	
	
	/**
	 * @param y
	 * @return boolean
	 */
	public boolean isFullRow(int y){
		 for (int x = 0; x < x_columns; x++) {
	            if (matrix[x][y] == EMPTY) {
	                return false;
	            }
	        }
	        return true;
	}
	
	/**
	 * @param x
	 * @param y
	 * @return int
	 */
	public int getPositionValue(int x,int y	)
	{
		return matrix[x][y];
	}
	
	/**
	 * @param x
	 * @param y
	 * @param value
	 */
	public void setPositionValue(int x, int y, int value){
		matrix[x][y] = value;
	}
	
	/**
	 * Get remove col's number
	 * 
	 * @return int
	 */
	public int getFullRowOneTime(){
		return fullRowOneTime;
	}
	
	/**
	 * @return int
	 */
	public int getRemovedLines(){
		return removedLines;
	}
	
	/**
	 * 
	 * Set block's value
	 * @param block Block
	 */
	public void addBlock(Block block){
		if(block != null ){
			for(int i = 0; i < 4; i++){
				int x = (block.getX() / 30) + block.getBlockX()[i];
				int y = (block.getY() / 30) + block.getBlockY()[i];
				int blockY = block.getY() + block.getBlockY()[i] * 30;
				if(blockY > -1 && matrix[x][y] == EMPTY)
					matrix[x][y] = block.getBlockType();
			}
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
卡一卡二国产精品 | 91精品国产综合久久福利| 亚洲综合免费观看高清完整版在线| 欧洲一区在线观看| 另类欧美日韩国产在线| 亚洲欧洲国产日韩| 欧美一区二区三区不卡| 99久久精品费精品国产一区二区| 亚洲成a人片综合在线| 久久久久久久久岛国免费| 欧美日韩中字一区| 国产精品66部| 亚洲成在人线在线播放| 久久精品水蜜桃av综合天堂| 日本精品视频一区二区| 久久99九九99精品| 亚洲最新视频在线播放| 欧美日高清视频| 国产精品中文欧美| 麻豆免费精品视频| 亚洲精品第一国产综合野| www久久精品| 欧美日韩一区二区三区四区五区| 国产精品69久久久久水密桃| 香蕉影视欧美成人| 亚洲区小说区图片区qvod| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产精品久久久久影院色老大| 91精品国产美女浴室洗澡无遮挡| 成人免费毛片嘿嘿连载视频| 日本成人中文字幕在线视频| 亚洲免费观看在线观看| 亚洲国产高清在线观看视频| 日韩一区二区电影| 欧美理论片在线| 91成人网在线| 91啪九色porn原创视频在线观看| 国产精品99久久久久久有的能看| 六月丁香婷婷久久| 日韩激情在线观看| 日韩精彩视频在线观看| 亚洲午夜激情av| 亚洲伦在线观看| 1区2区3区国产精品| 欧美一区二区黄色| 欧美一区二区三区爱爱| 69p69国产精品| 欧美视频精品在线| 欧美日韩亚洲另类| 在线免费av一区| 色综合天天狠狠| 成人av电影在线观看| 国产精品一区久久久久| 国产一区二区三区免费观看| 韩国一区二区三区| 国产一二三精品| 国产一区在线观看麻豆| 日韩高清在线电影| 日本亚洲视频在线| 视频一区二区三区入口| 麻豆国产精品777777在线| 捆绑调教美女网站视频一区| 久久精品国产99| 国产在线播放一区| 国产成人在线色| 99精品黄色片免费大全| 91影院在线免费观看| hitomi一区二区三区精品| 99久久99久久精品免费观看| 99久久婷婷国产精品综合| 色婷婷综合久久久久中文一区二区| 日本二三区不卡| 欧美日韩免费电影| 日韩一级二级三级精品视频| 精品国产伦理网| 亚洲国产精品激情在线观看| 日韩一区日韩二区| 午夜激情久久久| 美洲天堂一区二卡三卡四卡视频| 国产一区二区在线观看视频| 成人免费视频免费观看| 欧美性感一区二区三区| 欧美电影免费观看高清完整版在| 国产网站一区二区三区| 伊人一区二区三区| 天堂久久一区二区三区| 国产麻豆91精品| 在线日韩av片| 欧美成人免费网站| 国产精品久久久久久久久久免费看| 亚洲午夜免费电影| 狠狠色丁香婷婷综合| 99久久精品免费| 欧美一区二区视频在线观看2020 | 欧美唯美清纯偷拍| 日韩精品一区二| 成人欧美一区二区三区白人| 午夜久久福利影院| 国产伦理精品不卡| 91福利在线观看| 国产亚洲女人久久久久毛片| 一区二区国产盗摄色噜噜| 日韩av电影一区| av男人天堂一区| 日韩一区二区三区三四区视频在线观看 | 91丨九色丨蝌蚪丨老版| 欧美精品久久久久久久久老牛影院| 欧美大片一区二区三区| 亚洲狠狠丁香婷婷综合久久久| 日韩激情av在线| av电影天堂一区二区在线| 欧美一级片在线看| 亚洲精品乱码久久久久久黑人| 国内精品免费在线观看| 91久久精品国产91性色tv| 精品欧美一区二区三区精品久久 | 亚洲欧美一区二区视频| 日本欧美在线看| 色综合一个色综合| 欧美大片在线观看| 亚洲第一激情av| 91丝袜高跟美女视频| 欧美精品一区二区三区蜜桃| 亚洲国产精品麻豆| 成人开心网精品视频| 日韩一级高清毛片| 亚洲综合丝袜美腿| 91亚洲资源网| 久久久精品日韩欧美| 日本中文字幕一区二区有限公司| 97久久精品人人做人人爽50路| 欧美xxxx在线观看| 蜜臀av一区二区在线免费观看| 色哟哟亚洲精品| 欧美韩国一区二区| 精东粉嫩av免费一区二区三区| 91麻豆精品国产无毒不卡在线观看| 亚洲欧美综合另类在线卡通| 成人国产精品免费观看视频| 久久精品夜夜夜夜久久| 精品一区在线看| 欧美精品第1页| 午夜精品在线看| 91精品国产综合久久精品| 亚洲午夜av在线| 欧美色窝79yyyycom| 亚洲欧洲中文日韩久久av乱码| 成人精品国产福利| 国产精品理论片| 成人精品一区二区三区四区| 亚洲国产精品激情在线观看| 国产一区二区三区精品视频| 91福利在线播放| 亚洲精品日日夜夜| 9l国产精品久久久久麻豆| 国产日韩v精品一区二区| 豆国产96在线|亚洲| 国产日韩三级在线| 粉嫩aⅴ一区二区三区四区五区| 亚洲国产精品v| 97超碰欧美中文字幕| 一区二区三区免费网站| 在线亚洲精品福利网址导航| 亚洲精品国产精华液| 欧美午夜精品久久久| 亚洲成av人片www| 日韩欧美一级二级| 激情五月激情综合网| 国产午夜精品福利| 99re这里只有精品首页| 亚洲国产精品一区二区久久恐怖片 | 国产精品一区一区| 欧美国产一区视频在线观看| av一区二区三区黑人| 亚洲一区二区四区蜜桃| 欧美夫妻性生活| 精品综合免费视频观看| 久久精品一级爱片| 91国偷自产一区二区三区观看 | 国产欧美久久久精品影院| 国产成人午夜99999| 国产精品国产a| 99视频国产精品| 国产精品久久久久婷婷| 色偷偷久久人人79超碰人人澡| 亚洲成人av电影| 久久久久国产精品人| 91在线观看高清| 秋霞av亚洲一区二区三| 国产精品国产三级国产a| 欧美性欧美巨大黑白大战| 麻豆精品久久精品色综合| 国产欧美精品在线观看| 欧美狂野另类xxxxoooo| 国产高清久久久| 亚洲大片免费看| 中文字幕av资源一区| 欧美日韩一级片网站| 国产精品亚洲一区二区三区在线| 亚洲精品乱码久久久久久久久|