예제 #1
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);
        }
예제 #2
0
 internal void InviaLog(Pezzo p, Cella vecchiaposizione, Cella nuovaposizione)
 {
     if (Spostamento != null)
     {
         Spostamento(p, vecchiaposizione, nuovaposizione);
     }
 }
예제 #3
0
 protected override bool ControllaSpostamento(Cella nuovaPosizione)
 {
     if (nuovaPosizione.x == Posizione.x || nuovaPosizione.y == Posizione.y ||
         Math.Abs(nuovaPosizione.x - Posizione.x) == Math.Abs(nuovaPosizione.y - Posizione.y))
     {
         return(true);
     }
     return(false);
 }
예제 #4
0
 protected override bool ControllaSpostamento(Cella nuovaPosizione)
 {
     
     if (nuovaPosizione.x == Posizione.x || nuovaPosizione.y == Posizione.y)
     {
         return true;
     }
     return false;
 }
예제 #5
0
 protected override bool ControllaSpostamento(Cella nuovaPosizione)
 {
     base.Muovi(nuovaPosizione);
     if (Math.Abs(nuovaPosizione.x - Posizione.x) == Math.Abs(1) && nuovaPosizione.y == Posizione.y ||
         Math.Abs(nuovaPosizione.y - Posizione.y) == Math.Abs(1) && nuovaPosizione.x == Posizione.x ||
         Math.Abs(nuovaPosizione.x - Posizione.x) == Math.Abs(1) && Math.Abs(nuovaPosizione.y - Posizione.y) == Math.Abs(1))
     {
         return(true);
     }
     return(false);
 }
예제 #6
0
 protected override bool ControllaSpostamento(Cella nuovaPosizione)
 {
     if (Math.Abs(nuovaPosizione.x - Posizione.x) == Math.Abs(nuovaPosizione.y - Posizione.x))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
예제 #7
0
        protected override bool ControllaSpostamento(Cella nuovaPosizione)
        {
            int h = Math.Abs(nuovaPosizione.x - Posizione.y);
            int v = Math.Abs(nuovaPosizione.x - Posizione.x);

            if ((h == 3 && v == 1) || (h == 1 && v == 3))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
예제 #8
0
        protected override bool ControllaSpostamento(Cella nuovaPosizione)
        {
            if (nuovaPosizione.x == Posizione.x)
            {
                int segno = Colore == Schieramento.Bianco ? +1 : -1;
                int start = Colore == Schieramento.Bianco ? 2 : 7;
                if (nuovaPosizione.y == Posizione.y + segno)
                {
                    return(true);
                }
                else if (Posizione.y == start && nuovaPosizione.y == Posizione.y + segno * 2)
                {
                    return(true);
                }
            }

            return(false);
        }