コード例 #1
0
        // ---- Update skilova igraca ----
        public double[] noviSkilovi(double[] team, bool domacin, int podeliSa)
        {
            Random rand      = new Random();
            string noveOcene = "";

            // ---- Generisi random brojeve za oba tima naizmenicno ----
            for (int i = 0; i < 11; i++)
            {
                int skill = rand.Next(1, 10);
                team[i]    = Math.Round((team[i] + skill) / podeliSa, 1);
                noveOcene += team[i].ToString() + ';';
            }
            noveOcene = noveOcene.TrimEnd(';');

            // ---- Update-ovanje ocene timova na formi
            if (domacin)
            {
                delUpdateFormInformations updatePostava = new delUpdateFormInformations(forma.updateTeamDomacin);
                forma.RtbSastavDomacin.BeginInvoke(updatePostava, noveOcene);
                Thread.Sleep(500);
            }
            else
            {
                delUpdateFormInformations updatePostava = new delUpdateFormInformations(forma.updateTeamGost);
                forma.RtbSastavGost.BeginInvoke(updatePostava, noveOcene);
                Thread.Sleep(500);
            }
            return(team);
        }
コード例 #2
0
        // ---- Update sastava i skila u formi ----
        void updateSastavForm(double[] teamSkills, string[] posAndSkill, bool domacin)
        {
            Random rand = new Random();
            string noveOcene = "";
            // ---- Generisi random brojeve za oba tima naizmenicno ----
            string[] separators = new string[] { "<&>" };
            for (int i = 0; i < teamSkills.Length; i++)
            {
                string[] posSkill = posAndSkill[i].Split(':');
                int pos = Convert.ToInt32(posSkill[0]);
                if (domacin)
                {
                    string[] podela = idsNamePosDomaci[pos].Split(separators, StringSplitOptions.None);
                    noveOcene += (i + 1).ToString() + ". " + podela[1] + " " + teamSkills[i].ToString() + ';';
                }
                else
                {
                    string[] podela = idsNamePosGosti[pos].Split(separators, StringSplitOptions.None);
                    noveOcene += (i + 1).ToString() + ". " + podela[1] + " " + teamSkills[i].ToString() + ';';
                }
            }
            //noveOcene = noveOcene.TrimEnd(';');

               // string rezervniIgraci = "" + Environment.NewLine;
               // rezervniIgraci += Environment.NewLine + "Rezervni igraci" + Environment.NewLine;
            string rezervniIgraci = "";
            if (domacin)
            {
                foreach (string igrac in idsNamePosDomaci)
                {
                    string[] podela = igrac.Split(separators, StringSplitOptions.None);
                    if (!noveOcene.Contains(podela[1]))
                    {
                        rezervniIgraci += podela[1] + ";";
                    }
                }
            }
            else
            {
                foreach (string igrac in idsNamePosGosti)
                {
                    string[] podela = igrac.Split(separators, StringSplitOptions.None);
                    if (!noveOcene.Contains(podela[1]))
                    {
                        rezervniIgraci += podela[1] + ";";
                    }
                }
            }
            noveOcene += rezervniIgraci;
            noveOcene = noveOcene.TrimEnd(';');
            // ---- Update-ovanje ocene timova na formi
            if (domacin)
            {
                delUpdateFormInformations updatePostava = new delUpdateFormInformations(forma.updateTeamDomacin);
                forma.RtbSastavDomacin.BeginInvoke(updatePostava, noveOcene);
                Thread.Sleep(500);

            }
            else
            {
                delUpdateFormInformations updatePostava = new delUpdateFormInformations(forma.updateTeamGost);
                forma.RtbSastavGost.BeginInvoke(updatePostava, noveOcene);
                Thread.Sleep(500);
            }
        }
コード例 #3
0
        // ---- Simuliranje utakmice ----
        public void simulirajUtakmicu()
        {
            // ---- Brojaci za statistiku ----
            int domaciPosed = 0;
            int gostiPosed = 0;
            int brojNapadaDomaci = 0;
            int brojNapadaGosti = 0;
            int brojSredinaDomaci = 0;
            int brojSredinaGosti = 0;
            int brojOdbranaDomaci = 0;
            int brojOdbranaGosti = 0;

            string[] domaciStartnih11 = new string[11];
            int brojKoraka = 5;
            while (brojKoraka > 0)
            {
               domaciStartnih11 = izaberiIgrace(true);
               if (domaciStartnih11 != null)
                   break;
               brojKoraka--;
            }
            // ---- Ukoliko postoji greska prilikom izbora tima ----
            if (brojKoraka == 0)
            {
                delUpdateFormInformations simulacijaGreska = new delUpdateFormInformations(forma.SimulacijaGreska);
                forma.BeginInvoke(simulacijaGreska, "Doslo je do greske prilikom izbora prvog tima kod domacina!");
               // MessageBox.Show("Doslo je do greske prilikom izbora prvog tima kod domacina!");
               // forma.Close();
                return;
            }

            Thread.Sleep(500);
            brojKoraka = 5;
            string[] gostiStartnih11 = new string[11];
            while (brojKoraka > 0)
            {
                gostiStartnih11 = izaberiIgrace(false);
                if (gostiStartnih11 != null)
                    break;
                brojKoraka--;
            }
            // ---- Ukoliko postoji greska prilikom izbora tima ----
            if (brojKoraka == 0)
            {
                delUpdateFormInformations simulacijaGreska = new delUpdateFormInformations(forma.SimulacijaGreska);
                forma.BeginInvoke(simulacijaGreska, "Doslo je do greske prilikom izbora prvog tima kod gostiu!");
               // MessageBox.Show("Doslo je do greske prilikom izbora prvog tima kod domacina!");
               // forma.Close();
                return;
            }

            double[] domacin = new double[11];
            double[] gost = new double[11];

            for (int i = 0; i < 11; i++)
            {
                string[] nameSkillDom = domaciStartnih11[i].Split(':');
                domacin[i] = Convert.ToDouble(nameSkillDom[1]);
                string[] nameSkillGos = gostiStartnih11[i].Split(':');
                gost[i] = Convert.ToDouble(nameSkillGos[1]);
            }

            updateSastavForm(domacin, domaciStartnih11, true);
            updateSastavForm(gost, gostiStartnih11, false);

            // ---- Dodela skilova ----
               /* domacin = noviSkilovi(domacin, true, 1);
            gost = noviSkilovi(gost, false, 1); */

            int domacinGolovi = 0;
            int gostGolovi = 0;

            delUpdateFormInformations updateDogadjaj = new delUpdateFormInformations(forma.updateDogadjaji);

            // ---- Krece utakmica -----
            for (int i = 0; i < 90; i++)
            {
                // korak 1
                int napadaTim = izborTimaKojiNapada();
                Thread.Sleep(500); // Da se ne bi izgubio pointer u algoritam

                bool nastavakAkcije = false;
                bool nikoNemaAkciju = true;
                if (napadaTim == 1)
                {
                    nastavakAkcije = true;
                    nikoNemaAkciju = false;
                }
                else if (napadaTim == 2)
                {
                    nastavakAkcije = true;
                    nikoNemaAkciju = false;
                }

                if (!nikoNemaAkciju & nastavakAkcije)
                {
                    // Korak 2 ---- da li je predjen centar
                    if (napadaTim == 1)
                    {
                        nastavakAkcije = sredinaPobedjena(domacin, gost);
                        domaciPosed += 1;
                        brojNapadaDomaci++;

                        // Update-ujemo dogadjaj na formu
                        forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i+1).ToString() + "' DOMACIN: Zapocinje akciju");
                        Thread.Sleep(500);
                    }
                    else if (napadaTim == 2)
                    {
                        nastavakAkcije = sredinaPobedjena(gost, domacin);
                        gostiPosed += 1;
                        brojNapadaGosti++;
                        // Update-ujemo dogadjaj na formu
                        forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Zapocinje akciju");
                        Thread.Sleep(500);
                    }

                    if (nastavakAkcije)
                    {
                        // ---- Korak 3 ---- da li je predjena odbrana
                        if (napadaTim == 1)
                        {
                            nastavakAkcije = odbranaPobedjena(domacin, gost);
                            domaciPosed += 2;
                            brojSredinaDomaci++;
                            // Update-ujemo dogadjaj na formu
                            forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Lepo razmenjuju pasove i prolaze centar");
                            Thread.Sleep(500);
                        }
                        else if (napadaTim == 2)
                        {
                            nastavakAkcije = odbranaPobedjena(gost, domacin);
                            gostiPosed += 2;
                            brojSredinaGosti++;
                            // Update-ujemo dogadjaj na formu
                            forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Lepo razmenjuju pasove i prolaze centar");
                            Thread.Sleep(500);
                        }

                        if (nastavakAkcije)
                        {
                            // ---- Korak 4 --- da li je dat gol
                            if (napadaTim == 1)
                            {
                                nastavakAkcije = odbranaGolmana(domacin, gost);
                                domaciPosed += 3;
                                brojOdbranaDomaci++;
                                // Update-ujemo dogadjaj na formu
                                forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Prolaze protivnicku odbranu");
                                Thread.Sleep(500);
                            }
                            else if (napadaTim == 2)
                            {
                                nastavakAkcije = odbranaGolmana(gost, domacin);
                                gostiPosed += 3;
                                brojOdbranaGosti++;
                                // Update-ujemo dogadjaj na formu
                                forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Prolaze protivnicku odbranu");
                                Thread.Sleep(500);
                            }

                            // ---- Postignu gol ----
                            if (nastavakAkcije)
                            {
                                if (napadaTim == 1)
                                {
                                    string strelac = KoDajeGol(domacin, domaciStartnih11, true);
                                    domacinGolovi++;
                                    // Update-ujemo dogadjaj na formu
                                    delUpdateFormInformations updateGol = new delUpdateFormInformations(forma.updateDomacinRez);
                                    forma.RezultatDomacin.BeginInvoke(updateGol, domacinGolovi.ToString());
                                    Thread.Sleep(500);
                                    forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: GOOOL !!! Strelac: " + strelac);
                                    Thread.Sleep(1000);
                                    /*NAudio.Wave.WaveStream pcm = NAudio.Wave.WaveFormatConversionStream.CreatePcmStream(new NAudio.Wave.Mp3FileReader(goalSound));
                                     Thread.Sleep(3000);*/
                                    gost = noviSkilovi(gost, false, 2);
                                    updateSastavForm(gost, gostiStartnih11, false);
                                  //  Thread.Sleep(500);
                                   // updateSastavForm(domacin, domaciStartnih11, true);
                                }
                                else if (napadaTim == 2)
                                {
                                    string strelac = KoDajeGol(gost, gostiStartnih11, false);
                                    gostGolovi++;
                                    // Update-ujemo dogadjaj na formu
                                    delUpdateFormInformations updateGol = new delUpdateFormInformations(forma.updateGostRez);
                                    forma.RezultatGost.BeginInvoke(updateGol, gostGolovi.ToString());
                                    Thread.Sleep(500);
                                    forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: GOOOL !!! Strelac: " + strelac);
                                    Thread.Sleep(1000);
                                    /*NAudio.Wave.WaveStream pcm = NAudio.Wave.WaveFormatConversionStream.CreatePcmStream(new NAudio.Wave.Mp3FileReader(goalSound));
                                     Thread.Sleep(3000);*/
                                    domacin = noviSkilovi(domacin, true, 2);
                                    updateSastavForm(domacin, domaciStartnih11, true);
                                    //Thread.Sleep(500);
                                   // updateSastavForm(gost, gostiStartnih11, false);
                                }
                            }
                            else
                            {
                                // Golman brani
                                if (napadaTim == 1)
                                {
                                    // Update-ujemo dogadjaj na formu
                                    forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Kakva odbrana golmana");
                                    Thread.Sleep(500);

                                }
                                else if (napadaTim == 2)
                                {
                                    // Update-ujemo dogadjaj na formu
                                    forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Kakva odbrana golmana");
                                    Thread.Sleep(500);
                                }
                            }
                        }
                        else
                        {
                            // Odbrana dobro reaguje
                            if (napadaTim == 1)
                            {
                                // Update-ujemo dogadjaj na formu
                                forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Odbrana otklanja opasnost");
                                Thread.Sleep(500);
                            }
                            else if (napadaTim == 2)
                            {
                                // Update-ujemo dogadjaj na formu
                                forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Odbrana otklanja opasnost");
                                Thread.Sleep(500);
                            }
                        }
                    }
                    else
                    {
                        // Oduzeta lopta na sredinu
                        if (napadaTim == 1)
                        {
                            // Update-ujemo dogadjaj na formu
                            forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Igraci sredine terena veoma dobro pokrivaju protivnike");
                            Thread.Sleep(500);
                        }
                        else if (napadaTim == 2)
                        {

                            // Update-ujemo dogadjaj na formu
                            forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Igraci sredine terena veoma dobro pokrivaju protivnike");
                            Thread.Sleep(500);
                        }
                    }
                }

                // ---- Update minuta
                delUpdateFormInformations updateMin = new delUpdateFormInformations(forma.updateMinut);
                forma.Minuti.BeginInvoke(updateMin, (i+1).ToString() + "'");
                Thread.Sleep(500);

                if (i+1 == 15 || i+1 == 30 || i+1 == 45 || i+1 == 60 || i+1 == 75)
                {
                    // ---- Nova dodela skilova ----
                    domacin = noviSkilovi(domacin, true, 2);
                    gost = noviSkilovi(gost, false, 2);

                    updateSastavForm(domacin, domaciStartnih11, true);
                    updateSastavForm(gost, gostiStartnih11, false);

                    if (i+1 == 45)
                    {
                        forma.Minuti.BeginInvoke(updateMin, "HT");
                        Thread.Sleep(5000);
                    }
                }

            }
            int ukupniPosed = domaciPosed + gostiPosed;
            int procenatDomaci = (int)Math.Round(Math.Round(domaciPosed / (double)ukupniPosed, 2)*100);
            int procenatGosti = 100 - procenatDomaci;
            string statistika = "STATISTIKA" + Environment.NewLine;
            statistika += Environment.NewLine + "Domaci - Gosti" + Environment.NewLine;
            statistika += procenatDomaci + " - Posed lopte - " + procenatGosti + Environment.NewLine;
            statistika += brojNapadaDomaci + " - Broj napada - " + brojNapadaGosti + Environment.NewLine;
            statistika += (brojNapadaDomaci - brojSredinaDomaci).ToString() + " - Broj izgubljenih lopti na sredini - " + (brojNapadaGosti - brojSredinaGosti).ToString() + Environment.NewLine;
            statistika += (brojSredinaGosti - brojOdbranaGosti).ToString() + " - Broj sprecenih gol sansi - " + (brojSredinaDomaci - brojOdbranaDomaci).ToString() + Environment.NewLine;
            statistika += brojOdbranaDomaci + " - Broj sansi za gol - " + brojOdbranaGosti + Environment.NewLine;
               // MessageBox.Show(statistika, "Statistika");
            forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, statistika);
            Thread.Sleep(5000);

            if (domacinGolovi > gostGolovi)
            {
                najboljiIgrac(domacin, domaciStartnih11, true);
            }
            else if (domacinGolovi < gostGolovi)
            {
                najboljiIgrac(gost, gostiStartnih11, true);
            }
            else
            {
                Random rand = new Random();
                int broj = rand.Next(1, 2);
                if (broj == 1)
                {
                    najboljiIgrac(domacin, domaciStartnih11, true);
                }
                else
                {
                    najboljiIgrac(gost, gostiStartnih11, true);
                }
            }
        }
コード例 #4
0
        // ---- Simuliranje utakmice ----
        public void simulirajUtakmicu()
        {
            // ---- Brojaci za statistiku ----
            int domaciPosed       = 0;
            int gostiPosed        = 0;
            int brojNapadaDomaci  = 0;
            int brojNapadaGosti   = 0;
            int brojSredinaDomaci = 0;
            int brojSredinaGosti  = 0;
            int brojOdbranaDomaci = 0;
            int brojOdbranaGosti  = 0;

            string[] domaciStartnih11 = new string[11];
            int      brojKoraka       = 5;

            while (brojKoraka > 0)
            {
                domaciStartnih11 = izaberiIgrace(true);
                if (domaciStartnih11 != null)
                {
                    break;
                }
                brojKoraka--;
            }
            // ---- Ukoliko postoji greska prilikom izbora tima ----
            if (brojKoraka == 0)
            {
                delUpdateFormInformations simulacijaGreska = new delUpdateFormInformations(forma.SimulacijaGreska);
                forma.BeginInvoke(simulacijaGreska, "Doslo je do greske prilikom izbora prvog tima kod domacina!");
                // MessageBox.Show("Doslo je do greske prilikom izbora prvog tima kod domacina!");
                // forma.Close();
                return;
            }

            Thread.Sleep(500);
            brojKoraka = 5;
            string[] gostiStartnih11 = new string[11];
            while (brojKoraka > 0)
            {
                gostiStartnih11 = izaberiIgrace(false);
                if (gostiStartnih11 != null)
                {
                    break;
                }
                brojKoraka--;
            }
            // ---- Ukoliko postoji greska prilikom izbora tima ----
            if (brojKoraka == 0)
            {
                delUpdateFormInformations simulacijaGreska = new delUpdateFormInformations(forma.SimulacijaGreska);
                forma.BeginInvoke(simulacijaGreska, "Doslo je do greske prilikom izbora prvog tima kod gostiu!");
                // MessageBox.Show("Doslo je do greske prilikom izbora prvog tima kod domacina!");
                // forma.Close();
                return;
            }

            double[] domacin = new double[11];
            double[] gost    = new double[11];

            for (int i = 0; i < 11; i++)
            {
                string[] nameSkillDom = domaciStartnih11[i].Split(':');
                domacin[i] = Convert.ToDouble(nameSkillDom[1]);
                string[] nameSkillGos = gostiStartnih11[i].Split(':');
                gost[i] = Convert.ToDouble(nameSkillGos[1]);
            }

            updateSastavForm(domacin, domaciStartnih11, true);
            updateSastavForm(gost, gostiStartnih11, false);

            // ---- Dodela skilova ----

            /* domacin = noviSkilovi(domacin, true, 1);
             * gost = noviSkilovi(gost, false, 1); */

            int domacinGolovi = 0;
            int gostGolovi    = 0;

            delUpdateFormInformations updateDogadjaj = new delUpdateFormInformations(forma.updateDogadjaji);

            // ---- Krece utakmica -----
            for (int i = 0; i < 90; i++)
            {
                // korak 1
                int napadaTim = izborTimaKojiNapada();
                Thread.Sleep(500); // Da se ne bi izgubio pointer u algoritam

                bool nastavakAkcije = false;
                bool nikoNemaAkciju = true;
                if (napadaTim == 1)
                {
                    nastavakAkcije = true;
                    nikoNemaAkciju = false;
                }
                else if (napadaTim == 2)
                {
                    nastavakAkcije = true;
                    nikoNemaAkciju = false;
                }

                if (!nikoNemaAkciju & nastavakAkcije)
                {
                    // Korak 2 ---- da li je predjen centar
                    if (napadaTim == 1)
                    {
                        nastavakAkcije = sredinaPobedjena(domacin, gost);
                        domaciPosed   += 1;
                        brojNapadaDomaci++;

                        // Update-ujemo dogadjaj na formu
                        forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Zapocinje akciju");
                        Thread.Sleep(500);
                    }
                    else if (napadaTim == 2)
                    {
                        nastavakAkcije = sredinaPobedjena(gost, domacin);
                        gostiPosed    += 1;
                        brojNapadaGosti++;
                        // Update-ujemo dogadjaj na formu
                        forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Zapocinje akciju");
                        Thread.Sleep(500);
                    }


                    if (nastavakAkcije)
                    {
                        // ---- Korak 3 ---- da li je predjena odbrana
                        if (napadaTim == 1)
                        {
                            nastavakAkcije = odbranaPobedjena(domacin, gost);
                            domaciPosed   += 2;
                            brojSredinaDomaci++;
                            // Update-ujemo dogadjaj na formu
                            forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Lepo razmenjuju pasove i prolaze centar");
                            Thread.Sleep(500);
                        }
                        else if (napadaTim == 2)
                        {
                            nastavakAkcije = odbranaPobedjena(gost, domacin);
                            gostiPosed    += 2;
                            brojSredinaGosti++;
                            // Update-ujemo dogadjaj na formu
                            forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Lepo razmenjuju pasove i prolaze centar");
                            Thread.Sleep(500);
                        }

                        if (nastavakAkcije)
                        {
                            // ---- Korak 4 --- da li je dat gol
                            if (napadaTim == 1)
                            {
                                nastavakAkcije = odbranaGolmana(domacin, gost);
                                domaciPosed   += 3;
                                brojOdbranaDomaci++;
                                // Update-ujemo dogadjaj na formu
                                forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Prolaze protivnicku odbranu");
                                Thread.Sleep(500);
                            }
                            else if (napadaTim == 2)
                            {
                                nastavakAkcije = odbranaGolmana(gost, domacin);
                                gostiPosed    += 3;
                                brojOdbranaGosti++;
                                // Update-ujemo dogadjaj na formu
                                forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Prolaze protivnicku odbranu");
                                Thread.Sleep(500);
                            }

                            // ---- Postignu gol ----
                            if (nastavakAkcije)
                            {
                                if (napadaTim == 1)
                                {
                                    string strelac = KoDajeGol(domacin, domaciStartnih11, true);
                                    domacinGolovi++;
                                    // Update-ujemo dogadjaj na formu
                                    delUpdateFormInformations updateGol = new delUpdateFormInformations(forma.updateDomacinRez);
                                    forma.RezultatDomacin.BeginInvoke(updateGol, domacinGolovi.ToString());
                                    Thread.Sleep(500);

                                    GoalSoundPlay();


                                    forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: GOOOL !!! Strelac: " + strelac);

                                    //

                                    //this.DaLiSteZnali(strelac, "", "");
                                    //
                                    Thread.Sleep(1000);

                                    gost = noviSkilovi(gost, false, 2);
                                    updateSastavForm(gost, gostiStartnih11, false);
                                    //  Thread.Sleep(500);
                                    // updateSastavForm(domacin, domaciStartnih11, true);
                                }
                                else if (napadaTim == 2)
                                {
                                    string strelac = KoDajeGol(gost, gostiStartnih11, false);
                                    gostGolovi++;
                                    // Update-ujemo dogadjaj na formu
                                    delUpdateFormInformations updateGol = new delUpdateFormInformations(forma.updateGostRez);
                                    forma.RezultatGost.BeginInvoke(updateGol, gostGolovi.ToString());
                                    Thread.Sleep(500);
                                    //this.DaLiSteZnali(strelac, "", "");

                                    GoalSoundPlay();

                                    forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: GOOOL !!! Strelac: " + strelac);



                                    Thread.Sleep(1000);

                                    domacin = noviSkilovi(domacin, true, 2);
                                    updateSastavForm(domacin, domaciStartnih11, true);
                                    //Thread.Sleep(500);
                                    // updateSastavForm(gost, gostiStartnih11, false);
                                }
                            }
                            else
                            {
                                // Golman brani
                                if (napadaTim == 1)
                                {
                                    // Update-ujemo dogadjaj na formu
                                    forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Kakva odbrana golmana");
                                    Thread.Sleep(500);
                                }
                                else if (napadaTim == 2)
                                {
                                    // Update-ujemo dogadjaj na formu
                                    forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Kakva odbrana golmana");
                                    Thread.Sleep(500);
                                }
                            }
                        }
                        else
                        {
                            // Odbrana dobro reaguje
                            if (napadaTim == 1)
                            {
                                // Update-ujemo dogadjaj na formu
                                forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Odbrana otklanja opasnost");
                                Thread.Sleep(500);
                            }
                            else if (napadaTim == 2)
                            {
                                // Update-ujemo dogadjaj na formu
                                forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Odbrana otklanja opasnost");
                                Thread.Sleep(500);
                            }
                        }
                    }
                    else
                    {
                        // Oduzeta lopta na sredinu
                        if (napadaTim == 1)
                        {
                            // Update-ujemo dogadjaj na formu
                            forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Igraci sredine terena veoma dobro pokrivaju protivnike");
                            Thread.Sleep(500);
                        }
                        else if (napadaTim == 2)
                        {
                            // Update-ujemo dogadjaj na formu
                            forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Igraci sredine terena veoma dobro pokrivaju protivnike");
                            Thread.Sleep(500);
                        }
                    }
                }

                // ---- Update minuta
                delUpdateFormInformations updateMin = new delUpdateFormInformations(forma.updateMinut);
                forma.Minuti.BeginInvoke(updateMin, (i + 1).ToString() + "'");
                Thread.Sleep(500);

                if (i + 1 == 15 || i + 1 == 30 || i + 1 == 45 || i + 1 == 60 || i + 1 == 75)
                {
                    // ---- Nova dodela skilova ----
                    domacin = noviSkilovi(domacin, true, 2);
                    gost    = noviSkilovi(gost, false, 2);

                    updateSastavForm(domacin, domaciStartnih11, true);
                    updateSastavForm(gost, gostiStartnih11, false);

                    if (i + 1 == 45)
                    {
                        forma.Minuti.BeginInvoke(updateMin, "HT");

                        Thread.Sleep(5000);
                    }
                }
            }
            int    ukupniPosed    = domaciPosed + gostiPosed;
            int    procenatDomaci = (int)Math.Round(Math.Round(domaciPosed / (double)ukupniPosed, 2) * 100);
            int    procenatGosti  = 100 - procenatDomaci;
            string statistika     = "STATISTIKA" + Environment.NewLine;

            statistika += Environment.NewLine + "Domaci - Gosti" + Environment.NewLine;
            statistika += procenatDomaci + " - Posed lopte - " + procenatGosti + Environment.NewLine;
            statistika += brojNapadaDomaci + " - Broj napada - " + brojNapadaGosti + Environment.NewLine;
            statistika += (brojNapadaDomaci - brojSredinaDomaci).ToString() + " - Broj izgubljenih lopti na sredini - " + (brojNapadaGosti - brojSredinaGosti).ToString() + Environment.NewLine;
            statistika += (brojSredinaGosti - brojOdbranaGosti).ToString() + " - Broj sprecenih gol sansi - " + (brojSredinaDomaci - brojOdbranaDomaci).ToString() + Environment.NewLine;
            statistika += brojOdbranaDomaci + " - Broj sansi za gol - " + brojOdbranaGosti + Environment.NewLine;
            // MessageBox.Show(statistika, "Statistika");
            forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, statistika);
            Thread.Sleep(5000);

            if (domacinGolovi > gostGolovi)
            {
                najboljiIgrac(domacin, domaciStartnih11, true);
            }
            else if (domacinGolovi < gostGolovi)
            {
                najboljiIgrac(gost, gostiStartnih11, true);
            }
            else
            {
                Random rand = new Random();
                int    broj = rand.Next(1, 2);
                if (broj == 1)
                {
                    najboljiIgrac(domacin, domaciStartnih11, true);
                }
                else
                {
                    najboljiIgrac(gost, gostiStartnih11, true);
                }
            }
            this.DisposeWave();
        }
コード例 #5
0
        // ---- Update sastava i skila u formi ----
        void updateSastavForm(double[] teamSkills, string[] posAndSkill, bool domacin)
        {
            Random rand      = new Random();
            string noveOcene = "";

            // ---- Generisi random brojeve za oba tima naizmenicno ----
            string[] separators = new string[] { "<&>" };
            for (int i = 0; i < teamSkills.Length; i++)
            {
                string[] posSkill = posAndSkill[i].Split(':');
                int      pos      = Convert.ToInt32(posSkill[0]);
                if (domacin)
                {
                    string[] podela = idsNamePosDomaci[pos].Split(separators, StringSplitOptions.None);
                    noveOcene += (i + 1).ToString() + ". " + podela[1] + " " + teamSkills[i].ToString() + ';';
                }
                else
                {
                    string[] podela = idsNamePosGosti[pos].Split(separators, StringSplitOptions.None);
                    noveOcene += (i + 1).ToString() + ". " + podela[1] + " " + teamSkills[i].ToString() + ';';
                }
            }
            //noveOcene = noveOcene.TrimEnd(';');

            // string rezervniIgraci = "" + Environment.NewLine;
            // rezervniIgraci += Environment.NewLine + "Rezervni igraci" + Environment.NewLine;
            string rezervniIgraci = "";

            if (domacin)
            {
                foreach (string igrac in idsNamePosDomaci)
                {
                    string[] podela = igrac.Split(separators, StringSplitOptions.None);
                    if (!noveOcene.Contains(podela[1]))
                    {
                        rezervniIgraci += podela[1] + ";";
                    }
                }
            }
            else
            {
                foreach (string igrac in idsNamePosGosti)
                {
                    string[] podela = igrac.Split(separators, StringSplitOptions.None);
                    if (!noveOcene.Contains(podela[1]))
                    {
                        rezervniIgraci += podela[1] + ";";
                    }
                }
            }
            noveOcene += rezervniIgraci;
            noveOcene  = noveOcene.TrimEnd(';');
            // ---- Update-ovanje ocene timova na formi
            if (domacin)
            {
                delUpdateFormInformations updatePostava = new delUpdateFormInformations(forma.updateTeamDomacin);
                forma.RtbSastavDomacin.BeginInvoke(updatePostava, noveOcene);
                Thread.Sleep(500);
            }
            else
            {
                delUpdateFormInformations updatePostava = new delUpdateFormInformations(forma.updateTeamGost);
                forma.RtbSastavGost.BeginInvoke(updatePostava, noveOcene);
                Thread.Sleep(500);
            }
        }
コード例 #6
0
        // ---- Simuliranje utakmice ----
        public void simulirajUtakmicu()
        {
            double[] domacin = new double[11];
            double[] gost    = new double[11];

            // ---- Dodela skilova ----
            domacin = noviSkilovi(domacin, true, 1);
            gost    = noviSkilovi(gost, false, 1);

            int domacinGolovi = 0;
            int gostGolovi    = 0;

            delUpdateFormInformations updateDogadjaj = new delUpdateFormInformations(forma.updateDogadjaji);

            // ---- Krece utakmica -----
            for (int i = 0; i < 90; i++)
            {
                // korak 1
                int napadaTim = izborTimaKojiNapada();
                Thread.Sleep(500); // Da se ne bi izgubio pointer u algoritam

                bool nastavakAkcije = false;
                bool nikoNemaAkciju = true;
                if (napadaTim == 1)
                {
                    nastavakAkcije = true;
                    nikoNemaAkciju = false;
                }
                else if (napadaTim == 2)
                {
                    nastavakAkcije = true;
                    nikoNemaAkciju = false;
                }

                if (!nikoNemaAkciju & nastavakAkcije)
                {
                    // Korak 2 ---- da li je predjen centar
                    if (napadaTim == 1)
                    {
                        nastavakAkcije = sredinaPobedjena(domacin, gost);

                        // Update-ujemo dogadjaj na formu
                        forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Zapocinje akciju");
                        Thread.Sleep(500);
                    }
                    else if (napadaTim == 2)
                    {
                        nastavakAkcije = sredinaPobedjena(gost, domacin);

                        // Update-ujemo dogadjaj na formu
                        forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Zapocinje akciju");
                        Thread.Sleep(500);
                    }


                    if (nastavakAkcije)
                    {
                        // ---- Korak 3 ---- da li je predjena odbrana
                        if (napadaTim == 1)
                        {
                            nastavakAkcije = odbranaPobedjena(domacin, gost);

                            // Update-ujemo dogadjaj na formu
                            forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Lepo razmenjuju pasove i prolaze centar");
                            Thread.Sleep(500);
                        }
                        else if (napadaTim == 2)
                        {
                            nastavakAkcije = odbranaPobedjena(gost, domacin);

                            // Update-ujemo dogadjaj na formu
                            forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Lepo razmenjuju pasove i prolaze centar");
                            Thread.Sleep(500);
                        }

                        if (nastavakAkcije)
                        {
                            // ---- Korak 4 --- da li je dat gol
                            if (napadaTim == 1)
                            {
                                nastavakAkcije = odbranaGolmana(domacin, gost);

                                // Update-ujemo dogadjaj na formu
                                forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Prolaze protivnicku odbranu");
                                Thread.Sleep(500);
                            }
                            else if (napadaTim == 2)
                            {
                                nastavakAkcije = odbranaGolmana(gost, domacin);

                                // Update-ujemo dogadjaj na formu
                                forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Prolaze protivnicku odbranu");
                                Thread.Sleep(500);
                            }

                            // ---- Postignu gol ----
                            if (nastavakAkcije)
                            {
                                if (napadaTim == 1)
                                {
                                    domacinGolovi++;
                                    // Update-ujemo dogadjaj na formu
                                    delUpdateFormInformations updateGol = new delUpdateFormInformations(forma.updateDomacinRez);
                                    forma.RezultatDomacin.BeginInvoke(updateGol, domacinGolovi.ToString());
                                    Thread.Sleep(500);
                                    forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: GOOOL !!!");
                                    Thread.Sleep(500);
                                    gost = noviSkilovi(gost, false, 2);
                                }
                                else if (napadaTim == 2)
                                {
                                    gostGolovi++;
                                    // Update-ujemo dogadjaj na formu
                                    delUpdateFormInformations updateGol = new delUpdateFormInformations(forma.updateGostRez);
                                    forma.RezultatGost.BeginInvoke(updateGol, gostGolovi.ToString());
                                    Thread.Sleep(500);
                                    forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: GOOOL !!!");
                                    Thread.Sleep(500);
                                    domacin = noviSkilovi(domacin, true, 2);
                                }
                            }
                            else
                            {
                                // Golman brani
                                if (napadaTim == 1)
                                {
                                    // Update-ujemo dogadjaj na formu
                                    forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Kakva odbrana golmana");
                                    Thread.Sleep(500);
                                }
                                else if (napadaTim == 2)
                                {
                                    // Update-ujemo dogadjaj na formu
                                    forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Kakva odbrana golmana");
                                    Thread.Sleep(500);
                                }
                            }
                        }
                        else
                        {
                            // Odbrana dobro reaguje
                            if (napadaTim == 1)
                            {
                                // Update-ujemo dogadjaj na formu
                                forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Odbrana otklanja opasnost");
                                Thread.Sleep(500);
                            }
                            else if (napadaTim == 2)
                            {
                                // Update-ujemo dogadjaj na formu
                                forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Odbrana otklanja opasnost");
                                Thread.Sleep(500);
                            }
                        }
                    }
                    else
                    {
                        // Oduzeta lopta na sredinu
                        if (napadaTim == 1)
                        {
                            // Update-ujemo dogadjaj na formu
                            forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Igraci sredine terena veoma dobro pokrivaju protivnike");
                            Thread.Sleep(500);
                        }
                        else if (napadaTim == 2)
                        {
                            // Update-ujemo dogadjaj na formu
                            forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Igraci sredine terena veoma dobro pokrivaju protivnike");
                            Thread.Sleep(500);
                        }
                    }
                }

                // ---- Update minuta
                delUpdateFormInformations updateMin = new delUpdateFormInformations(forma.updateMinut);
                forma.Minuti.BeginInvoke(updateMin, (i + 1).ToString() + "'");
                Thread.Sleep(500);

                if (i == 15 || i == 30 || i == 45 || i == 60 || i == 75)
                {
                    // ---- Nova dodela skilova ----
                    domacin = noviSkilovi(domacin, true, 2);
                    gost    = noviSkilovi(gost, false, 2);
                }
            }
        }
コード例 #7
0
        // ---- Update skilova igraca ----
        public double[] noviSkilovi(double[] team, bool domacin, int podeliSa)
        {
            Random rand = new Random();
            string noveOcene = "";
            // ---- Generisi random brojeve za oba tima naizmenicno ----
            for (int i = 0; i < 11; i++)
            {
                int skill = rand.Next(1, 10);
                team[i] = Math.Round((team[i] + skill) / podeliSa, 1);
                noveOcene += team[i].ToString() + ';';
            }
            noveOcene = noveOcene.TrimEnd(';');

            // ---- Update-ovanje ocene timova na formi
            if (domacin)
            {
                delUpdateFormInformations updatePostava = new delUpdateFormInformations(forma.updateTeamDomacin);
                forma.RtbSastavDomacin.BeginInvoke(updatePostava, noveOcene);
                Thread.Sleep(500);

            }
            else
            {
                delUpdateFormInformations updatePostava = new delUpdateFormInformations(forma.updateTeamGost);
                forma.RtbSastavGost.BeginInvoke(updatePostava, noveOcene);
                Thread.Sleep(500);
            }
            return team;
        }
コード例 #8
0
        // ---- Simuliranje utakmice ----
        public void simulirajUtakmicu()
        {
            double[] domacin = new double[11];
            double[] gost = new double[11];

            // ---- Dodela skilova ----
            domacin = noviSkilovi(domacin, true, 1);
            gost = noviSkilovi(gost, false, 1);

            int domacinGolovi = 0;
            int gostGolovi = 0;

            delUpdateFormInformations updateDogadjaj = new delUpdateFormInformations(forma.updateDogadjaji);         

            // ---- Krece utakmica -----
            for (int i = 0; i < 90; i++)
            {
                // korak 1
                int napadaTim = izborTimaKojiNapada();
                Thread.Sleep(500); // Da se ne bi izgubio pointer u algoritam
                
                bool nastavakAkcije = false;
                bool nikoNemaAkciju = true;               
                if (napadaTim == 1)
                {
                    nastavakAkcije = true;
                    nikoNemaAkciju = false;                   
                }
                else if (napadaTim == 2)
                {
                    nastavakAkcije = true;
                    nikoNemaAkciju = false;                   
                }

                if (!nikoNemaAkciju & nastavakAkcije)
                {
                    // Korak 2 ---- da li je predjen centar
                    if (napadaTim == 1)
                    {
                        nastavakAkcije = sredinaPobedjena(domacin, gost);

                        // Update-ujemo dogadjaj na formu
                        forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i+1).ToString() + "' DOMACIN: Zapocinje akciju");
                        Thread.Sleep(500);
                    }
                    else if (napadaTim == 2)
                    {
                        nastavakAkcije = sredinaPobedjena(gost, domacin);

                        // Update-ujemo dogadjaj na formu
                        forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Zapocinje akciju");
                        Thread.Sleep(500);
                    }


                    if (nastavakAkcije)
                    {
                        // ---- Korak 3 ---- da li je predjena odbrana
                        if (napadaTim == 1)
                        {
                            nastavakAkcije = odbranaPobedjena(domacin, gost);

                            // Update-ujemo dogadjaj na formu
                            forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Lepo razmenjuju pasove i prolaze centar");
                            Thread.Sleep(500);
                        }
                        else if (napadaTim == 2)
                        {
                            nastavakAkcije = odbranaPobedjena(gost, domacin);

                            // Update-ujemo dogadjaj na formu
                            forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Lepo razmenjuju pasove i prolaze centar");
                            Thread.Sleep(500);
                        }

                        if (nastavakAkcije)
                        {
                            // ---- Korak 4 --- da li je dat gol
                            if (napadaTim == 1)
                            {
                                nastavakAkcije = odbranaGolmana(domacin, gost);

                                // Update-ujemo dogadjaj na formu
                                forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Prolaze protivnicku odbranu");
                                Thread.Sleep(500);
                            }
                            else if (napadaTim == 2)
                            {
                                nastavakAkcije = odbranaGolmana(gost, domacin);

                                // Update-ujemo dogadjaj na formu
                                forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Prolaze protivnicku odbranu");
                                Thread.Sleep(500);
                            }

                            // ---- Postignu gol ----
                            if (nastavakAkcije)
                            {
                                if (napadaTim == 1)
                                {
                                    domacinGolovi++;
                                    // Update-ujemo dogadjaj na formu
                                    delUpdateFormInformations updateGol = new delUpdateFormInformations(forma.updateDomacinRez);
                                    forma.RezultatDomacin.BeginInvoke(updateGol, domacinGolovi.ToString());
                                    Thread.Sleep(500);
                                    forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: GOOOL !!!");
                                    Thread.Sleep(500);                                   
                                    gost = noviSkilovi(gost, false, 2);
                                }
                                else if (napadaTim == 2)
                                {
                                    gostGolovi++;
                                    // Update-ujemo dogadjaj na formu
                                    delUpdateFormInformations updateGol = new delUpdateFormInformations(forma.updateGostRez);
                                    forma.RezultatGost.BeginInvoke(updateGol, gostGolovi.ToString());
                                    Thread.Sleep(500);
                                    forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: GOOOL !!!");
                                    Thread.Sleep(500);
                                    domacin = noviSkilovi(domacin, true, 2);
                                }
                            }
                            else
                            {
                                // Golman brani
                                if (napadaTim == 1)
                                {
                                    // Update-ujemo dogadjaj na formu
                                    forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Kakva odbrana golmana");
                                    Thread.Sleep(500);
                                    
                                }
                                else if (napadaTim == 2)
                                {
                                    // Update-ujemo dogadjaj na formu
                                    forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Kakva odbrana golmana");
                                    Thread.Sleep(500);
                                }
                            }
                        }
                        else
                        {
                            // Odbrana dobro reaguje
                            if (napadaTim == 1)
                            {
                                // Update-ujemo dogadjaj na formu
                                forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Odbrana otklanja opasnost");
                                Thread.Sleep(500);
                            }
                            else if (napadaTim == 2)
                            {                             
                                // Update-ujemo dogadjaj na formu
                                forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Odbrana otklanja opasnost");
                                Thread.Sleep(500);
                            }
                        }
                    }
                    else
                    {
                        // Oduzeta lopta na sredinu
                        if (napadaTim == 1)
                        {
                            // Update-ujemo dogadjaj na formu
                            forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' GOST: Igraci sredine terena veoma dobro pokrivaju protivnike");
                            Thread.Sleep(500);
                        }
                        else if (napadaTim == 2)
                        {
                            
                            // Update-ujemo dogadjaj na formu
                            forma.RtbDogadjaji.BeginInvoke(updateDogadjaj, (i + 1).ToString() + "' DOMACIN: Igraci sredine terena veoma dobro pokrivaju protivnike");
                            Thread.Sleep(500);
                        }
                    }
                }

                // ---- Update minuta
                delUpdateFormInformations updateMin = new delUpdateFormInformations(forma.updateMinut);
                forma.Minuti.BeginInvoke(updateMin, (i+1).ToString() + "'");
                Thread.Sleep(500);

                if (i == 15 || i == 30 || i == 45 || i == 60 || i == 75)
                {
                    // ---- Nova dodela skilova ----
                    domacin = noviSkilovi(domacin, true, 2);
                    gost = noviSkilovi(gost, false, 2);
                }

            }
        }