コード例 #1
0
        public void IPezziNonPossonoRestareFermi(Type t)
        {
            //Given
            IPezzo     pezzo      = Activator.CreateInstance(t, Colore.Bianco) as IPezzo;
            Scacchiera scacchiera = new Scacchiera();
            //When
            bool esito = pezzo.PuòMuovere(Colonna.A, Traversa.Prima, Colonna.A,
                                          Traversa.Prima, scacchiera);

            //Then
            Assert.False(esito, t.Name);
        }
コード例 #2
0
        public void IlCavalloPuoMuovereSoloAdL(Colore colore)
        {
            //Given
            Cavallo    cavallo    = new Cavallo(colore);
            Scacchiera scacchiera = new Scacchiera();
            //When
            bool esito = cavallo.PuòMuovere(
                colonnaPartenza: Colonna.G,
                traversaPartenza: Traversa.Ottava,
                colonnaArrivo: Colonna.E,
                traversaArrivo: Traversa.Sesta,
                scacchiera: scacchiera);

            //Then
            Assert.False(esito);
        }
コード例 #3
0
        public void IlRePuoMuovereSoloDiUno(Colore colore)
        {
            //Given
            Re         re         = new Re(colore);
            Scacchiera scacchiera = new Scacchiera();
            //When
            bool esito = re.PuòMuovere(
                colonnaPartenza: Colonna.F,
                traversaPartenza: Traversa.Ottava,
                colonnaArrivo: Colonna.C,
                traversaArrivo: Traversa.Quarta,
                scacchiera: scacchiera);

            //Then
            Assert.False(esito);
        }
コード例 #4
0
        public void IlRePuoMuovereInDiagonaleDiUno(Colore colore)
        {
            //Given
            Re         re         = new Re(colore);
            Scacchiera scacchiera = new Scacchiera();
            //When
            bool esito = re.PuòMuovere(
                colonnaPartenza: Colonna.A,
                traversaPartenza: Traversa.Prima,
                colonnaArrivo: Colonna.B,
                traversaArrivo: Traversa.Seconda,
                scacchiera: scacchiera);

            //Then
            Assert.True(esito);
        }
コード例 #5
0
        public void LaDonnaPuoMuovereInDiagonale(Colore colore)
        {
            //Given
            Donna      donna      = new Donna(colore);
            Scacchiera scacchiera = new Scacchiera();
            //When
            bool esito = donna.PuòMuovere(
                colonnaPartenza: Colonna.A,
                traversaPartenza: Traversa.Prima,
                colonnaArrivo: Colonna.F,
                traversaArrivo: Traversa.Sesta,
                scacchiera: scacchiera);

            //Then
            Assert.True(esito);
        }
コード例 #6
0
        public void IlPedoneNeroNonPuoMuovereIndietroDiUnaCasa()
        {
            //Given
            Pedone     pedone     = new Pedone(Colore.Nero);
            Scacchiera scacchiera = new Scacchiera();
            //When
            bool esito = pedone.PuòMuovere(
                colonnaPartenza: Colonna.A,
                traversaPartenza: Traversa.Terza,
                colonnaArrivo: Colonna.A,
                traversaArrivo: Traversa.Quarta,
                scacchiera: scacchiera);

            //Then
            Assert.False(esito);
        }
コード例 #7
0
        public void LaDonnaPuoMuovereSoloInDiagonaleOrizzontaleVerticale(Colore colore)
        {
            //Given
            Donna      donna      = new Donna(colore);
            Scacchiera scacchiera = new Scacchiera();
            //When
            bool esito = donna.PuòMuovere(
                colonnaPartenza: Colonna.F,
                traversaPartenza: Traversa.Ottava,
                colonnaArrivo: Colonna.C,
                traversaArrivo: Traversa.Quarta,
                scacchiera: scacchiera);

            //Then
            Assert.False(esito);
        }
コード例 #8
0
        public void IlPedoneBiancoPuoMuovereAvantiDiDueCaseDallaSecondaTravers()
        {
            //Given
            Pedone     pedone     = new Pedone(Colore.Bianco);
            Scacchiera scacchiera = new Scacchiera();
            //When
            bool esito = pedone.PuòMuovere(
                colonnaPartenza: Colonna.A,
                traversaPartenza: Traversa.Seconda,
                colonnaArrivo: Colonna.A,
                traversaArrivo: Traversa.Quarta,
                scacchiera: scacchiera);

            //Then
            Assert.True(esito);
        }
コード例 #9
0
        public void IlCavalloPuoMuovereAdL(Colore colore)
        {
            //Given
            Cavallo    cavallo    = new Cavallo(colore);
            Scacchiera scacchiera = new Scacchiera();
            //When
            bool esito = cavallo.PuòMuovere(
                colonnaPartenza: Colonna.B,
                traversaPartenza: Traversa.Prima,
                colonnaArrivo: Colonna.A,
                traversaArrivo: Traversa.Terza,
                scacchiera: scacchiera);

            //Then
            Assert.True(esito);
        }
コード例 #10
0
        public void LAlfierePuoMuovereSoloInDiagonale(Colore colore)
        {
            //Given
            Alfiere    alfiere    = new Alfiere(colore);
            Scacchiera scacchiera = new Scacchiera();
            //When
            bool esito = alfiere.PuòMuovere(
                colonnaPartenza: Colonna.F,
                traversaPartenza: Traversa.Ottava,
                colonnaArrivo: Colonna.C,
                traversaArrivo: Traversa.Quarta,
                scacchiera: scacchiera);

            //Then
            Assert.False(esito);
        }
コード例 #11
0
        public void LaTorreNonPuoMuovereInDiagonale(Colore colore)
        {
            //Given
            Torre      torre      = new Torre(colore);
            Scacchiera scacchiera = new Scacchiera();
            //When
            bool esito = torre.PuòMuovere(
                colonnaPartenza: Colonna.A,
                traversaPartenza: Traversa.Prima,
                colonnaArrivo: Colonna.F,
                traversaArrivo: Traversa.Quarta,
                scacchiera: scacchiera);

            //Then
            Assert.False(esito);
        }
コード例 #12
0
        public void LaTorrePuoMuovereInVerticale(Colore colore)
        {
            //Given
            Torre      torre      = new Torre(colore);
            Scacchiera scacchiera = new Scacchiera();
            //When
            bool esito = torre.PuòMuovere(
                colonnaPartenza: Colonna.A,
                traversaPartenza: Traversa.Prima,
                colonnaArrivo: Colonna.A,
                traversaArrivo: Traversa.Sesta,
                scacchiera: scacchiera);

            //Then
            Assert.True(esito);
        }
コード例 #13
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);
        }
コード例 #14
0
        public void ilCavalloNonPuòOccupareCasaOccupataDaPezzoDiStessoColore(
            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.False(esito);
        }
コード例 #15
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);
        }
コード例 #16
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);
        }
コード例 #17
0
        public void lAlfierePuòMangiareInDiagonale(
            Colonna colonnaPartenza, Traversa traversaPartenza,
            Colonna colonnaArrivo, Traversa traversaArrivo,
            Colore colore, Colore colorePezzoBloccante,
            Colonna colonnaPezzoBloccante,
            Traversa traversaPezzoBloccante)
        {
            //Given
            Alfiere    alfiere    = new Alfiere(colore);
            Scacchiera scacchiera = new Scacchiera();

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

            //Then
            Assert.True(esito);
        }
コード例 #18
0
        public void ilPedoneNonPuòMangiareUnPezzoDelloStessoColoreInDiagonaleDiUno(
            Colonna colonnaPartenza, Traversa traversaPartenza,
            Colonna colonnaArrivo, Traversa traversaArrivo,
            Colore colore, Colore colorePezzoBloccante,
            Colonna colonnaPezzoBloccante,
            Traversa traversaPezzoBloccante)
        {
            //Given
            Pedone     pedone     = new Pedone(colore);
            Scacchiera scacchiera = new Scacchiera();

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

            //Then
            Assert.False(esito);
        }
コード例 #19
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);
        }
コード例 #20
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);
        }
コード例 #21
0
ファイル: Tavolo.cs プロジェクト: dfgemma/UnicamScacchi
        public void InserisciMossa(string mossa)
        {
            Coordinata partenza     = InterpretaCoordinataCasa(mossa.Substring(0, 2));
            Coordinata arrivo       = InterpretaCoordinataCasa(mossa.Substring(3, 2));
            ICasa      casaPartenza = Scacchiera[partenza.Colonna, partenza.Traversa];
            ICasa      casaArrivo   = Scacchiera[arrivo.Colonna, arrivo.Traversa];

            if (casaPartenza.PezzoPresente == null ||
                casaPartenza.PezzoPresente?.Colore != Orologio.TurnoAttuale ||
                casaArrivo.PezzoPresente?.Colore == Orologio.TurnoAttuale ||
                casaPartenza.PezzoPresente?.PuòMuovere(partenza.Colonna, partenza.Traversa,
                                                       arrivo.Colonna, arrivo.Traversa, Scacchiera.Case) == false
                )
            {
                throw new InvalidOperationException("Mossa non valida");
            }

            Scacchiera.SpostaPezzo(casaPartenza, casaArrivo);
            BloccoNote.ScriviMossa(mossa);
            //Controllo che il re non sia stato mangiato
            Colore coloreControlloSconfitta;

            if (Orologio.TurnoAttuale == Colore.Bianco)
            {
                coloreControlloSconfitta = Colore.Nero;
            }
            else
            {
                coloreControlloSconfitta = Colore.Bianco;
            }
            bool reInVita = Scacchiera.ReInVita(coloreControlloSconfitta);

            if (!reInVita)
            {
                Vittoria.Invoke(Scacchiera, Orologio.TurnoAttuale);
            }
            Orologio.FineTurno();
        }
コード例 #22
0
ファイル: Tavolo.cs プロジェクト: matteotiberi/UnicamScacchi
 public void FinisciPartita() {
     Orologio.Reset();
     Scacchiera = new Scacchiera();
     giocatori = null;
 }