Avatar billede mcgoat Nybegynder
11. august 2006 - 10:23 Der er 5 kommentarer og
1 løsning

Noget sat i 1 klasse går videre til en 2 klasse?

Ok ok, måske ikke lige den mest digende overskrift... Men. Jeg skal til at igang med at lave et pokerspil. Er dog ikke kommet så langt endnu er er nu stødt på mit første problem.

Kalder dette i koden:

            Cardcolor D = new Cardcolor();
            Cardcolor H = new Cardcolor();
            Cardcolor C = new Cardcolor();
            Cardcolor S = new Cardcolor();

            lb.Items.Add("D" + D.Getnumber()); //Diamonds
            lb.Items.Add("H" + H.Getnumber()); // Hearts
            lb.Items.Add("C" + C.Getnumber()); // Clubs
            lb.Items.Add("S" + S.Getnumber()); // Spades


Og min klasse:

    class Cardcolor
    {
        static int[] numbers = new int[] { 1,2,3,4,5,6,7,8,9,10,11,12,13,14 };

        public int Getnumber()
        {
            int nr = 0, rndnr = 0;
            Random rnd = new Random(DateTime.Now.Millisecond);
            if(numbers[0] == 0 && numbers[1] == 0 && numbers[2] == 0 && numbers[3] == 0 &&  numbers[4] == 0 && numbers[5] == 0 && numbers[6] == 0 && numbers[7] == 0 && numbers[8] == 0 && numbers[9] == 0 && numbers[10] == 0 && numbers[11] == 0 && numbers[12] == 0 && numbers[13] == 0) return -1;
            while (nr == 0)
            {
                rndnr = rnd.Next(0, 13);
                if (numbers[rndnr] != 0)
                {
                    nr = numbers[rndnr];
                    numbers[rndnr] = 0;
                    Debug.Print("numbers[" + rndnr + "] set to 0");
                    return nr;
                }
                else
                {
                    Debug.Print("Rnd=" + rndnr.ToString() + " - numbers[" + rndnr.ToString() + "]=" + numbers[rndnr].ToString());
                    return -2;
                }
            }
            return -3;
        }
    }



Mit problem er at hvis numbers[3] er blevet sat til 0 i klassen "H", så er den også sat til 0 i de andre klasser "D", "C", "S". Hvorfor?
Avatar billede snakeeye Nybegynder
11. august 2006 - 10:33 #1
det er fordi du har oprettet variablen numbers som static
Avatar billede mcgoat Nybegynder
11. august 2006 - 10:34 #2
eller er der en der har en ide til en bedre måde at lave dette på? At den uddeler er random nr og sørger for man ikke kan få det igen
Avatar billede mcgoat Nybegynder
11. august 2006 - 10:38 #3
jo det løste godt nok problemet, men nu ser det ud til den er ligeglad med:

if (numbers[rndnr] != 0)

for ligemeget hvor mange gange jeg kører den kommer den aldrig ned og returnerer -2
Avatar billede mcgoat Nybegynder
11. august 2006 - 11:44 #4
D'oh.. er selvfølgelig mig der ikke tænker mig om :P tak for hjælpen
Avatar billede snakeeye Nybegynder
11. august 2006 - 12:24 #5
:D glad for jeg kunne hjælpe :D
Avatar billede mcgoat Nybegynder
11. august 2006 - 22:30 #6
var fordi jeg genoprettede objekterne hver gang jeg trykkede på knappen.. hehe.. dummeslag
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester