public void NemogucPotez() { List <Figura> lista = new List <Figura>(); Figura kraljica = new Kraljica(Boja.Bijeli, 1); kraljica.Pozicija.PostaviHorizontalno(0).PostaviVertikalno(4); lista.Add(kraljica); Ploca ploca = new Ploca(lista); Pozicija pozicija = new Pozicija().PostaviHorizontalno(1).PostaviVertikalno(7); bool legalan = true; bool nemoguc = false; try { legalan = kraljica.LegalanPotez(pozicija, ploca); } catch (IllegalMoveException ime) { if (ime.NemogucPotez) { nemoguc = true; } } Assert.IsTrue(nemoguc); }
public void LovacSeNeKreceKaoLovacIznimka() { Ploca ploca = new Ploca(); Pozicija novaPozicija = new Pozicija(); novaPozicija.PostaviHorizontalno(1).PostaviVertikalno(2); Figura lovac = ploca.VratiFiguru(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(2)); bool legalanPotez = lovac.LegalanPotez(novaPozicija, ploca); }
public void SkakacBacaIznimkuZaZauzetoPolje() { Ploca ploca = new Ploca(); Pozicija novaPozicija = new Pozicija(); novaPozicija.PostaviHorizontalno(1).PostaviVertikalno(3); Boja boja = Boja.Bijeli; Skakac skakac = new Skakac(boja, 1); skakac.Pozicija.PostaviHorizontalno(0).PostaviVertikalno(1); bool nelegalno = skakac.LegalanPotez(novaPozicija, ploca); }
public void LegalanPotezLovac() { List <Figura> lista = new List <Figura>(); Figura kraljica = new Kraljica(Boja.Bijeli, 1); kraljica.Pozicija.PostaviHorizontalno(0).PostaviVertikalno(4); lista.Add(kraljica); Ploca ploca = new Ploca(lista); Pozicija pozicija = new Pozicija().PostaviHorizontalno(4).PostaviVertikalno(4); bool legalan = kraljica.LegalanPotez(pozicija, ploca); Assert.IsTrue(legalan); }
public void KonstruktorSaFiguramaOk() { List <Figura> lista = new List <Figura>(); Boja boja = Boja.Bijeli; Figura lovac = new Lovac(boja, 1); lovac.PostaviPoziciju(new Pozicija().PostaviHorizontalno(3).PostaviVertikalno(4)); lista.Add(lovac); Figura skakac = new Skakac(boja, 2); skakac.PostaviPoziciju(new Pozicija().PostaviHorizontalno(4).PostaviVertikalno(5)); lista.Add(skakac); Ploca ploca = new Ploca(lista); }
public void LegalanPotez() { List <Figura> lista = new List <Figura>(); Figura lovac = new Lovac(Boja.Bijeli, 1); lovac.PostaviPoziciju(new Pozicija().PostaviHorizontalno(1).PostaviVertikalno(3)); lista.Add(lovac); Ploca ploca = new Ploca(lista); Pozicija novaPozicija = new Pozicija(); novaPozicija.PostaviHorizontalno(2).PostaviVertikalno(4); bool legalanPotez = lovac.LegalanPotez(novaPozicija, ploca); Assert.IsTrue(legalanPotez); }
/// <summary> /// Izvršava potez igre /// </summary> /// <param name="redak">Koordinata polja .. redak</param> /// <param name="stupac">Koordinata polja .. supac</param> /// <returns>Vraća stanje igre i pobjednika ako postoji.</returns> public (StanjeIgre State, Igrac Winner) OdigrajPotez(int redak, int stupac) { var stanje = Ploca.ProvjeriStanjeIgre(); if (stanje.State == StanjeIgre.IgraUTijeku) { Ploca.OznaciPolje(redak, stupac, IgracNaPotezu.Oznaka); PostaviSlijedecegIgracaNaPotezu(); var novoStanje = Ploca.ProvjeriStanjeIgre(); return(novoStanje.State, Igraci.FirstOrDefault(igrac => igrac.Oznaka == novoStanje.Pobjednik)); } else { throw new InvalidOperationException("Igra je završena. Započnite novu igru."); } }
public void KraljicaUzimaFiguruKaoTop() { List <Figura> lista = new List <Figura>(); Figura kraljica = new Kraljica(Boja.Bijeli, 1); kraljica.Pozicija.PostaviHorizontalno(0).PostaviVertikalno(4); lista.Add(kraljica); Figura pjesak = new Pjesak(Boja.Crni, 2); pjesak.Pozicija.PostaviHorizontalno(4).PostaviVertikalno(4); lista.Add(pjesak); Ploca ploca = new Ploca(lista); Pozicija pozicija = new Pozicija().PostaviHorizontalno(4).PostaviVertikalno(4); bool legalan = kraljica.LegalanPotez(pozicija, ploca); Assert.IsTrue(legalan); }
public void FiguraNaPolaPutaDrugeBojeGoreBacaIllegalMoveIznimku() { List <Figura> lista = new List <Figura>(); Figura lovac = new Lovac(Boja.Bijeli, 1); lovac.PostaviPoziciju(new Pozicija().PostaviHorizontalno(3).PostaviVertikalno(1)); lista.Add(lovac); Figura pjesak = new Pjesak(Boja.Crni, 2); pjesak.PostaviPoziciju(new Pozicija().PostaviHorizontalno(4).PostaviVertikalno(2)); lista.Add(pjesak); Ploca ploca = new Ploca(lista); Pozicija novaPozicija = new Pozicija(); novaPozicija.PostaviHorizontalno(6).PostaviVertikalno(4); bool legalanPotez = lovac.LegalanPotez(novaPozicija, ploca); }
public void LovacJedePjesakaOpet() { List <Figura> lista = new List <Figura>(); Figura lovac = new Lovac(Boja.Bijeli, 1); lovac.PostaviPoziciju(new Pozicija().PostaviHorizontalno(6).PostaviVertikalno(6)); lista.Add(lovac); Figura pjesak = new Pjesak(Boja.Crni, 2); pjesak.PostaviPoziciju(new Pozicija().PostaviHorizontalno(1).PostaviVertikalno(1)); lista.Add(pjesak); Ploca ploca = new Ploca(lista); Pozicija novaPozicija = new Pozicija(); novaPozicija.PostaviHorizontalno(1).PostaviVertikalno(1); bool legalanPotez = lovac.LegalanPotez(novaPozicija, ploca); Assert.IsTrue(legalanPotez); }
/// <summary> /// Prikaz stanja ploče koristeći znakove (slova, brojke, ...) /// </summary> /// <returns></returns> public override string ToString() { return(Ploca.ToString()); }
static void Main(string[] args) { Console.WriteLine("Play game?(0=no)"); string yes = "yes"; yes = Console.ReadLine(); Igrac bijeli = new Igrac(Boja.Bijeli); Igrac crni = new Igrac(Boja.Crni); Ploca ploca = new Ploca(); ploca.IspisiPlocu(); bool gotovo = false; //gotovo = ploca.IgraGotova(); while (!gotovo) { Pozicija poz = new Pozicija(); Console.WriteLine("Potez: " + (Ploca.Potez + 1)); //Figura figura = ploca.VratiFiguru(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(4)); //figura.PostaviPoziciju(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(5), ploca); //figura = ploca.VratiFiguru(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(3)); //figura.PostaviPoziciju(new Pozicija().PostaviHorizontalno(3).PostaviVertikalno(5), ploca); //ploca.IspisiPlocu(); Console.WriteLine("Bijeli na potezu"); bool ok = false; Figura figura = null; string potez = ""; string potezIgraca = ""; while (!ok) { potezIgraca = ""; Console.Write("Odaberite figuru iz polja (npr.A1):"); potez = Console.ReadLine(); poz = ploca.PozicijaZaPolje(potez); potezIgraca += potez; figura = ploca.VratiFiguru(poz); if (figura == null) { continue; } Console.Write("Odigrajte potez (npr. A3):"); potez = Console.ReadLine(); potezIgraca += potez; poz = ploca.PozicijaZaPolje(potez); try { bijeli.OdigrajPotez(figura, poz, ploca); ok = true; ploca.potezi.Add(potezIgraca); } catch (Exception ex) { ok = false; Console.WriteLine(ex.Message); } } ploca.IspisiPlocu(); Console.WriteLine("Crni na potezu"); ok = false; while (!ok) { potezIgraca = ""; Console.Write("Odaberite figuru iz polja (npr.A1):"); potez = Console.ReadLine(); potezIgraca += potez; poz = ploca.PozicijaZaPolje(potez); figura = ploca.VratiFiguru(poz); if (figura != null) { ok = true; } Console.Write("Odigrajte potez (npr. A3):"); potez = Console.ReadLine(); potezIgraca += potez; poz = ploca.PozicijaZaPolje(potez); try { crni.OdigrajPotez(figura, poz, ploca); ok = true; ploca.potezi.Add(potezIgraca); } catch (Exception ex) { Console.WriteLine(ex.Message); ok = false; } } ploca.IspisiPlocu(); Ploca.Potez++; } }