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