private void Setzen(Spielstein stein) { feld[stein.x1, stein.y1] = stein.farbCode; feld[stein.x2, stein.y2] = stein.farbCode; feld[stein.x3, stein.y3] = stein.farbCode; feld[stein.x4, stein.y4] = stein.farbCode; }
private void Loeschen(Spielstein stein) { feld[stein.x1, stein.y1] = 0; feld[stein.x2, stein.y2] = 0; feld[stein.x3, stein.y3] = 0; feld[stein.x4, stein.y4] = 0; }
private bool Setzbar(Spielstein s) { int f = s.farbCode; return((feld[s.x1, s.y1] == f || feld[s.x1, s.y1] == 0) && (feld[s.x2, s.y2] == f || feld[s.x2, s.y2] == 0) && (feld[s.x3, s.y3] == f || feld[s.x3, s.y3] == 0) && (feld[s.x4, s.y4] == f || feld[s.x4, s.y4] == 0)); }
private bool Drehbar(Spielstein einSpielstein) { if (einSpielstein == null) { return(false); } Spielstein verschobenerSpielstein = einSpielstein.Kopie(); verschobenerSpielstein.Drehen(); return(Setzbar(verschobenerSpielstein)); }
private bool Verschiebbar(Spielstein einSpielstein, int x, int y) { if (einSpielstein == null) { return(false); } Spielstein verschobenerSpielstein = einSpielstein.Kopie(); verschobenerSpielstein.Verschieben(x, y); return(Setzbar(verschobenerSpielstein)); }
public Spielstein Kopie() { Spielstein neu = new Spielstein(this.farbCode); neu.x1 = this.x1; neu.y1 = this.y1; neu.x2 = this.x2; neu.y2 = this.y2; neu.x3 = this.x3; neu.y3 = this.y3; neu.x4 = this.x4; neu.y4 = this.y4; return(neu); }
private void Ablegen(Spielstein einSpielstein) { if (einSpielstein == null) { return; } einSpielstein.farbCode = einSpielstein.farbCode + 8; Setzen(einSpielstein); mainApp.Update(this, true); punkte += 10; Console.WriteLine(punkte); var yKoords = new int[4]; yKoords[0] = einSpielstein.y1; yKoords[1] = einSpielstein.y2; yKoords[2] = einSpielstein.y3; yKoords[3] = einSpielstein.y4; Array.Sort(yKoords); foreach (var y in yKoords) { for (int i = 1; i <= xmax; ++i) { if (feld[i, y] == 0) { break; } if (i == xmax) { ZeileLöschen(y); } } } stats.Punkte += 100; // mainApp.Update(this); }
private void NeuerSpielstein() { var randomInt = random.Next(1, 8); var neuerStein = new Spielstein((int)(randomInt)); if (Setzbar(neuerStein)) { aktSpielstein = neuerStein; if (Verschiebbar(aktSpielstein, 0, 1) || Verschiebbar(aktSpielstein, 1, 0) || Verschiebbar(aktSpielstein, -1, 0)) { return; } else { Ablegen(aktSpielstein); } } aktSpielstein = null; GameOver(); }
public void ResetSpiel() { levelManager.Reset(); aktSpielstein = null; mainApp.ResetView(); }
private void Drehen(Spielstein stein) { Loeschen(stein); stein.Drehen(); Setzen(stein); }
private void Verschieben(Spielstein einSpielstein, int x, int y) { Loeschen(einSpielstein); einSpielstein.Verschieben(x, y); Setzen(einSpielstein); }