Program (začátečník) – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Program (začátečník) – C / C++ – Fórum – Programujte.comProgram (začátečník) – C / C++ – Fórum – Programujte.com

 

Petr
~ Anonymní uživatel
746 příspěvků
8. 6. 2013   #1
-
0
-

Dobrý den,

chtěl jsem si zkusit prostý program, který funguje asi takto (na principu herního automatu):

Mám 9 pictureBoxu a 6 obrázků.

Těch 6 obrázků se v těch 9 pictureBoxem oběvuje(problikávají - timer mám na 1 sec)

To mi ještě funguje ale poté bych rád co kliknu na button stop tak aby se program zastavil na tech obrázkách na kterých se klikl stop. Mě to běhá stále dále a také když někde budou 3 obrázky stejné bu'd křížem nebo vedle sebe, pod sebou aby přičetl 15bodů za každý 3 stejné mě to připočte vždy 15 aniž by byly stejné. To je vše moc děkuji všem co mi pomůžou budu moc rád.

obrazky[0] = Image.FromFile("bell.jpg");
            obrazky[1] = Image.FromFile("joker.png");
            obrazky[2] = Image.FromFile("cherry.png");
            obrazky[3] = Image.FromFile("seven.jpg");
            obrazky[4] = Image.FromFile("raspberry.jpg");
            obrazky[5] = Image.FromFile("plum.jpg");


        }
        Image[] obrazky = new Image[6];
        Random nnn = new Random();
        int a = 0;
        int b = 0;
        int c = 0;
        int d = 0;
        int z = 0;
        int f = 0;
        int g = 0;
        int h = 0;
        int ch = 0;
        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Interval = 1000;
            timer1.Enabled = true;
            int a = nnn.Next(0, 6);
            int b = nnn.Next(0, 6);
            int c = nnn.Next(0, 6);
            int d = nnn.Next(0, 6);
            int z = nnn.Next(0, 6);
            int f = nnn.Next(0, 6);
            int g = nnn.Next(0, 6);
            int h = nnn.Next(0, 6);
            int ch = nnn.Next(0, 6);
            pictureBox1.Image = obrazky[a];
            pictureBox2.Image = obrazky[b];
            pictureBox3.Image = obrazky[c];
            pictureBox4.Image = obrazky[d];
            pictureBox5.Image = obrazky[z];
            pictureBox6.Image = obrazky[f];
            pictureBox7.Image = obrazky[g];
            pictureBox8.Image = obrazky[h];
            pictureBox9.Image = obrazky[ch];


        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            int a = nnn.Next(0, 6);
            int b = nnn.Next(0, 6);
            int c = nnn.Next(0, 6);
            int d = nnn.Next(0, 6);
            int z = nnn.Next(0, 6);
            int f = nnn.Next(0, 6);
            int g = nnn.Next(0, 6);
            int h = nnn.Next(0, 6);
            int ch = nnn.Next(0, 6);
            pictureBox1.Image = obrazky[a];
            pictureBox2.Image = obrazky[b];
            pictureBox3.Image = obrazky[c];
            pictureBox4.Image = obrazky[d];
            pictureBox5.Image = obrazky[z];
            pictureBox6.Image = obrazky[f];
            pictureBox7.Image = obrazky[g];
            pictureBox8.Image = obrazky[h];
            pictureBox9.Image = obrazky[ch];
        }
        int body = 0;
        private void button2_Click(object sender, EventArgs e)
        {
            int bod = 0;
            if (a == b && b == c)
            {
                bod = 15;
            }

            {
                if (a == z && z == ch)
                {

                    bod = 15;
                }

                {
                    if (d == z && z == f)
                    {
                        bod = 15;
                    }
                    {
                        if (g == h && h == ch)
                        {
                            bod = 15;
                        }
                        {
                            if (a == d && d == g)
                            {
                                bod = 15;
                            }
                            {
                                if (b == z && z == h)
                                {
                                    bod = 15;
                                }
                                {
                                    if (c == f && f == ch)
                                    {
                                        bod = 15;
                                    }
                                    {
                                        if (c == z && z == g)
                                        {
                                            bod = 15;
                                        }
                                        {


                                            body += bod;
                                            label1.Text = Convert.ToString(bod);

Nahlásit jako SPAM
IP: 90.181.121.–
Val
~ Anonymní uživatel
2 příspěvky
10. 6. 2013   #2
-
0
-

Petře, za prvé - vyvaruj se opakování kódu, to je velké zlo. Když je někde stejný kód tak z něj udělej další funkci. Místo definování kvanta proměnných a,b,c... použij pole a procházej ho cyklem. Pak třeba nebudeš potřebovat ty šílené if-y ve funkci button2_Click. 

Možná si pak všimneš, že ty proměnné a,b,c... definuješ znovu ve funkcích button1_Click a timer1_Tick - což sice lze, ale vzniknou tak nové lokální proměnné které mají platnost jen v rámci té dané funkce (na jejím konci zaniknou). A když pak provádíš kontroly ve funkci button2_Click tak pracuješ s globálními proměnnými které sis nastavil na 0 a ne s těmi, kterým přiřazuješ náhodnou hodnotu.(takže odstraň slova int z funkcí button1_Click a timer1_Tick)

Nahlásit jako SPAM
IP: 178.255.168.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 34 hostů

Podobná vlákna

Začátečník — založil Empty

Zacatecnik — založil Tase

C++ a začátečník — založil Mr.Boss3D

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý