예제 #1
0
        public Cella CreaCella()
        {
            Cella c = new Cella();

            cella.Add(c);
            return(c);
        }
예제 #2
0
        public void TestMossaValida(string cellaPartenza, string cellaArrivo, Type tipoPezzo, bool bianco)
        {
            Cella partenza    = new Cella(cellaPartenza);
            Cella arrivo      = new Cella(cellaArrivo);
            Pezzo p           = (Pezzo)Activator.CreateInstance(tipoPezzo, new object[] { bianco });
            bool  mossaValida = p.Muovi(partenza, arrivo);

            Assert.True(mossaValida);
        }
예제 #3
0
        public void TestMosseValida(string cellaPartenza, string[] celleArrivo, Type tipoPezzo, bool bianco)
        {
            Cella partenza = new Cella(cellaPartenza);

            Cella[] arrivi         = celleArrivo.OrderBy(x => x).Select(x => new Cella(x)).ToArray();
            Pezzo   p              = (Pezzo)Activator.CreateInstance(tipoPezzo, new object[] { bianco });
            var     cellePossibili = p.CalcolaMosseDisponibili(partenza).OrderBy(x => x.ToString()).ToArray();

            Assert.AreEqual(arrivi, cellePossibili);
        }
예제 #4
0
        public void TestMossaFuoriScacchiera(bool bianco)
        {
            var   ts = CaricaPezziTestabili();
            Cella c  = new Cella(bianco ? "A8" : "A1");

            foreach (var type in ts)
            {
                Pezzo p = (Pezzo)Activator.CreateInstance(type, new object[] { bianco });
                var   cellePossibili = p.CalcolaMosseDisponibili(c).ToList();
                Assert.True(cellePossibili.TrueForAll(cl => cl.Valida()));
            }
        }
예제 #5
0
        public void TestFormaleMosseValide(bool bianco)
        {
            var   ts = CaricaPezziTestabili();
            Cella c  = new Cella("D4");

            foreach (var type in ts)
            {
                Pezzo p = (Pezzo)Activator.CreateInstance(type, new object[] { bianco });
                var   cellePossibili = p.CalcolaMosseDisponibili(c);
                Assert.False(cellePossibili.Contains(c));
            }
        }
예제 #6
0
        public void TestAperturaPedone(string cellaPartenza, bool bianco)
        {
            Cella  partenza       = new Cella(cellaPartenza);
            Pedone p              = new Pedone(bianco);
            Cella  arrivoApertura = new Cella(partenza.LetteraColonna() + "" + (partenza.NRiga + (bianco ? 1 : -1) * 2));

            bool mossaValida = p.Muovi(partenza, arrivoApertura);

            Assert.True(mossaValida);

            Cella arrivoSecondaMossa = new Cella(arrivoApertura.LetteraColonna() + "" + (arrivoApertura.NRiga + (bianco ? 1 : -1)));

            mossaValida = p.Muovi(arrivoApertura, arrivoSecondaMossa);
            Assert.True(mossaValida);
        }
예제 #7
0
 private static void StampaFile(Pezzo p, Cella vecchia, Cella nuova)
 {
     writer.WriteLine($"Il pezzo {p.Name} si è spostato da {vecchia} a {nuova}");
 }
예제 #8
0
 public void AggiungiCella(Cella c)
 {
     Celle.Add(c);
 }