public void Stampa()
        {
            string s        = "";
            int    cellSize = 3;

            StampaLettera(ref s, cellSize);
            StampaLinea(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";
                StampaLinea(ref s, cellSize);
            }
            StampaLettera(ref s, cellSize);
            Console.Write(s);
        }
示例#2
0
 public override void Muovi(Cella nuovaPosizione)
 {
     base.Muovi(nuovaPosizione);
     if (nuovaPosizione.Lettera == Posizione.Lettera ||
         nuovaPosizione.Numero == Posizione.Numero)
     {
         Posizione = nuovaPosizione;
     }
     else
     {
         Errore();
     }
 }
示例#3
0
 public override void Muovi(Cella nuovaPosizione)
 {
     base.Muovi(nuovaPosizione);
     if (Math.Abs(nuovaPosizione.Lettera - Posizione.Lettera) ==
         Math.Abs(nuovaPosizione.Numero - Posizione.Numero))
     {
         Posizione = nuovaPosizione;
     }
     else
     {
         Errore();
     }
 }
示例#4
0
        public override void Muovi(Cella nuovaPosizione)
        {
            int h = Math.Abs(nuovaPosizione.Numero - Posizione.Numero);
            int v = Math.Abs(nuovaPosizione.Lettera - Posizione.Lettera);

            base.Muovi(nuovaPosizione);
            if ((h == 3 && v == 1) || (h == 1 && v == 3))
            {
                Posizione = nuovaPosizione;
            }
            else
            {
                Errore();
            }
        }
示例#5
0
        public override void Muovi(Cella nuovaPosizione)
        {
            int l = Math.Abs(nuovaPosizione.Lettera - Posizione.Lettera);
            int n = Math.Abs(nuovaPosizione.Numero - Posizione.Numero);

            base.Muovi(nuovaPosizione);
            if (l <= 1 && n <= 1 && n + l >= 1)
            {
                Posizione = nuovaPosizione;
            }
            else
            {
                Errore();
            }
        }
示例#6
0
 public override void Muovi(Cella nuovaPosizione)
 {
     if (nuovaPosizione.Lettera == Posizione.Lettera)
     {
         int segno = Colore == Colore.Bianco ? +1 : -1;
         int start = Colore == 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();
     }
 }