Beispiel #1
0
 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;
 }
Beispiel #2
0
 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;
 }
Beispiel #3
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));
        }
Beispiel #4
0
        private bool Drehbar(Spielstein einSpielstein)
        {
            if (einSpielstein == null)
            {
                return(false);
            }
            Spielstein verschobenerSpielstein = einSpielstein.Kopie();

            verschobenerSpielstein.Drehen();
            return(Setzbar(verschobenerSpielstein));
        }
Beispiel #5
0
        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));
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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();
        }
Beispiel #9
0
 public void ResetSpiel()
 {
     levelManager.Reset();
     aktSpielstein = null;
     mainApp.ResetView();
 }
Beispiel #10
0
 private void Drehen(Spielstein stein)
 {
     Loeschen(stein);
     stein.Drehen();
     Setzen(stein);
 }
Beispiel #11
0
 private void Verschieben(Spielstein einSpielstein, int x, int y)
 {
     Loeschen(einSpielstein);
     einSpielstein.Verschieben(x, y);
     Setzen(einSpielstein);
 }