Diskuze: zřejmě špatně zapsaný kód

C# .NET .NET (C# a Visual Basic) zřejmě špatně zapsaný kód American English version English version

Avatar
Flouwie
Neregistrovaný
Avatar
Flouwie:

Ahoj, potřeboval bych poradit ohledně kódu... Zřejmě tam mám nějakou hrubku nebo nevím :/

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace jednooky_bandita
{
    public class JB
    {
        public int buben;
        public int symboly;
        public int skore;
        public int vysledek;
        private Random nahoda;

        public JB(int b, int s)
        {
            buben = 4;
            symboly = s;
        }

        /// <summary>
        /// Načte do pole tolik náhodných čísel, kolik jich bude načteno v konstruktoru
        /// </summary>
        /// <returns></returns>
        public int[] Paka()
        {
            int[] pole = new int[buben];

            for (int i = 0; i < buben; i++)
            {
                pole[i] = nahoda.Next(1, symboly) + 1;
            }

            return pole;
        }

        /// <summary>
        /// z pole Paka seřadí čísla a porovná ty, které se shodují
        /// pokud najde shodu k výsledku se přičtě 1
        /// </summary>
        /// <returns></returns>
        public int Zhodnoceni()
        {
            int[] pole = Paka();
            int pomocna = 0;
            Array.Sort(pole);

            for (int i = 0; i < symboly; i++)
            {
                pomocna++;

                for (int y = 0; y < buben; y++)
                {
                    if (pomocna == pole[i])
                    {
                        vysledek++;
                    }
                }
            }

            return vysledek;
        }

        /// <summary>
        /// skóre má za úkol vzít informace z výsledku, např je vynásobit desíti a výsledek bude skóre
        /// </summary>
        private int Skore
        {
            get
            {
                vysledek = vysledek * 10;
                skore += vysledek;

                return skore;
            }
        }
    }
}
 
Odpovědět 14.5.2012 16:23
Avatar
Odpovídá na Flouwie
David Jančík [sczdavos]:

Ahoj,
příště prosím napiš, kde ti program hlásí chybu ať nemusíme hledat.
Co jsem vypozoroval u nahoda netvoříš instanci objektu random:

private Random nahoda = new Random();

a u buben má být počítám

buben = b;
Nahoru Odpovědět 14.5.2012 16:41
Čím více času dostaneš, tím méně ho máš.
Avatar
Flouwie
Neregistrovaný
Avatar
Odpovídá na David Jančík [sczdavos]
Flouwie:

ajo, promiň ;) no, chybu mi to dělá ve Zhodnoceni... výsledky mi to háže: 0, 4, 8, 16...

 
Nahoru Odpovědět 14.5.2012 16:44
Avatar
Odpovídá na Flouwie
David Jančík [sczdavos]:

Mi pošli kód, jak to voláš. Já totiž nevím co to konkrétně má dělat a tak nevím co mám dávat na vstup a očekávat že bude výstupem.

Nahoru Odpovědět 14.5.2012 17:10
Čím více času dostaneš, tím méně ho máš.
Avatar
Flouwie
Neregistrovaný
Avatar
Flouwie:

má z toho být něco takovýhleho...

http://www.webnoviny.sk/…w-potato.jpg

 
Nahoru Odpovědět 14.5.2012 20:57
Avatar
Flouwie
Neregistrovaný
Avatar
Odpovídá na Flouwie
Flouwie:

akorát ty bubny tam budou čtyři a né tři :)

 
Nahoru Odpovědět 14.5.2012 20:57
Avatar
Odpovídá na Flouwie
David Jančík [sczdavos]:

No moc ten algoritmus nechápu každopádně přetečení je způsobeno tím, že v cyklu máš jinačí délku než je délka pole - stačí udělat jednoduchou úpravu -> prohodit ty proměnné.

for (int i = 0; i < buben; i++)
            {
                pomocna++;

                for (int y = 0; y < symboly; y++)
                {
                    if (pomocna == pole[i])
                    {
                        vysledek++;
                    }
                }
            }

Ale ten algoritmus je takové čudné.

Nahoru Odpovědět 15.5.2012 18:53
Čím více času dostaneš, tím méně ho máš.
Avatar
Flouwie
Neregistrovaný
Avatar
 
Nahoru Odpovědět 15.5.2012 21:14
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.