예제 #1
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);
        }
예제 #2
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);
        }
예제 #3
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()));
            }
        }
예제 #4
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));
            }
        }
예제 #5
0
 private static void StampaFile(Pezzo p, Cella vecchia, Cella nuova)
 {
     writer.WriteLine($"Il pezzo {p.Name} si è spostato da {vecchia} a {nuova}");
 }