Exemple #1
0
        /*
         * Vytvoreni lusticiho souboje
         */
        private void Lusteni()
        {
            int    typSifry = new Random(id).Next(1, 4);//nahodne vzbrani sifry
            String zprava   = "";
            String reseni   = "";

            String[,] sifra = new String[, ] {
                { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" },
                { ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.." },
                { "-.", ".---", ".-.-", ".--", "-", "--.-", "..-", "----", "--", "-...", ".-.", "-.--", "..", ".-", "...", "-..-", "..-.", "-.-", "---", ".", "--.", "---.", "-..", ".--.", ".-..", "..--" },
                { "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26" },
                { "2", "22", "222", "3", "33", "333", "4", "44", "444", "5", "55", "555", "6", "66", "666", "7", "77", "777", "7777", "8", "88", "888", "9", "99", "999", "9999" }
            };
            MySqlCommand prikaz = new MySqlCommand("Select slovo from bakalarka.lusteni where idlusteni=@id");

            prikaz.Parameters.AddWithValue("@id", new Random(id).Next(1, 4));// Databaze obsahuje 100 slov, ale zatim jenom 4 snif
            MySqlDataReader data  = DBConnector.ProvedeniPrikazuSelect(prikaz);
            List <char>     znaky = new List <char>();

            while (data.Read())
            {
                reseni = data["slovo"].ToString();
                znaky.AddRange(data["slovo"].ToString().ToCharArray());
            }

            foreach (char znak in znaky)//vyhleda sifru pro kazdy znak a vlozeno do zpravy
            {
                int     i    = 0;
                Boolean stop = true;
                while (stop)
                {
                    if (znak.ToString().Equals(sifra[0, i]))
                    {
                        zprava += sifra[typSifry, i];
                        if (typSifry == 1 || typSifry == 2)//morseovka se oddeluje lomitkem
                        {
                            zprava += "/";
                        }
                        else
                        {
                            zprava += " ";
                        }
                        stop = false;
                    }
                    else
                    {
                        i++;
                    }
                }
            }
            var sifraLBL = new Label()
            {
                Text = zprava
            };
            var vysledek = new Entry();
            var hotovo   = new Button()
            {
                Text = "Hotovo"
            };

            Grid.SetColumnSpan(sifraLBL, 3);
            Grid.SetColumn(sifraLBL, 0);
            Grid.SetRow(sifraLBL, 1);
            Hra.bojiste.Children.Add(sifraLBL);
            Grid.SetColumnSpan(vysledek, 3);
            Grid.SetColumn(vysledek, 0);
            Grid.SetRow(vysledek, 2);
            Hra.bojiste.Children.Add(vysledek);
            Grid.SetColumnSpan(hotovo, 3);
            Grid.SetColumn(hotovo, 0);
            Grid.SetRow(hotovo, 3);
            Hra.bojiste.Children.Add(hotovo);
            hotovo.Clicked += async(sender, args) =>
            {
                if (vysledek.Text == reseni)
                {
                    hotovo.IsEnabled = false;
                    await Vyhodnoceni();
                }
            };
        }
Exemple #2
0
        /*
         * Smena produktu na jiny produkt dle receptu
         */
        public String Smena()
        {
            //overeni ze uzivatel na to ma suroviny
            if (mnozstvi1 > Hra.produkty.Find(item => item.id == id1).ulozene || mnozstvi2 > Hra.produkty.Find(item => item.id == id2).ulozene)
            {
                return("Nedostatek surovin na smenu");
            }
            if (id3 != 0)
            {
                if (mnozstvi3 > Hra.produkty.Find(item => item.id == id3).ulozene)
                {
                    return("Nedostatek surovin na smenu");
                }
            }
            //smazani prvni prisady
            MySqlCommand smazaniprisada1 = new MySqlCommand();

            for (int i = 0; i < mnozstvi1; i++)
            {
                smazaniprisada1.CommandText += "Delete from bakalarka.sklad where idprodukt=@idprodukt and idtym=@idtym limit 1;";
            }
            smazaniprisada1.Parameters.AddWithValue("@idprodukt", id1);
            smazaniprisada1.Parameters.AddWithValue("@idtym", Hrac.tym);
            String prubeh = DBConnector.ProvedeniPrikazuOstatni(smazaniprisada1);

            Hra.produkty.Find(item => item.id == id1).ulozene -= mnozstvi1;
            if (prubeh != null)
            {
                return("neco se pokazilo pri mazani prisady1");
            }

            //smazani druhe prisady
            MySqlCommand smazaniprisada2 = new MySqlCommand();

            for (int i = 0; i < mnozstvi2; i++)
            {
                smazaniprisada2.CommandText += "Delete from bakalarka.sklad where idprodukt=@idprodukt and idtym=@idtym limit 1;";
            }
            smazaniprisada2.Parameters.AddWithValue("@idprodukt", id2);
            smazaniprisada2.Parameters.AddWithValue("@idtym", Hrac.tym);
            prubeh = DBConnector.ProvedeniPrikazuOstatni(smazaniprisada2);
            Hra.produkty.Find(item => item.id == id2).ulozene -= mnozstvi2;
            if (prubeh != null)
            {
                return("neco se pokazilo pri mazani prisady2");
            }

            //smazani treti prisady pokud je potreba
            if (prisada3 != null)
            {
                MySqlCommand smazaniprisada3 = new MySqlCommand();
                for (int i = 0; i < mnozstvi3; i++)
                {
                    smazaniprisada3.CommandText += "Delete from bakalarka.sklad where idprodukt=@idprodukt and idtym=@idtym limit 1;";
                }
                smazaniprisada3.Parameters.AddWithValue("@idprodukt", id3);
                smazaniprisada3.Parameters.AddWithValue("@idtym", Hrac.tym);
                prubeh = DBConnector.ProvedeniPrikazuOstatni(smazaniprisada3);
                Hra.produkty.Find(item => item.id == id3).ulozene -= mnozstvi3;
                if (prubeh != null)
                {
                    return("neco se pokazilo pri mazani prisady3");
                }
            }

            //pridani vysledku do skladu
            MySqlCommand pridani = new MySqlCommand("INSERT INTO `bakalarka`.`sklad` (`idprodukt`, `idtym`) VALUES (@idprodukt, @idtym);");

            pridani.Parameters.AddWithValue("@idprodukt", vysledek);
            pridani.Parameters.AddWithValue("@idtym", Hrac.tym);
            prubeh = DBConnector.ProvedeniPrikazuOstatni(pridani);
            Hra.produkty.Find(item => item.id == vysledek).ulozene++;
            if (prubeh != null)
            {
                return("Neco se pokazilo pri vkladani vysledku");
            }
            //stastny konec
            return(null);
        }
Exemple #3
0
        /*
         * Metoda pomoci ktere prijmeme souboj
         */
        static String PrijmoutSouboj()
        {
            Hra.bojiste.Children.Clear();
            var kodlbl = new Label {
                Text = "Kód souboje:"
            };
            var kod = new Entry {
                Keyboard = Keyboard.Numeric
            };
            var potvrdit = new Button {
                Text = "Potvrdit", BackgroundColor = Color.RoyalBlue, TextColor = Color.DarkGray, FontSize = 15, CornerRadius = 4, BorderColor = Color.DarkGray, BorderWidth = 2
            };
            var zpet = new Button {
                Text = "Zpět", BackgroundColor = Color.DarkGray, TextColor = Color.RoyalBlue, FontSize = 15, CornerRadius = 4, BorderColor = Color.RoyalBlue, BorderWidth = 2
            };

            Hra.bojiste.Children.Add(kodlbl, 0, 1);
            Hra.bojiste.Children.Add(kod, 1, 1);
            Grid.SetColumnSpan(potvrdit, 3);
            Grid.SetColumn(potvrdit, 0);
            Grid.SetRow(potvrdit, 2);
            Hra.bojiste.Children.Add(potvrdit);
            Grid.SetColumnSpan(zpet, 3);
            Grid.SetColumn(zpet, 0);
            Grid.SetRow(zpet, 3);
            Hra.bojiste.Children.Add(zpet);
            zpet.Clicked += async(sender, args) =>
            {
                BojisteUvod();
            };
            potvrdit.Clicked += async(sender, args) =>
            {
                MySqlCommand prikaz = new MySqlCommand("Select * from bakalarka.souboj where idsouboj=@id;");
                prikaz.Parameters.AddWithValue("@id", kod.Text);
                MySqlDataReader data = DBConnector.ProvedeniPrikazuSelect(prikaz);
                data.Read();
                if (data.HasRows)
                {
                    MySqlCommand prikazUpdate = new MySqlCommand("update bakalarka.souboj set uzivatel2=@iduzivatel where idsouboj=@idsouboj;");
                    prikazUpdate.Parameters.AddWithValue("@iduzivatel", Hrac.iduzivatel);
                    prikazUpdate.Parameters.AddWithValue("@idsouboj", kod.Text);
                    DBConnector.ProvedeniPrikazuOstatni(prikazUpdate);
                    Hra.bojiste.Children.Clear();     //stranka pripraven do bojeeee a vlozeni uzivatele do tabulky
                    var lbl = new Label()
                    {
                        Text = "Souboj " + kod.Text
                    };
                    Grid.SetColumnSpan(lbl, 3);
                    Grid.SetColumn(lbl, 0);
                    Grid.SetRow(lbl, 1);
                    Hra.bojiste.Children.Add(lbl);
                    var start = new Button()
                    {
                        Text = "Start", BackgroundColor = Color.RoyalBlue, TextColor = Color.DarkGray, FontSize = 15, CornerRadius = 4, BorderColor = Color.DarkGray, BorderWidth = 2
                    };
                    Grid.SetColumnSpan(start, 3);
                    Grid.SetColumn(start, 0);
                    Grid.SetRow(start, 2);
                    Hra.bojiste.Children.Add(start);
                    start.Clicked += async(sender1, args1) =>
                    {
                        Souboj boj = new Souboj((int)data["idtyp_souboje"], (int)data["idsouboj"], 2);      // do booojeeee pro test typ souboje 2
                    };
                }
                else
                {
                    await Application.Current.MainPage.DisplayAlert("Chyba", "Zadaný kód je špatný!", "Zavřít");
                }
            };

            return(null);
        }
Exemple #4
0
        /*
         * Metado pomoci ktere se vyvola souboj
         */
        static String VyvolatSouboj()
        {
            Hra.bojiste.Children.Clear();
            int          idSouboje  = ((Hrac.iduzivatel * 10) + (boju++)) * 100000 + new Random().Next(100, 999);
            int          typSouboje = new Random().Next(1, 3);
            MySqlCommand prikaz     = new MySqlCommand("INSERT INTO `bakalarka`.`souboj` (`uzivatel1`, `idsouboj`,`idtyp_souboje`) VALUES (@idhrac, @idsouboj, @idtyp);");

            prikaz.Parameters.AddWithValue("@idhrac", Hrac.iduzivatel);
            prikaz.Parameters.AddWithValue("@idsouboj", idSouboje); //vic jak tisic jich nezvladne
            prikaz.Parameters.AddWithValue("@idtyp", typSouboje);
            String prubeh = DBConnector.ProvedeniPrikazuOstatni(prikaz);

            if (prubeh == null)
            {
                Label idHry = new Label {
                    Text = "Souboj: " + idSouboje.ToString()
                };
                Grid.SetColumnSpan(idHry, 3);
                Grid.SetColumn(idHry, 0);
                Grid.SetRow(idHry, 1);
                Hra.bojiste.Children.Add(idHry);
                Button start = new Button {
                    Text = "Start", BackgroundColor = Color.RoyalBlue, TextColor = Color.DarkGray, FontSize = 15, CornerRadius = 4, BorderColor = Color.DarkGray, BorderWidth = 2
                };
                Grid.SetColumnSpan(start, 3);
                Grid.SetColumn(start, 0);
                Grid.SetRow(start, 2);
                Hra.bojiste.Children.Add(start);
                Button zpet = new Button {
                    Text = "Zpět", BackgroundColor = Color.DarkGray, TextColor = Color.RoyalBlue, FontSize = 15, CornerRadius = 4, BorderColor = Color.RoyalBlue, BorderWidth = 2
                };
                Grid.SetColumnSpan(zpet, 3);
                Grid.SetColumn(zpet, 0);
                Grid.SetRow(zpet, 3);
                Hra.bojiste.Children.Add(zpet);
                start.Clicked += async(sender, args) => // zacatek biiiiiitvyyy
                {
                    MySqlCommand prikazSouper = new MySqlCommand("Select uzivatel2 from bakalarka.souboj where idsouboj=@id; ");
                    prikazSouper.Parameters.AddWithValue("@id", idSouboje);
                    MySqlDataReader data = DBConnector.ProvedeniPrikazuSelect(prikazSouper);
                    data.Read();
                    if (!Convert.IsDBNull(data["uzivatel2"]))              //zjisteni jestli je protivnik pripraven do boje
                    {
                        Souboj boj = new Souboj(typSouboje, idSouboje, 1); //pro TEST posilame jednicku pak zmenit na typSouoboje
                    }
                    else
                    {
                        await Application.Current.MainPage.DisplayAlert("Chyba", "Soupeř ještě není připraven.", "Zavřít");
                    }
                };
                zpet.Clicked += async(sender, args) =>
                {
                    BojisteUvod();
                };
            }
            else
            {
                BojisteUvod();
            }
            return(null);
        }
Exemple #5
0
        /*
         * Metoda nova hra slouzi k vytvoreni nove hre. ukaze mapu a vygeneruje hrace a tymy
         */
        public static String novaHra(String roh1X, String roh1Y, String roh2X, String roh2Y, String roh3X, String roh3Y, String roh4X, String roh4Y, int zakladatel, int tymu, int hracu, String nazev)
        {
            MySqlCommand prikaz = new MySqlCommand("INSERT INTO bakalarka.hra (`zakladatel`, `roh1X`, `roh1Y`, `roh2X`, `roh2Y`, `roh3X`, `roh3Y`, `roh4X`, `roh4Y`,`nazev` ) VALUES ( @zakladatel ,@roh1X ,@roh1Y,@roh2X,@roh2Y,@roh3X,@roh3Y,@roh4X,@roh4Y,@nazev);");

            prikaz.Parameters.AddWithValue("@zakladatel", zakladatel);
            prikaz.Parameters.AddWithValue("@roh1X", roh1X);
            prikaz.Parameters.AddWithValue("@roh1Y", roh1Y);
            prikaz.Parameters.AddWithValue("@roh2X", roh2X);
            prikaz.Parameters.AddWithValue("@roh2Y", roh2Y);
            prikaz.Parameters.AddWithValue("@roh3X", roh3X);
            prikaz.Parameters.AddWithValue("@roh3Y", roh3Y);
            prikaz.Parameters.AddWithValue("@roh4X", roh4X);
            prikaz.Parameters.AddWithValue("@roh4Y", roh4Y);
            prikaz.Parameters.AddWithValue("@nazev", nazev);
            String prubeh = DBConnector.ProvedeniPrikazuOstatni(prikaz);



            if (prubeh == null)
            {
                idHry(nazev);
                //vytvoreni polohy produktu
                polohaProduktu();
                //vygenerovani tymu a hracu
                for (int y = 0; y < tymu; y++)
                {
                    var          rand      = new Random();
                    int          idtym     = 0;
                    MySqlCommand prikaztym = new MySqlCommand("INSERT INTO `bakalarka`.`tym` (`nazev`, `hra`,uskladani,oziveni) VALUES (@nazev,@idhry,@ulozeni,@oziveni);");
                    prikaztym.Parameters.AddWithValue("@nazev", y);
                    prikaztym.Parameters.AddWithValue("@idhry", idhry);
                    prikaztym.Parameters.AddWithValue("@ulozeni", rand.Next(100000, 999999));
                    prikaztym.Parameters.AddWithValue("@oziveni", rand.Next(100000, 999999));
                    prubeh = DBConnector.ProvedeniPrikazuOstatni(prikaztym);
                    if (prubeh == null)
                    {
                        MySqlCommand prikazidtym = new MySqlCommand("Select idtym from bakalarka.tym where nazev=@nazev and hra=@idhra");
                        prikazidtym.Parameters.AddWithValue("@nazev", Convert.ToString(y));
                        prikazidtym.Parameters.AddWithValue("@idhra", idhry);
                        MySqlDataReader dataidtym = DBConnector.ProvedeniPrikazuSelect(prikazidtym);
                        if (dataidtym.HasRows)
                        {
                            while (dataidtym.Read())
                            {
                                idtym = (int)dataidtym["idtym"];
                            }
                        }
                        else
                        {
                            return("nenacte se tym");
                        }
                        //vytvoreni hracu


                        MySqlCommand prikazhrac = new MySqlCommand("INSERT INTO `bakalarka`.`uzivatel` (`jmeno`, `role`, `tym`, `heslo`,zivot, pocetUlozeni) VALUES (@jmeno,@role,@tym,@heslo,1, 0);");
                        var          jmeno      = new MySqlParameter("@jmeno", MySqlDbType.String);
                        prikazhrac.Parameters.Add(jmeno);
                        prikazhrac.Parameters.AddWithValue("@tym", idtym);
                        prikazhrac.Parameters.AddWithValue("@heslo", rand.Next(10000, 20000));
                        var role = new MySqlParameter("@role", MySqlDbType.Int32);
                        prikazhrac.Parameters.Add(role);
                        double pocetlovcu = ((double)hracu - (double)1) / (double)3;     //tretina hracu jsou lovci
                        //role lovec 1
                        for (int z = 0; z < Math.Round(pocetlovcu); z++)
                        {
                            role.Value  = 1;
                            jmeno.Value = "hrac" + rand.Next(10000, 20000);
                            prubeh      = DBConnector.ProvedeniPrikazuOstatni(prikazhrac);
                            if (prubeh != null)
                            {
                                return("vytvareni lovce" + prubeh);
                            }
                        }
                        //role tezer 2
                        for (int z = 0; z < hracu - 1 - Math.Round(pocetlovcu); z++)
                        {
                            role.Value  = 2;
                            jmeno.Value = "hrac" + rand.Next(10000, 20000);
                            prubeh      = DBConnector.ProvedeniPrikazuOstatni(prikazhrac);
                            if (prubeh != null)
                            {
                                return("vytvareni tezere" + prubeh);
                            }
                        }
                        //role domecek 3
                        role.Value  = 3;
                        jmeno.Value = "hrac" + rand.Next(10000, 20000);
                        prubeh      = DBConnector.ProvedeniPrikazuOstatni(prikazhrac);
                        if (prubeh != null)
                        {
                            return("vytvareni domecku" + prubeh);
                        }
                    }

                    else
                    {
                        return("pokazil se insert tym" + prubeh);
                    }
                }



                return(null);
            }
            else
            {
                return("pokazilo se to pri vytvareni hry:(" + prubeh);
            }
        }
Exemple #6
0
        /*
         * Vytvoreni polohy produktu
         */
        static void polohaProduktu()
        {
            MySqlCommand    prikazHra = new MySqlCommand("select * from bakalarka.hra;");
            MySqlDataReader dataHra = DBConnector.ProvedeniPrikazuSelect(prikazHra);
            double          roh1x = 0, roh1y = 0, roh2x = 0, roh2y = 0, roh3x = 0, roh3y = 0, roh4x = 0, roh4y = 0;

            while (dataHra.Read())
            {
                roh1x = (double)dataHra["roh1X"];
                roh1y = (double)dataHra["roh1Y"];
                roh2x = (double)dataHra["roh2X"];
                roh2y = (double)dataHra["roh2Y"];
                roh3x = (double)dataHra["roh3X"];
                roh3y = (double)dataHra["roh3Y"];
                roh4x = (double)dataHra["roh4X"];
                roh4y = (double)dataHra["roh4Y"];
                Bod[]           hraciPole      = { new Bod(roh1x, roh1y), new Bod(roh2x, roh2y), new Bod(roh3x, roh3y), new Bod(roh4x, roh4y) };
                MySqlCommand    prikazProdukty = new MySqlCommand("Select idprodukt from bakalarka.produkt where uroven=1;");
                MySqlDataReader data           = DBConnector.ProvedeniPrikazuSelect(prikazProdukty);

                double[] y    = { roh1y, roh2y, roh3y, roh4y };
                double   yMin = y.Min();
                double   yMax = y.Max();
                double[] x    = { roh1x, roh2x, roh3x, roh4x };
                double   xMin = x.Min();
                double   xMax = x.Max();
                while (data.Read())
                {
                    Boolean prvniSouradnice = true;
                    Boolean druhaSouradnice = true;
                    Bod     prvni           = new Bod();
                    Bod     druha           = new Bod();
                    while (prvniSouradnice) // dokud neni souradnice v polygonu
                    {
                        prvni.X = new Random().NextDouble() * (xMax - xMin) + xMin;
                        prvni.Y = new Random().NextDouble() * (yMax - yMin) + yMin;
                        if (BodVPolygonu(hraciPole, prvni))
                        {
                            prvniSouradnice = false;
                        }
                    }
                    while (druhaSouradnice) // dokud neni souradnice v polygonu
                    {
                        druha.X = new Random().NextDouble() * (xMax - xMin) + xMin;
                        druha.Y = new Random().NextDouble() * (yMax - yMin) + yMin;
                        if (BodVPolygonu(hraciPole, druha))
                        {
                            druhaSouradnice = false;
                        }
                    }
                    MySqlCommand prikazPoloha = new MySqlCommand("insert into bakalarka.polohaProduktu (x1,y1,x2,y2,idhra,idprodukt) values(@x1,@y1,@x2,@y2,@idhra,@idprodukt);");
                    prikazPoloha.Parameters.AddWithValue("@x1", prvni.X);
                    prikazPoloha.Parameters.AddWithValue("@y1", prvni.Y);
                    prikazPoloha.Parameters.AddWithValue("@x2", druha.X);
                    prikazPoloha.Parameters.AddWithValue("@y2", druha.Y);
                    prikazPoloha.Parameters.AddWithValue("@idhra", (int)dataHra["idhra"]);
                    prikazPoloha.Parameters.AddWithValue("@idprodukt", (int)data["idprodukt"]);
                    DBConnector.ProvedeniPrikazuOstatni(prikazPoloha);
                }
            }
        }