estou querendo desenvolver um jogo tetris como estudo, porem estou com um pouco de dificuldade na logia principalmente na criação das peças. Ate agora fiz somente a classe grid (segue) para verem se estou no caminho certo ou nao
import java.awt.Color;
public class Grid {
private int width;
private int height;
private Color[][] grid = null;
/******************************************************/
//Construtor
public Grid(int w, int h) {
width = w;
height = h;
grid = new Color[w][h];
//inicializa o grid
initGrid();
}
/******************************************************/
/**Retorna o width*/
public int getWidth() {
return width;
}
/**Retorna o height*/
public int getHeight() {
return height;
}
/**Retorna o grid*/
public Color[][] getGrid() {
return grid;
}
/******************************************************/
/**Inicializa/zera as posições do grid*/
public void initGrid() {
for (int w = 0; w < width; w++) {
for (int h = 0; h < height; h++) {
grid[w][h] = null;
}
}
}
/******************************************************/
/**Verifica se a linha esta vazia*/
public boolean isLineEmpty(int line) {
if (line < 0 || line >= height) { //verifica se a linha é valida
return false;
} else {
for (int w = 0; w < width; w++) {
if (grid[w][line] != null) {
return false;
}
}
}
return true;
}
/******************************************************/
/**verifica se a posicao do grid esta vazia*/
public boolean isEmptyPos(int x, int y) {
if ((x >= 0 && x < width) && (y >= 0 && y < height)) {//Verifica se a linha é valida
if (grid[x][y] == null) {
return true;
} else {
return false;
}
} else {
return false;
}
}
/******************************************************/
/**Verifica se a linha esta cheia*/
public boolean isLineFull(int line) {
if (line < 0 || line >= height) {
return true;
} else {
for (int w = 0; w < width; w++) {
if (grid[w][line] == null) {
return false;
}
}
}
return true;
}
/******************************************************/
/**Verifica se o grid contem linhas cheias*/
public boolean hasFullLines() {
for (int h = height - 1; h >= 0; h--) {
if (isLineFull(h)) {
return true;
}
}
return false;
}
/******************************************************/
//Teste
public void show() {
for (int h = 0; h < height; h++) {
for (int w = 0; w < width; w++) {
System.out.println("[" + w + "," + h + "] - " + grid[w][h]);
}
}
}
/******************************************************/
}