コード例 #1
0
        public bool PuòMuovere(
            Colonna colonnaPartenza,
            Traversa traversaPartenza,
            Colonna colonnaArrivo,
            Traversa traversaArrivo,
            IEnumerable <ICasa> listaCase = null)
        {
            var differenzaColonne  = colonnaPartenza - colonnaArrivo;
            var differenzaTraverse = (int)traversaPartenza - (int)traversaArrivo;
            var stessaColonna      = colonnaPartenza == colonnaArrivo;
            var stessaTraversa     = traversaPartenza == traversaArrivo;

            if (differenzaColonne == 0 && differenzaTraverse == 0)
            {
                return(false);
            }
            if ((Math.Abs(differenzaColonne) <= 1 && Math.Abs(differenzaTraverse) <= 1) || ((stessaTraversa && !stessaColonna) ||
                                                                                            (stessaColonna && !stessaTraversa)) || ((Math.Abs(differenzaColonne) - Math.Abs(differenzaTraverse)) == 0))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #2
0
ファイル: Donna.cs プロジェクト: VincenzoNucci/UnicamScacchi
        public bool PuòMuovere(Colonna colonnaPartenza, Traversa traversaPartenza, Colonna colonnaArrivo, Traversa traversaArrivo)
        {
            //se la differenza tra le traverse è 1, la differenza tra le colonne deve essere 0
            //e viceversa, allora puo muovere. mentre se si muove in diagonale deve valere
            //la stessa condizione per l'alfiere
            var differenzaColonne  = Math.Abs(colonnaArrivo - colonnaPartenza);
            var differenzaTraverse = Math.Abs(traversaArrivo - traversaPartenza);

            if (differenzaColonne == 0 && differenzaTraverse == 0)
            {
                return(false);
            }
            if (differenzaColonne == 0 && differenzaTraverse >= 1 ||
                differenzaColonne >= 1 && differenzaTraverse == 0)
            {
                return(true);
            }
            else if (differenzaColonne == differenzaTraverse)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #3
0
        public bool PuòMuovere(
            Colonna colonnaPartenza,
            Traversa traversaPartenza,
            Colonna colonnaArrivo,
            Traversa traversaArrivo)
        {
            var stessaColonna         = colonnaPartenza == colonnaArrivo;
            var traversaIniziale      = false;
            var distanzaTraLeTraverse = 0;


            if (this.colore == Colore.Bianco)
            {
                traversaIniziale      = (traversaPartenza == Traversa.Seconda) ? true : false;
                distanzaTraLeTraverse = (int)traversaArrivo - (int)traversaPartenza;
            }
            else
            {
                traversaIniziale      = (traversaPartenza == Traversa.Settima) ? true : false;
                distanzaTraLeTraverse = -((int)traversaArrivo - (int)traversaPartenza);
            }

            if (stessaColonna && (distanzaTraLeTraverse == 1 || (traversaIniziale == true && distanzaTraLeTraverse == 2)))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #4
0
        public bool PuòMuovere(
            Colonna colonnaPartenza,
            Traversa traversaPartenza,
            Colonna colonnaArrivo,
            Traversa traversaArrivo)
        {
            var stessaColonna         = colonnaPartenza == colonnaArrivo;
            var distanzaTraLeTraverse = (int)traversaArrivo - (int)traversaPartenza;
            var distanzaColonne       = colonnaArrivo - colonnaPartenza; //siccome i pedoni hanno un verso per colore, in questo controllo serve vedere il segno perchè non possono tornare indietro

            if (distanzaColonne == 0 && distanzaTraLeTraverse == 0)
            {
                return(false);
            }
            if (traversaPartenza == Traversa.Seconda && Colore == Colore.Bianco &&
                Math.Abs(distanzaTraLeTraverse) <= 2 && distanzaTraLeTraverse > 0)
            {
                return(true);
            }
            if (traversaPartenza == Traversa.Settima && Colore == Colore.Nero &&
                Math.Abs(distanzaTraLeTraverse) <= 2 && distanzaTraLeTraverse < 0)
            {
                return(true);
            }
            if (stessaColonna && Math.Abs(distanzaTraLeTraverse) == 1)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #5
0
 public ICasa this[Colonna colonna, Traversa traversa]
 {
     get
     {
         return(listaCase[(int)colonna - 1 + (((int)traversa - 1) * 8)]);
     }
 }
コード例 #6
0
        public override bool PuòMuovere(
            Colonna colonnaPartenza,
            Traversa traversaPartenza,
            Colonna colonnaArrivo,
            Traversa traversaArrivo,
            IEnumerable <ICasa> listaCase = null)
        {
            bool mossaPossibile = base.PuòMuovere(colonnaPartenza, traversaPartenza, colonnaArrivo, traversaArrivo, listaCase);

            if (!mossaPossibile)
            {
                return(false);
            }
            var differenzaColonne  = colonnaPartenza - colonnaArrivo;
            var differenzaTraverse = (int)traversaPartenza - (int)traversaArrivo;

            if (differenzaColonne == 0 && differenzaTraverse == 0)
            {
                return(false);
            }
            if (Math.Abs(differenzaColonne) <= 1 && Math.Abs(differenzaTraverse) <= 1)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #7
0
        public bool PuòMuovere(
            Colonna colonnaPartenza,
            Traversa traversaPartenza,
            Colonna colonnaArrivo,
            Traversa traversaArrivo,
            IScacchiera scacchiera = null)
        {
            var stessaColonna = colonnaPartenza == colonnaArrivo;
            int distanzaTraLeTraverse;

            if (Colore == Colore.Bianco)
            {
                distanzaTraLeTraverse = (int)traversaArrivo - (int)traversaPartenza;
            }
            else
            {
                distanzaTraLeTraverse = (int)traversaPartenza - (int)traversaArrivo;
            }

            if (stessaColonna && distanzaTraLeTraverse == 1)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #8
0
        public bool PuòMuovere(
            Colonna colonnaPartenza,
            Traversa traversaPartenza,
            Colonna colonnaArrivo,
            Traversa traversaArrivo,
            IScacchiera scacchiera = null)
        {
            var stessaColonna = colonnaPartenza == colonnaArrivo;
            int distanzaTraLeTraverse;

            if (Colore == Colore.Bianco)
            {
                distanzaTraLeTraverse = (int)traversaArrivo - (int)traversaPartenza;
            }
            else
            {
                distanzaTraLeTraverse = (int)traversaPartenza - (int)traversaArrivo;
            }

            if (stessaColonna && distanzaTraLeTraverse == 1)
            {
                return(true);
            }
            else if (stessaColonna && ((distanzaTraLeTraverse == 2 && colore == Colore.Bianco && traversaPartenza == Traversa.Seconda) || (colore == Colore.Nero && traversaPartenza == Traversa.Settima && distanzaTraLeTraverse == -2)))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #9
0
ファイル: Cavallo.cs プロジェクト: mihaisoldan/UnicamScacchi
        public bool PuòMuovere(Colonna colonnaPartenza,
                               Traversa traversaPartenza,
                               Colonna colonnaArrivo,
                               Traversa traversaArrivo,
                               IScacchiera scacchiera)
        {
            var distanzaTraLeColonne  = Math.Abs(colonnaPartenza - colonnaArrivo);
            var distanzaTraLeTraverse = Math.Abs(traversaPartenza - traversaArrivo);

            //controllo se lo spostamento è 2x1
            if ((distanzaTraLeColonne == 2 && distanzaTraLeTraverse == 1) || (distanzaTraLeTraverse == 2 && distanzaTraLeColonne == 1))
            {
                IPezzo pezzoPresente = scacchiera[colonnaArrivo, traversaArrivo].PezzoPresente;
                //controllo pezzo non presente
                if (pezzoPresente == null)
                {
                    return(true);
                }
                //pezzo del avversario
                if (pezzoPresente.Colore != colore)
                {
                    return(true);
                }
                return(false);
            }
            return(false);
        }
コード例 #10
0
        public bool PuòMuovere(Colonna colonnaPartenza, Traversa traversaPartenza, Colonna colonnaArrivo, Traversa traversaArrivo)
        {
            //se la differenza tra le traverse è uguale alla differenza tra le colonne
            //allora puo muovere
            var differenzaColonne  = Math.Abs(colonnaArrivo - colonnaPartenza);
            var differenzaTraverse = Math.Abs(traversaArrivo - traversaPartenza);

            return((differenzaColonne != 0) == (differenzaTraverse != 0));
        }
コード例 #11
0
        public virtual bool PuòMuovere(Colonna colonnaPartenza, Traversa traversaPartenza, Colonna colonnaArrivo, Traversa traversaArrivo, IEnumerable <ICasa> listaCase = null)
        {
            if (colonnaPartenza == colonnaArrivo && traversaPartenza == traversaArrivo)
            {
                return(false);
            }

            return(true);
        }
コード例 #12
0
        public bool PuòMuovere(
            Colonna colonnaPartenza,
            Traversa traversaPartenza,
            Colonna colonnaArrivo,
            Traversa traversaArrivo,
            IEnumerable <ICasa> listaCase = null)
        {
            listaCase = listaCase ?? Enumerable.Empty <ICasa>();

            ICasa casaPartenza = listaCase.SingleOrDefault(casa => casa.Colonna == colonnaPartenza &&
                                                           casa.Traversa == traversaPartenza &&
                                                           casa.PezzoPresente == this);

            if ((this.colore == Colore.Bianco &&
                 colonnaArrivo - colonnaPartenza == 1 &&
                 traversaArrivo - traversaPartenza == 1) || (this.colore == Colore.Nero &&
                                                             colonnaPartenza - colonnaArrivo == 1 &&
                                                             traversaPartenza - traversaArrivo == 1))
            {
                ICasa casaArrivo = listaCase.SingleOrDefault(casa => casa.Colonna == colonnaArrivo &&
                                                             casa.Traversa == traversaArrivo);
                if (casaArrivo.PezzoPresente.Colore != this.colore)
                {
                    return(true);
                }
            }

            var stessaColonna = colonnaPartenza == colonnaArrivo;
            int distanzaTraLeTraverse;

            if (Colore == Colore.Bianco)
            {
                distanzaTraLeTraverse = (int)traversaArrivo - (int)traversaPartenza;
            }
            else
            {
                distanzaTraLeTraverse = (int)traversaPartenza - (int)traversaArrivo;
            }

            if (stessaColonna && distanzaTraLeTraverse == 1)
            {
                if (listaCase.SingleOrDefault(casa => casa.Colonna == colonnaArrivo &&
                                              casa.Traversa == traversaArrivo)?.PezzoPresente == null)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
コード例 #13
0
        public bool PuòMuovere(Colonna colonnaPartenza,
                               Traversa traversaPartenza,
                               Colonna colonnaArrivo,
                               Traversa traversaArrivo,
                               IScacchiera scacchiera)
        {
            var stessaColonna  = colonnaPartenza == colonnaArrivo;
            var stessaTraversa = traversaPartenza == traversaArrivo;

            if (stessaColonna && stessaTraversa)
            {
                return(false);
            }
            if (stessaColonna)
            {
                int verso = Math.Sign(traversaArrivo - traversaPartenza);
                for (int i = (int)traversaPartenza + verso;; i += verso)
                {
                    if (i == (int)traversaArrivo)
                    {
                        IPezzo pezzoSullaCasaDiArrivo = scacchiera[colonnaPartenza, (Traversa)i].PezzoPresente;
                        if (pezzoSullaCasaDiArrivo == null)
                        {
                            return(true);
                        }
                        return(pezzoSullaCasaDiArrivo.Colore != colore? true : false);
                    }
                    if (scacchiera[colonnaPartenza, (Traversa)i].PezzoPresente != null)
                    {
                        return(false);
                    }
                }
            }
            if (stessaTraversa)
            {
                int verso = Math.Sign(colonnaArrivo - colonnaPartenza);
                for (int i = (int)colonnaPartenza + verso;; i += verso)
                {
                    if (i == (int)colonnaArrivo)
                    {
                        IPezzo pezzoSullaCasaDiArrivo = scacchiera[(Colonna)i, traversaPartenza].PezzoPresente;
                        if (pezzoSullaCasaDiArrivo == null)
                        {
                            return(true);
                        }
                        return(pezzoSullaCasaDiArrivo.Colore != colore? true : false);
                    }
                    if (scacchiera[(Colonna)i, traversaPartenza].PezzoPresente != null)
                    {
                        return(false);
                    }
                }
            }
            //per far contento il compilatore
            return(false);
        }
コード例 #14
0
        internal ICasa CreaCasa(int i)
        {
            Colonna  colonna  = (Colonna)(i % 8 + 1);
            Traversa traversa = (Traversa)(i / 8 + 1);
            ICasa    casa     = new Casa(colonna, traversa);

            if (traversa == Traversa.Seconda)
            {
                casa.PezzoPresente = new Pedone(Colore.Bianco);
            }
            else if (traversa == Traversa.Settima)
            {
                casa.PezzoPresente = new Pedone(Colore.Nero);
            }
            else if (traversa == Traversa.Prima || traversa == Traversa.Ottava)
            {
                Colore colore = traversa == Traversa.Prima ? Colore.Bianco : Colore.Nero;

                switch (colonna)
                {
                case Colonna.A:
                    casa.PezzoPresente = new Torre(colore);
                    break;

                case Colonna.B:
                    casa.PezzoPresente = new Cavallo(colore);
                    break;

                case Colonna.C:
                    casa.PezzoPresente = new Alfiere(colore);
                    break;

                case Colonna.D:
                    casa.PezzoPresente = new Donna(colore);
                    break;

                case Colonna.E:
                    casa.PezzoPresente = new Re(colore);
                    break;

                case Colonna.F:
                    casa.PezzoPresente = new Alfiere(colore);
                    break;

                case Colonna.G:
                    casa.PezzoPresente = new Cavallo(colore);
                    break;

                case Colonna.H:
                    casa.PezzoPresente = new Torre(colore);
                    break;
                }
            }
            return(casa);
        }
コード例 #15
0
        public bool PuòMuovere(
            Colonna colonnaPartenza,
            Traversa traversaPartenza,
            Colonna colonnaArrivo,
            Traversa traversaArrivo)
        {
            int distanzaTraLeTraverse = Math.Abs((int)traversaArrivo - (int)traversaPartenza);
            int distanzaTraLeColonne  = Math.Abs((int)colonnaArrivo - (int)colonnaPartenza);

            return(distanzaTraLeTraverse == distanzaTraLeColonne);
        }
コード例 #16
0
 public bool PuòMuovere(
     Colonna colonnaPartenza,
     Traversa traversaPartenza,
     Colonna colonnaArrivo,
     Traversa traversaArrivo,
     IScacchiera scacchiera)
 {
     return(new Torre(colore).PuòMuovere(colonnaPartenza, traversaPartenza,
                                         colonnaArrivo, traversaArrivo, scacchiera) || new Alfiere(colore).
            PuòMuovere(colonnaPartenza, traversaPartenza, colonnaArrivo, traversaArrivo, scacchiera));
 }
コード例 #17
0
        public bool PuòMuovere(
            Colonna colonnaPartenza,
            Traversa traversaPartenza,
            Colonna colonnaArrivo,
            Traversa traversaArrivo)
        {
            bool stessaColonna  = colonnaPartenza == colonnaArrivo;
            bool stessaTraversa = traversaPartenza == traversaArrivo;

            // ^ XOR
            return(stessaColonna ^ stessaTraversa);
        }
コード例 #18
0
        public override bool PuòMuovere(
            Colonna colonnaPartenza,
            Traversa traversaPartenza,
            Colonna colonnaArrivo,
            Traversa traversaArrivo,
            IEnumerable <ICasa> listaCase = null)
        {
            listaCase = listaCase ?? Enumerable.Empty <ICasa>();
            if (!base.PuòMuovere(colonnaPartenza, traversaPartenza, colonnaArrivo, traversaArrivo, listaCase))
            {
                return(false);
            }


            ICasa casaPartenza = listaCase.SingleOrDefault(casa => casa.Colonna == colonnaPartenza &&
                                                           casa.Traversa == traversaPartenza && casa.PezzoPresente == this);
            ICasa casaArrivo = listaCase.SingleOrDefault(casa => casa.Colonna == colonnaArrivo && casa.Traversa == traversaArrivo);

            if (casaArrivo?.PezzoPresente?.Colore == this.Colore)
            {
                return(false);
            }
            var differenzaColonne  = colonnaPartenza - colonnaArrivo;
            var differenzaTraverse = (int)traversaPartenza - (int)traversaArrivo;

            if (differenzaTraverse == 2 || differenzaTraverse == -2)
            {
                if (differenzaColonne == 1 || differenzaColonne == -1)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else if (differenzaColonne == 2 || differenzaColonne == -2)
            {
                if (differenzaTraverse == 1 || differenzaTraverse == -1)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
コード例 #19
0
        public bool PuòMuovere(
            Colonna colonnaPartenza,
            Traversa traversaPartenza,
            Colonna colonnaArrivo,
            Traversa traversaArrivo)
        {
            int distanzaTraLeTraverse = Math.Abs((int)traversaArrivo - (int)traversaPartenza);
            int distanzaTraLeColonne  = Math.Abs((int)colonnaArrivo - (int)colonnaPartenza);

            // ^ XOR
            return((distanzaTraLeTraverse == 0 || distanzaTraLeTraverse == 1) &&
                   (distanzaTraLeColonne == 0 || distanzaTraLeColonne == 1));
        }
コード例 #20
0
        public void iPezziVengonoInseritiNellaPosizioneGiusta(Type pezzo,
                                                              Colore colore, Colonna colonna, Traversa traversa)
        {
            //Given
            Scacchiera scacchiera = new Scacchiera();

            //When
            scacchiera.disponiPezziInConfigurazioneIniziale();
            ICasa casa = scacchiera[colonna, traversa];

            //Then
            Assert.Equal(casa.PezzoPresente.GetType(), pezzo);
            Assert.Equal(casa.PezzoPresente.Colore, colore);
        }
コード例 #21
0
 public bool PuòMuovere(Colonna colonnaPartenza,
                        Traversa traversaPartenza,
                        Colonna colonnaArrivo,
                        Traversa traversaArrivo,
                        IScacchiera scacchiera)
 {
     if (Math.Abs((int)(colonnaArrivo - colonnaPartenza) *
                  (int)(traversaArrivo - traversaPartenza)) <= 1)
     {
         return(new Donna(colore).PuòMuovere(colonnaPartenza, traversaPartenza,
                                             colonnaArrivo, traversaArrivo, scacchiera));
     }
     return(false);
 }
コード例 #22
0
        public bool PuòMuovere(
            Colonna colonnaPartenza,
            Traversa traversaPartenza,
            Colonna colonnaArrivo,
            Traversa traversaArrivo)
        {
            bool stessaColonna  = colonnaPartenza == colonnaArrivo;
            bool stessaTraversa = traversaPartenza == traversaArrivo;

            int distanzaTraLeTraverse = Math.Abs((int)traversaArrivo - (int)traversaPartenza);
            int distanzaTraLeColonne  = Math.Abs((int)colonnaArrivo - (int)colonnaPartenza);

            // ^ XOR
            return((stessaColonna ^ stessaTraversa) ^ (distanzaTraLeTraverse == distanzaTraLeColonne));
        }
コード例 #23
0
ファイル: Pedone.cs プロジェクト: eduardo1988/UnicamScacchi
        public bool PuòMuovere(
            Colonna colonnaPartenza,
            Traversa traversaPartenza,
            Colonna colonnaArrivo,
            Traversa traversaArrivo)
        {
            var stessaColonna         = colonnaPartenza == colonnaArrivo;
            var distanzaTraLeTraverse = (int)traversaArrivo - (int)traversaPartenza;

            if (stessaColonna && distanzaTraLeTraverse == 1)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #24
0
        public bool PuòMuovere(
            Colonna colonnaPartenza,
            Traversa traversaPartenza,
            Colonna colonnaArrivo,
            Traversa traversaArrivo,
            IEnumerable <ICasa> listaCase = null)
        {
            var stessaColonna  = colonnaPartenza == colonnaArrivo;
            var stessaTraversa = traversaPartenza == traversaArrivo;

            if ((stessaTraversa && !stessaColonna) || (stessaColonna && !stessaTraversa))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #25
0
        public void ilPedoneNonSiPuòMuovereSeHaUnPezzoDavanti(
            Colonna colonnaPartenza, Traversa traversaPartenza,
            Colonna colonnaArrivo, Traversa traversaArrivo,
            Colore colore, Colonna colonnaPezzoBloccante,
            Traversa traversaPezzoBloccante)
        {
            //Given
            Pedone     pedone     = new Pedone(colore);
            Scacchiera scacchiera = new Scacchiera();

            scacchiera[colonnaPezzoBloccante, traversaPezzoBloccante].PezzoPresente =
                new Pedone(Colore.Bianco);
            //When
            bool esito = pedone.PuòMuovere(colonnaPartenza, traversaPartenza,
                                           colonnaArrivo, traversaArrivo, scacchiera);

            //Then
            Assert.False(esito);
        }
コード例 #26
0
ファイル: Torre.cs プロジェクト: sarabelluccini/UnicamScacchi
        public bool PuòMuovere(
            Colonna colonnaPartenza,
            Traversa traversaPartenza,
            Colonna colonnaArrivo,
            Traversa traversaArrivo,
            IScacchiera scacchiera = null)
        {
            var stessaColonna  = colonnaPartenza == colonnaArrivo;
            var stessaTraversa = traversaPartenza == traversaArrivo;

            if ((stessaTraversa && !stessaColonna) || (stessaColonna && !stessaTraversa))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #27
0
        public void ilCavalloPuòMangiarePezzoAvversario(
            Colonna colonnaPartenza, Traversa traversaPartenza,
            Colonna colonnaArrivo, Traversa traversaArrivo,
            Colore colore, Colore colorePezzoBloccante,
            Colonna colonnaPezzoBloccante,
            Traversa traversaPezzoBloccante)
        {
            //Given
            Cavallo    cavallo    = new Cavallo(colore);
            Scacchiera scacchiera = new Scacchiera();

            scacchiera[colonnaPezzoBloccante, traversaPezzoBloccante].PezzoPresente =
                new Pedone(colorePezzoBloccante);
            //When
            bool esito = cavallo.PuòMuovere(colonnaPartenza, traversaPartenza,
                                            colonnaArrivo, traversaArrivo, scacchiera);

            //Then
            Assert.True(esito);
        }
コード例 #28
0
        public void IlReNonSiPuòMuovereSeUnPezzoDelloStessoColoreBloccaLoSpostamento(
            Colonna colonnaPartenza, Traversa traversaPartenza,
            Colonna colonnaArrivo, Traversa traversaArrivo,
            Colore colore, Colore colorePezzoBloccante,
            Colonna colonnaPezzoBloccante,
            Traversa traversaPezzoBloccante)
        {
            //Given
            Re         re         = new Re(colore);
            Scacchiera scacchiera = new Scacchiera();

            scacchiera[colonnaPezzoBloccante, traversaPezzoBloccante].PezzoPresente =
                new Pedone(colorePezzoBloccante);
            //When
            bool esito = re.PuòMuovere(colonnaPartenza, traversaPartenza,
                                       colonnaArrivo, traversaArrivo, scacchiera);

            //Then
            Assert.False(esito);
        }
コード例 #29
0
        public void ilRePuòMangiarePezzoAvversarioInOrizzontaleVerticaleDiagonale(
            Colonna colonnaPartenza, Traversa traversaPartenza,
            Colonna colonnaArrivo, Traversa traversaArrivo,
            Colore colore, Colore colorePezzoBloccante,
            Colonna colonnaPezzoBloccante,
            Traversa traversaPezzoBloccante)
        {
            //Given
            Re         re         = new Re(colore);
            Scacchiera scacchiera = new Scacchiera();

            scacchiera[colonnaPezzoBloccante, traversaPezzoBloccante].PezzoPresente =
                new Pedone(colorePezzoBloccante);
            //When
            bool esito = re.PuòMuovere(colonnaPartenza, traversaPartenza,
                                       colonnaArrivo, traversaArrivo, scacchiera);

            //Then
            Assert.True(esito);
        }
コード例 #30
0
        public void laReginaNonSiPuòMuovereSeUnPezzoBloccaLoSpostamento(
            Colonna colonnaPartenza, Traversa traversaPartenza,
            Colonna colonnaArrivo, Traversa traversaArrivo,
            Colore colore, Colore colorePezzoBloccante,
            Colonna colonnaPezzoBloccante,
            Traversa traversaPezzoBloccante)
        {
            //Given
            Donna      donna      = new Donna(colore);
            Scacchiera scacchiera = new Scacchiera();

            scacchiera[colonnaPezzoBloccante, traversaPezzoBloccante].PezzoPresente =
                new Pedone(colorePezzoBloccante);
            //When
            bool esito = donna.PuòMuovere(colonnaPartenza, traversaPartenza,
                                          colonnaArrivo, traversaArrivo, scacchiera);

            //Then
            Assert.False(esito);
        }