コード例 #1
0
        static void Main(string[] args)
        {
            Scacchiera s = Scacchiera.Istanza;

            s.Print();
            Console.ReadLine();
        }
コード例 #2
0
        public void DisegnaScacchiera(Scacchiera scacchiera)
        {
            Console.Clear();

            for (int i = 0; i <= 4; i++)
            {
                Console.WriteLine($"{scacchiera.Cella(1).Righe[i]}|{scacchiera.Cella(2).Righe[i]}|{scacchiera.Cella(3).Righe[i]}");
            }

            Console.WriteLine($"-----------------------");

            for (int i = 0; i <= 4; i++)
            {
                Console.WriteLine($"{scacchiera.Cella(4).Righe[i]}|{scacchiera.Cella(5).Righe[i]}|{scacchiera.Cella(6).Righe[i]}");
            }


            Console.WriteLine($"-----------------------");


            for (int i = 0; i <= 4; i++)
            {
                Console.WriteLine($"{scacchiera.Cella(7).Righe[i]}|{scacchiera.Cella(8).Righe[i]}|{scacchiera.Cella(9).Righe[i]}");
            }
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: Manieri03/GiocoScacchi
        static void Main(string[] args)
        {
            Scacchiera s = Scacchiera.Istanza;

            s.Spostamento += StampaConsole;
            writer         = new StreamWriter("log.txt");
            s.Spostamento += StampaFile;

            Pedone p = new Pedone(Schieramento.Bianco)
            {
                Posizione = s.GetCella('B', 2)
            };
            Torre t = new Torre(Schieramento.Bianco)
            {
                Posizione = s.GetCella('C', 1)
            };
            Alfiere a = new Alfiere(Schieramento.Bianco)
            {
                Posizione = s.GetCella('E', 2)
            };
            Re re = new Re(Schieramento.Bianco)
            {
                Posizione = s.GetCella('E', 1)
            };
            Regina r = new Regina(Schieramento.Bianco)
            {
                Posizione = s.GetCella('G', 3)
            };
            Cavallo c = new Cavallo(Schieramento.Bianco)
            {
                Posizione = s.GetCella('F', 2)
            };

            s.Print();

            Console.WriteLine();
            Console.WriteLine("".PadRight(40, '-'));
            Console.WriteLine();
            try
            {
                p.Muovi(s.GetCella('B', 3));
                t.Muovi(s.GetCella('C', 4));
                a.Muovi(s.GetCella('B', 5));
                re.Muovi(s.GetCella('F', 1));
                r.Muovi(s.GetCella('G', 5));
                c.Muovi(s.GetCella('E', 5));
                s.Print();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            writer.Flush();
            writer.Close();
            Console.ReadLine();
        }
コード例 #4
0
        public void ScacchieraDeveAvere64Case()
        {
            //Given
            IScacchiera scacchiera = new Scacchiera();

            //When

            //Then
            Assert.Equal(64, scacchiera.Case.Count());
        }
コード例 #5
0
        public void sePezzoNonPresenteIlGetterRitornaNull()
        {
            //Given
            IScacchiera scacchiera = new Scacchiera();
            //When
            ICasa casa = scacchiera[Colonna.B, Traversa.Prima];

            //Then
            Assert.Null(casa.PezzoPresente);
        }
コード例 #6
0
        public void indexerDeveRestituireCasaCorretta()
        {
            //Given
            IScacchiera scacchiera = new Scacchiera();
            //When
            ICasa casa = scacchiera[Colonna.F, Traversa.Quinta];

            //Then
            Assert.Equal(Colonna.F, casa.Colonna);
            Assert.Equal(Traversa.Quinta, casa.Traversa);
        }
コード例 #7
0
        public void IPezziDevonoTrovarsiNellaPosizioneIndicataDallaSpecifica(Type tipoDiPezzo, Colore colorePezzo, Colonna colonna, Traversa traversa)
        {
            //Given
            IScacchiera scacchiera = new Scacchiera();

            scacchiera.Case.Single(casa =>
                                   casa.PezzoPresente != null &&
                                   casa.PezzoPresente.GetType() == tipoDiPezzo &&
                                   casa.PezzoPresente.Colore == colorePezzo &&
                                   casa.Traversa == traversa &&
                                   casa.Colonna == colonna);
        }
コード例 #8
0
        public void DeveEsserciSoloUnReBiancoInPosizioneE1()
        {
            //Given
            IScacchiera scacchiera = new Scacchiera();
            //When
            IEnumerable <ICasa> caseConReBianco = scacchiera.Case.Where(casa => casa.PezzoPresente is Re && casa.PezzoPresente.Colore == Colore.Bianco);

            //Then
            Assert.Equal(1, caseConReBianco.Count());
            Assert.Equal(Colonna.E, caseConReBianco.First().Colonna);
            Assert.Equal(Traversa.Prima, caseConReBianco.First().Traversa);
        }
コード例 #9
0
        static void Main(string[] args)
        {
            StreamWriter writer;
            Scacchiera   s = Scacchiera.Istanza;
            Pedone       p = new Pedone(Colore.Bianco)
            {
                Posizione = s.GetCella('B', 2)
            };
            Torre t = new Torre(Colore.Bianco)
            {
                Posizione = s.GetCella('C', 1)
            };
            Alfiere a = new Alfiere(Colore.Bianco)
            {
                Posizione = s.GetCella('E', 2)
            };
            Re re = new Re(Colore.Bianco)
            {
                Posizione = s.GetCella('E', 1)
            };
            Regina r = new Regina(Colore.Bianco)
            {
                Posizione = s.GetCella('G', 3)
            };
            Cavallo c = new Cavallo(Colore.Bianco)
            {
                Posizione = s.GetCella('F', 2)
            };

            s.Print();

            Console.WriteLine();
            Console.WriteLine("".PadRight(40, '-'));
            Console.WriteLine();
            try
            {
                p.Muovi(s.GetCella('B', 3));
                t.Muovi(s.GetCella('C', 4));
                a.Muovi(s.GetCella('B', 5));
                re.Muovi(s.GetCella('F', 1));
                r.Muovi(s.GetCella('G', 5));
                c.Muovi(s.GetCella('E', 5));
                s.Stampa();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.ReadLine();
        }
コード例 #10
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);
        }
コード例 #11
0
        public void InSecondaTraversaDevonoEsserciTuttiPedoniBianchi()
        {
            //Given
            IScacchiera scacchiera = new Scacchiera();
            //When

            /*for (int i = 1; i <= 8; i++){
             * Assert.IsType(typeof(Pedone), scacchiera[(Colonna) i, Traversa.Seconda].PezzoPresente);
             * }*/
            IEnumerable <ICasa> caseInSecondaTraversa = scacchiera.Case.Where(casa => casa.Traversa == Traversa.Seconda);
            bool sonoTuttiPedoni = caseInSecondaTraversa.All(casa => casa.PezzoPresente is Pedone && casa.PezzoPresente.Colore == Colore.Bianco);

            //Then
            Assert.True(sonoTuttiPedoni);
        }
コード例 #12
0
        public void AllAvvioDellaPartitaDeveEsserePredispostaUnaScacchieraELOrologioAvviato()
        {
            //Given
            IScacchiera scacchiera = new Scacchiera();
            IOrologio   orologio   = new Orologio();
            ITavolo     tavolo     = new Tavolo(scacchiera, orologio);

            //When
            tavolo.RiceviGiocatori("", "");
            tavolo.AvviaPartita();

            //Then
            Assert.NotEqual(null, tavolo.Scacchiera);
            Assert.NotEqual(null, tavolo.Orologio);
            Assert.False(orologio.InPausa);
        }
コード例 #13
0
        public void InSecondaTraversaDevonoEsserciTuttiPedoniBianchi()
        {
            //Given
            IScacchiera scacchiera = new Scacchiera();
            //When
            //Prendo tutte le case che si trovano in seconda traversa
            IEnumerable <ICasa> caseInSecondaTraversa = scacchiera.Case.Where(casa => casa.Traversa == Traversa.Seconda);
            //Controllo che tutte le case in seconda traversa siano del tipo "Pedone"
            //sonoTuttiPedoni restituisce true solo se tutti i pezzi presenti in caseInSecondaTraversa sono pedoni e sono bianchi
            bool sonoTuttiPedoniBianchi = caseInSecondaTraversa.All(casa => casa.PezzoPresente is Pedone && casa.PezzoPresente.Colore == Colore.Bianco);

            /*
             * Approccio ad accesso randomico
             * for(int i = 1; i <= 8 ; i++)
             *  Assert.IsType(typeof(Pedone),scacchiera[(Colonna) i, Traversa.Seconda].PezzoPresente);
             */
            //Then
            Assert.True(sonoTuttiPedoniBianchi);
        }
コード例 #14
0
        public void pezzoSiSpostaSeMossaValida(string coord1, string coord2)
        {
            //Given
            Scacchiera scacchiera = new Scacchiera();
            Orologio   orologio   = new Orologio();
            BloccoNote bloccoNote = new BloccoNote();
            Tavolo     tavolo     = new Tavolo(scacchiera, orologio, bloccoNote);

            //When
            tavolo.RiceviGiocatori("Fhurer", "Mahatma");
            tavolo.AvviaPartita();
            var coordPartenza    = tavolo.InterpretaCoordinataCasa(coord1);
            var coordFine        = tavolo.InterpretaCoordinataCasa(coord2);
            var pezzoInQuestione = tavolo.Scacchiera[coordPartenza.Colonna, coordPartenza.Traversa].PezzoPresente;

            tavolo.InserisciMossa(coord1 + " " + coord2);
            Assert.Equal(tavolo.Scacchiera[coordPartenza.Colonna, coordPartenza.Traversa].PezzoPresente, null);
            Assert.Equal(tavolo.Scacchiera[coordFine.Colonna, coordFine.Traversa].PezzoPresente, pezzoInQuestione);
        }
コード例 #15
0
        public void MossaInvalidaLanciaEccezione(string mossaInvalida)
        {
            //Given
            Scacchiera scacchiera = new Scacchiera();
            Orologio   orologio   = new Orologio();
            BloccoNote bloccoNote = new BloccoNote();
            Tavolo     tavolo     = new Tavolo(scacchiera, orologio, bloccoNote);

            //When
            tavolo.RiceviGiocatori("Robespierre", "Rob Van Dam");
            tavolo.AvviaPartita();
            //Simulazione di alcune mosse valide di pedoni
            tavolo.InserisciMossa("A2 A4");
            tavolo.InserisciMossa("A7 A5");
            tavolo.InserisciMossa("B2 B4");
            tavolo.InserisciMossa("A5 B4");
            //Cosa succede per le mosse invalide
            Assert.Throws(typeof(InvalidOperationException), () => {
                tavolo.InserisciMossa(mossaInvalida);
            });
        }
コード例 #16
0
 public IGiocatore ControllaVincitore(Scacchiera scacchiera)
 {
     return(null);
 }
コード例 #17
0
ファイル: GameRunner.cs プロジェクト: towersf/Tris
 public GameRunner(Giocatore giocatore1, Giocatore giocatore2)
 {
     _scacchiera = new Scacchiera();
     _giocatore1 = giocatore1;
     _giocatore2 = giocatore2;
 }