Hulp Bij Opdrach AUB C#

Status
Niet open voor verdere reacties.

Blackwolf3004

Nieuwe gebruiker
Lid geworden
26 mei 2011
Berichten
2
Ik ben met een opdracht voor school bezig en aangezien ik volgende week mijn leraar pas wee zie, Hoopte ik dat iemand me met mijn probleem kon helpen.

Ik ben bezig een programma te schrijven voor een lottotrekking.

Nu zit ik alleen helemaal vast op een random.next functie.
Ik krijg elke keer dezelfde getallen. Ik ben bekend met deze bug maar kan hem er maar niet uit krijgen.

ik zal de code van de Class Trekking en het Form laten zien.

Ik weet dat er nog wat andere foutjes in zitten, maar die wil ik er later uit krijgen.

Als iemand mijj hierbij kan helpen zou dat erg fijn zijn.
Ik heb al verscheidene opties geprobeerd maar het lukt me maar niet om maar 1 instantie van het random object te maken, heb het idee dat ik er steeds meerdere aanmaak.
Met vriendelijke groet, M.j.Bischops


Code:
Code van class :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Trekking
{
    class Trekking
    {
        //Datavelden
        private int maxWaarde;
        private int aantalGetrokken;
        private int aantalGewenst = 0;
        private bool isTenEinde;
        private int [] getrokkenGetalllen;
        private Random randomizer = new Random();        

        //Constructoren
        public Trekking(int maxWaarde, int aantal)
        {
            this.maxWaarde = maxWaarde;
            this.aantalGetrokken = 0;
            this.aantalGewenst = aantal;
            getrokkenGetalllen = new int[aantalGewenst];

        }
        //Methoden
        public void TrekGetal()
        {

             int getal = randomizer.Next(0, maxWaarde - 1); 
             getal = getrokkenGetalllen[aantalGetrokken];
             aantalGetrokken++;
            

        }
        public int GeefGetal(int positieA)
        {
            int getal = getrokkenGetalllen[positieA];
            return getal;
        }
        //properties
        
        public int MaxWaarde
        {
            get { return maxWaarde; }
            set { }
        }
        public int AantalGetrokken
        {
            get { return aantalGetrokken; }
            set { }
        }
        public int AantalGewenst
        {
            get { return aantalGewenst; }
            set { }
        }
        public bool IsTenEinde
        {
            get { return isTenEinde; }
            set { }
       }
       
    }
}
CODE van FORM:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Trekking
{
    public partial class Form1 : Form
    {
        Trekking trekking;
        public Form1()
        {
            InitializeComponent();
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            trekking = new Trekking(Convert.ToInt32(textBox1.Text),Convert.ToInt32(textBox2.Text));

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            for(int i = 0;i < trekking.AantalGewenst;i++)
            {
                trekking.GeefGetal(i);
                string t = i.ToString();
                t += t;
                listBox1.Items.Add(t);
            }
            string s = "De Maxwaarde:" + trekking.MaxWaarde + " Het aantalgetrokken:" + trekking.AantalGetrokken + "Het aantal gewenste ballen:" + trekking.AantalGewenst + " is de trekking ten einde ?" + trekking.IsTenEinde;
            listBox1.Items.Add(s);
        }
    }
}
 
Laatst bewerkt door een moderator:
Twee verschillende getallen laten genereren met de klasse Random kan op verschillende manieren

Methode 1

Een lus schrijven die controleert of de twee getallen wel verschillende zijn.

Nadeel: toevallig twee dezelfde getallen na elkaar trekken gaat niet.

Methode 2

Je kan het programma even pauzeren door System.Thread.Sleep(500); te gebruiken. Het programma pauzeert voor 500 milliseconden.

Nadeel: vertraagt de werking van het programma.

Methode 3

Je kan het programma opsplitsen in twee Threads en beide getallen laten genereren.

Nadeel: een beetje geavanceerder.

Methode 4

Je kan een array van integers maken en deze door elkaar shuffelen.
 
Twee verschillende getallen laten genereren met de klasse Random kan op verschillende manieren

Methode 1

Een lus schrijven die controleert of de twee getallen wel verschillende zijn.

Nadeel: toevallig twee dezelfde getallen na elkaar trekken gaat niet.

Methode 2

Je kan het programma even pauzeren door System.Thread.Sleep(500); te gebruiken. Het programma pauzeert voor 500 milliseconden.

Nadeel: vertraagt de werking van het programma.

Methode 3

Je kan het programma opsplitsen in twee Threads en beide getallen laten genereren.

Nadeel: een beetje geavanceerder.

Methode 4

Je kan een array van integers maken en deze door elkaar shuffelen.

Bedank voor je reactie je hebt me alleen verkeerd begrepen.
Ik wil niet 2 random getallen, maar ik wil gewoon 1 random getal en ik loop tegen een bekende bug aan. Maar ik krijg het niet opgelost.
de getallen die de random.next methode genereerd zijn 00 11 22 33 44 enz.
dit komt doordat ik waarschijnlijk meerdere random objecten maak en dan gebruik de methode om een of andere reden de klok op je comp om getal te maken maar dit is niet random. het gaat om de methode TrekGetal(). De opolossing is dat ik zorg dat er maar 1 random object is, maar ik staar me er helemaal kapot op :(.
Zou je me aub een voorbeeld kunnen geven hoe ik dit kan voorkomen in mijn code.
alvast bedank
:)

EDIT : ik ben met intellisence waardes gaan controleren en ik ben gewoon stom sorry dat ik jullie lastig viel ligt helemaal niet aan de random ik ben gewoon stom :)
toch bedank voor interesse in mijn probleem
:)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan