Beispiel #1
0
        public bool UnosZnaka(Znak simbol)
        {
            Apscisa  = simbol.Polje[0].ToString();
            Ordinata = int.Parse(simbol.Polje[1].ToString());  //char se koverta u string pa se onda parsira u int
            int  x        = Konverzijica(Apscisa);
            int  y        = Ordinata - 1;
            bool provjera = string.IsNullOrEmpty(Mreza[y, x]);       //može i naredba '.IsNullOrWhiteSpace()'

            if (provjera == true)
            {
                if (simbol.Vrsta == "X")
                {
                    Mreza[y, x] = "X";
                }
                else if (simbol.Vrsta == "O")
                {
                    Mreza[y, x] = "O";
                }
                else     // dodano radi provjere
                {
                    Console.WriteLine("Nešto si zeznuo, objekt je klase Znak najvjerojatnije.");
                }
            }
            //else { Console.WriteLine("NEŠTO NEVALJA"); }

            return(provjera);
        }
Beispiel #2
0
        public override void PovuciPotez(Igra partija)
        {
            Random broj = new Random();    // instanciranje objekta "broj" klase Random naredbom "Random()"(konstruktorom - metoda za stvaranje objekata/instanciranje instanici)

            void SlucajnoPolje()
            {
                //float a = broj.Next();     //objekt "broj" generira naredbom(metodom) ".Next()" proizvoljan broj tipa/(vrste/kalupa/modle) float i dodjeljuje ga varijabli "a"
                //int b = broj.Next(10);     //objekt "broj" generira naredbom(metodom) ".Next(10)" proizvoljan broj do 10 tipa int i dodjeljuje ga varijabli "b"
                //int c = broj.Next(11, 20);    //objekt "broj" generira naredbom(metodom) ".Next(11,20)" proizvoljan broj od 11 do 20 tipa int i dodjeljuje ga varijabli "c"

                int    proizvoljno1 = broj.Next(0, 3); // pravi random borjeve od 0 DO 3 (znači bira brojeve od sljedećih: 0, 1, 2)
                int    proizvoljno2 = broj.Next(0, 3);
                string kordinate    = Znak.Konverzija(proizvoljno1, proizvoljno2);

                //string[] nizApscise = new string[3] { "A", "B", "C" };
                //string apscisa = nizApscise[proizvoljno1];
                //string ordinata = (proizvoljno2 + 1).ToString();
                //string kordinate = apscisa + ordinata;
                BiraniZnak.Upisi(kordinate);
            }

            SlucajnoPolje();

            bool provjeraPoteza = partija.UnosZnaka(BiraniZnak);      //unos svojstva 'Polje', svojstva/objekta 'BiraniZnak' u tablicu

            while (provjeraPoteza == false)
            {
                SlucajnoPolje();
                provjeraPoteza = partija.UnosZnaka(BiraniZnak);
            }
        }
Beispiel #3
0
        public override void PovuciPotez(Igra partija)      //provjerava se tablica no ovaj put ne zbog pobjede, nego ako postoje negdje 2 ista znaka u nizu

        {
            string provjera = partija.ProvjeraTablice();
            int    i        = provjera.Length;

            if (i > 0)
            {
                int aps, ord;
                int kuka = provjera.IndexOf(BiraniZnak.Vrsta);
                if (kuka > 0)
                {
                    ord = int.Parse(provjera[kuka - 2].ToString());
                    aps = int.Parse(provjera[kuka - 1].ToString());
                }
                else
                {
                    ord = int.Parse(provjera[0].ToString());      //prvi broj je os y  (kriva su mjesta kordinata, ono što bi trebalo biti na osi x je na osi y)
                    aps = int.Parse(provjera[1].ToString());      //drugi broj je os x (razlisliti o zamjeni "A B C" i "1 2 3")
                }
                string kordinate = Znak.Konverzija(aps, ord);
                BiraniZnak.Upisi(kordinate);
                bool provjeraPoteza = partija.UnosZnaka(BiraniZnak);
            }
            else
            {
                base.PovuciPotez(partija);
            }
        }
Beispiel #4
0
        public virtual void PovuciPotez(Igra partija)
        {
            bool provjeraPoteza = false;    //staljen je false kao defaultna vrijednost kako bi se porenula while petlja

            while (provjeraPoteza == false)
            {
                Console.WriteLine("Unesite kordinate željenog polja:");
                string kordinate = Program.SrediUnos(Console.ReadLine()); // **POZOR**: ovdje je dodano "Program." ispred metode jer se ta metoda nalazi u klasi 'Program' gdje se nalazi i 'Main()' metoda, što znači da i metoda iz glavne klase možemo pozivati u pod klasama
                kordinate = Znak.ProvjeraKota(kordinate);                 //provjerava dal je prvi znak u kordinatama slovo, a drui znak broj, ako nije dodaje još znakova

                while (kordinate.Length != 2)
                {
                    kordinate = Program.KriviUnos(kordinate);     // **POZOR**: ovdje je dodano "Program." ispred metode jer se ta metoda nalazi u klasi 'Program' gdje se nalazi i 'Main()' metoda, što znači da i metoda iz glavne klase možemo pozivati u pod klasama
                    kordinate = Znak.ProvjeraKota(kordinate);     //provjerava dal je prvi znak u kordinatama slovo, a drugi znak broj, ako nije dodaje još znakova
                }

                BiraniZnak.Upisi(kordinate);                    //unos kordinata u svojstvo 'Polje' objekta '.Birani Znak' (koji je svojstvo klase Igrac)
                provjeraPoteza = partija.UnosZnaka(BiraniZnak); //unos svojstva 'Polje', svojstva/objekta 'BiraniZnak' u tablicu

                if (provjeraPoteza == false)
                {
                    Console.WriteLine("Birano polje je popunjeno, molimo pokušajte ponovo.");
                }
            }
        }