Kapitel 14: "Entwicklung einer größeren Anwendung"

"TeeTristStein.java"


public class TeeTristStein {
//
// 0#00
static final int ID_I = 0;
// 0
// 0#0
static final int ID_J = 1;
// 0
// 0#0
static final int ID_L = 2;
// 0#
// 0O
static final int ID_O = 3;
// #0
// 0O
static final int ID_S = 4;
// 000
// #
static final int ID_T = 5;
// 0#
// 00
static final int ID_Z = 6;

private TeeTristBox box[];
private TeeTristBox position;

public int id;

// Konstruktor
public TeeTristStein(int id) {
box = new TeeTristBox[4];
for(int i=0; i < box.length; i++)
box[i] = new TeeTristBox();
position = new TeeTristBox();
this.id = id;

int index = 0;
switch (id) {
// 0#000
case ID_I:
box[index++]=new TeeTristBox(-1,0);
box[index++]=new TeeTristBox(0,0);
box[index++]=new TeeTristBox(1,0);
box[index++]=new TeeTristBox(2,0);
break;
// 0
// 0#0
case ID_J:
box[index++]=new TeeTristBox(1,1);
box[index++]=new TeeTristBox(-1,0);
box[index++]=new TeeTristBox(0,0);
box[index++]=new TeeTristBox(1,0);
break;
// 0
// 0#0
case ID_L:
box[index++]=new TeeTristBox(-1,1);
box[index++]=new TeeTristBox(-1,0);
box[index++]=new TeeTristBox(0,0);
box[index++]=new TeeTristBox(1,0);
break;
// 0#
// 0O
case ID_O:
box[index++]=new TeeTristBox(-1,0);
box[index++]=new TeeTristBox(0,0);
box[index++]=new TeeTristBox(-1,-1);
box[index++]=new TeeTristBox(0,-1);
break;
// #0
// 0O
case ID_S:
box[index++]=new TeeTristBox(0,0);
box[index++]=new TeeTristBox(1,0);
box[index++]=new TeeTristBox(-1,-1);
box[index++]=new TeeTristBox(0,-1);
break;
// 000
// #
case ID_T:
box[index++]=new TeeTristBox(0,0);
box[index++]=new TeeTristBox(-1,1);
box[index++]=new TeeTristBox(0,1);
box[index++]=new TeeTristBox(1,1);
break;
// 0#
// 00
case ID_Z:
box[index++]=new TeeTristBox(-1,0);
box[index++]=new TeeTristBox(0,0);
box[index++]=new TeeTristBox(0,-1);
box[index++]=new TeeTristBox(1,-1);
break;
}
}

public TeeTristStein(TeeTristStein f) {
box = new TeeTristBox[4];
for (int i=0; i < box.length; i++)
box[i] = new TeeTristBox(f.box[i]);
position = new TeeTristBox(f.position);
id = f.id;
}

// public Methoden
public int getPositionX(int i) {
return box[i].x + position.x;
}

public int getPositionY(int i) {
return box[i].y + position.y;
}

public void rotiereLinks() {
if (id==ID_O) return;
int hilfe;
for (int i=0; i < box.length; i++) {
hilfe = box[i].x;
box[i].x = -box[i].y;
box[i].y = hilfe;
}
}

public void rotiereRechts() {
if (id==ID_O)
return;
int hilfe;
for (int i=0; i < box.length; i++) {
hilfe = box[i].y;
box[i].y = -box[i].x;
box[i].x = hilfe;
}
}

public void setPosition(int x, int y) {
position.x = x;
position.y = y;
}

public void verschiebe(int dx, int dy) {
position.x += dx;
position.y += dy;
}
}

Picksel Media Marco Block © 2006-2009 – ImpressumKontakt
Gestaltung und Umsetzung Tobias Losch, www.picksel-media.de