示例#1
0
        public override void Muovi(Cella nuovaPosizione)
        {
            base.Muovi(nuovaPosizione);
            switch (Colore)
            {
            case Schieramento.Bianco:
                if (nuovaPosizione.x == Posizione.x && nuovaPosizione.y == Posizione.y + 1)
                {
                    Posizione = nuovaPosizione;
                }
                else if (nuovaPosizione.x == Posizione.x && nuovaPosizione.y == Posizione.y + 2 && Posizione.y == 2)
                {
                    Posizione = nuovaPosizione;
                }
                Errore();
                break;

            case Schieramento.Nero:
                if (nuovaPosizione.x == Posizione.x && nuovaPosizione.y == Posizione.y - 1)
                {
                    Posizione = nuovaPosizione;
                }
                else if (nuovaPosizione.x == Posizione.x && nuovaPosizione.y == Posizione.y - 2 && Posizione.y == 7)
                {
                    Posizione = nuovaPosizione;
                }
                Errore();
                break;
            }
        }
示例#2
0
        public void Print()
        {
            string s        = "";
            int    cellSize = 3;

            PrintLetters(ref s, cellSize);
            PrintLine(ref s, cellSize);
            for (int n = 8; n >= 1; n--)
            {
                s += $"{n}|";
                for (char c = 'A'; c <= 'H'; c++)
                {
                    Cella cella = GetCella(c, n);
                    if (cella.Pezzo != null)
                    {
                        s += cella.Pezzo.ShortName.PadRight(cellSize);
                    }
                    else
                    {
                        s += $"".PadRight(cellSize);
                    }
                    s += "|";
                }
                s += "\n";
                PrintLine(ref s, cellSize);
            }
            PrintLetters(ref s, cellSize);
            Console.Write(s);
        }
示例#3
0
 public override void Muovi(Cella nuovaPosizione)
 {
     base.Muovi(nuovaPosizione);
     if (nuovaPosizione.x == Posizione.x || nuovaPosizione.y == Posizione.y)
     {
         Posizione = nuovaPosizione;
     }
     Errore();
 }
示例#4
0
 public override void Muovi(Cella nuovaPosizione)
 {
     base.Muovi(nuovaPosizione);
     if (nuovaPosizione.x == Posizione.x || nuovaPosizione.y == Posizione.y ||
         Math.Abs(nuovaPosizione.x - Posizione.x) == Math.Abs(nuovaPosizione.y - Posizione.y))
     {
         Posizione = nuovaPosizione;
     }
     Errore();
 }
示例#5
0
 public override void Muovi(Cella nuovaPosizione)
 {
     if (Math.Abs(nuovaPosizione.x - Posizione.x) == Math.Abs(nuovaPosizione.y - Posizione.x))
     {
         Posizione = nuovaPosizione;
     }
     else
     {
         Errore();
     }
 }
示例#6
0
 public override void Muovi(Cella NuovaPosizione)
 {
     if (Math.Abs(NuovaPosizione.Lettera - Posizione.Lettera) == Math.Abs(NuovaPosizione.Numero - Posizione.Numero))
     {
         Posizione = NuovaPosizione;
     }
     else
     {
         Errore();
     }
 }
示例#7
0
 public override void Muovi(Cella NuovaPosizione)
 {
     if (NuovaPosizione.Lettera == Posizione.Lettera || NuovaPosizione.Numero == Posizione.Numero)
     {
         Posizione = NuovaPosizione;
     }
     else
     {
         Errore();
     }
 }
示例#8
0
        public override void Muovi(Cella NuovaPosizione)
        {
            int l = Math.Abs(NuovaPosizione.Lettera - Posizione.Lettera);
            int n = Math.Abs(NuovaPosizione.Numero - Posizione.Numero);

            if (l <= 1 && n <= 1 && n + l >= 1)
            {
                Posizione = NuovaPosizione;
            }
            else
            {
                Errore();
            }
        }
示例#9
0
        public override void Muovi(Cella NuovaPosizione)
        {
            int h = Math.Abs(NuovaPosizione.Numero - Posizione.Numero);
            int v = Math.Abs(NuovaPosizione.Lettera - Posizione.Lettera);

            if ((h == 3 && v == 1) || (h == 1 && v == 3))
            {
                Posizione = NuovaPosizione;
            }
            else
            {
                Errore();
            }
        }
示例#10
0
        public override void Muovi(Cella nuovaposizione)
        {
            int h = Math.Abs(nuovaposizione.y - Posizione.y);
            int v = Math.Abs(nuovaposizione.x - Posizione.x);

            if ((h == 3 && v == 1) || (h == 1 && v == 3))
            {
                Posizione = nuovaposizione
            }
            else
            {
                Errore();
            }
        }
示例#11
0
 public override void Muovi(Cella nuovaPosizione)
 {
     if (nuovaPosizione.Lettera == Posizione.Lettera ||
         nuovaPosizione.Numero == Posizione.Numero)
     {
         Posizione = nuovaPosizione;
     }
     if (Math.Abs(nuovaPosizione.Lettera - Posizione.Lettera) ==
         Math.Abs(nuovaPosizione.Numero - Posizione.Numero))
     {
         Posizione = nuovaPosizione;
     }
     else
     {
         Errore();
     }
 }
示例#12
0
 public override void Muovi(Cella nuovaPosizione)
 {
     if (nuovaPosizione.Lettera == Posizione.Lettera)
     {
         int segno = Schieramento == Colore.Bianco ? +1 : -1;
         int start = Schieramento == Colore.Bianco ? 2 : 7;
         if (nuovaPosizione.Numero == Posizione.Numero + segno)
         {
             Posizione = nuovaPosizione;
         }
         else if (Posizione.Numero == start && nuovaPosizione.Numero == Posizione.Numero + segno * 2)
         {
             Posizione = nuovaPosizione;
         }
         else
         {
             Errore();
         }
     }
     else
     {
         Errore();
     }
 }