Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Lotto en generator (6/42)  (gelezen 9126 keer)

0 leden en 1 gast bekijken dit topic.

Offline Diezel

  • Oplosser
  • ****
  • Berichten: 508
  • Geslacht: Man
  • Meedenker - Initiatief nemen - Helpen oplossen...
Lotto en generator (6/42)
« Gepost op: 08 april 2007, 06:51:37 »
Beste leden

Ik heb vannacht een werkende lottogenerator in elkaar gestoken.

Het probleem hierbij is de getal volgorde.

Ik heb de code om te sorteren maar ik kreeg een probleem met  IsGesorteerd = Sorteren(GetallenLijst, 0, 5)

De sorteer code is in een ander project getest geweest en is goed. Die code werd door Dizzl tot stand gebracht. ;)

Wie kan de sorteercode integreren.

Diezel
OS: Windows 10 Home - 64 bit
Processor:  Intel(R) Core(TM) I7 - 4770 CPU 3,40 GHZ
SSD - RAM: 500 GB, 16 GB
SOFTWAREPAKKET: Office 2007

Offline dizzl

  • Ambassadeur
  • *****
  • Berichten: 2.346
  • I've Upped my standards,now,up yours!
Re: Lotto generator (42)
« Reactie #1 Gepost op: 08 april 2007, 09:29:56 »
Geen zin dat eens in VB of c# te proberen?
Systeem  : Intel Core i5-4440 3.1Ghz, 3.1GHz 16Giga Ram 64Bits
Software : Windows 10 professional, Avira, Office 2016 Professional

Offline Diezel

  • Oplosser
  • ****
  • Berichten: 508
  • Geslacht: Man
  • Meedenker - Initiatief nemen - Helpen oplossen...
Re: Lotto generator (42)
« Reactie #2 Gepost op: 08 april 2007, 10:29:12 »
Ben nog steeds op zoek naar vb6, bij ma3d is dat tot versie 4. Was die lusstructuur goed? Na de grote vakantie ga ik een module vb net volgen in geel.

Ik zou het kunnen gedaan krijgen in acces denk ik, maar het vergt heel wat tijd om het foutloos te krijgen,
om het programma te kunnen debuggen.


Diezel
OS: Windows 10 Home - 64 bit
Processor:  Intel(R) Core(TM) I7 - 4770 CPU 3,40 GHZ
SSD - RAM: 500 GB, 16 GB
SOFTWAREPAKKET: Office 2007

Offline buckfast_beekeeper

  • Volledig lid
  • **
  • Berichten: 165
  • Geslacht: Man
Re: Lotto generator (42)
« Reactie #3 Gepost op: 08 april 2007, 12:10:54 »
Ben nog steeds op zoek naar vb6, bij ma3d is dat tot versie 4. Was die lusstructuur goed? Na de grote vakantie ga ik een module vb net volgen in geel.

Ik zou het kunnen gedaan krijgen in acces denk ik, maar het vergt heel wat tijd om het foutloos te krijgen,
om het programma te kunnen debuggen.


Diezel
Hoi,

In bijlage mijn werkje.

Even enkele tips om je code wat overzichtelijker en leesbaarder te maken.
  • Begin een variabele steeds met het type. intVar1 as integer, dblVar2 as double, strTekst1 as string. Zo weet je verderop in je code nog direct welk type je hebt. Ook als je dan bijvoorbeeld int typt en je neemt dan ctrl spatie krijg je (in 2003 toch) alles wat aan de criteria voldoet. Wees ook consequent in je naamgeving. Doe het van in het begin zodat het een gewoonte wordt. Doe het ook consequent bij wat oefeningskes.
  • Spring je code in bij elke loop, elke if of elke nieuwe sub. Zo blijft veel duidelijker wat de scope is.
    voorbeeld
    private sub jawadde()
            Do While intTeller < intArrLengte
            ' random cijfer bepalen
            intRandom = CInt(Rnd() * intMaxWaarde + 1)
            If (IsUniek(arrInt, intRandom)) Then
                  arrInt(intTeller) = intRandom
                  intTeller = intTeller + 1
            End If
        Loop

    end sub

    dit is veel overzichtelijker dan het volgende
    private sub jawadde()
    Do While intTeller < intArrLengte
    ' random cijfer bepalen
    intRandom = CInt(Rnd() * intMaxWaarde + 1)
    If (IsUniek(arrInt, intRandom)) Then
    arrInt(intTeller) = intRandom
    intTeller = intTeller + 1
    End If
    Loop
    end sub


Offline dizzl

  • Ambassadeur
  • *****
  • Berichten: 2.346
  • I've Upped my standards,now,up yours!
Re: Lotto generator (42)
« Reactie #4 Gepost op: 08 april 2007, 12:20:55 »
'nog' een vbtje...maar nu wordt het wel tijd om de zon op te zoeken :-)

Citaat
Ben nog steeds op zoek naar vb6, bij ma3d is dat tot versie 4. Was die lusstructuur goed? Na de grote vakantie ga ik een module vb net volgen in geel.

Die VB express is niet slecht hé...en gratis ;-)
Systeem  : Intel Core i5-4440 3.1Ghz, 3.1GHz 16Giga Ram 64Bits
Software : Windows 10 professional, Avira, Office 2016 Professional

Offline Diezel

  • Oplosser
  • ****
  • Berichten: 508
  • Geslacht: Man
  • Meedenker - Initiatief nemen - Helpen oplossen...
Re: Lotto generator (42)
« Reactie #5 Gepost op: 08 april 2007, 12:39:41 »
Buckfast beekeeper,

Dit was zeer goed, enkel de +1 resulteerde in een lottogetal 43 na een x aantal trekkingen

intRandom = CInt(Rnd() * intMaxWaarde) '+1


Voor het overige was het weer eens een goede happy end. Ik zou rekening houden met uw feedback ivm de syntax.

Nog een leuke paasdag, in Antwerpen schijnt de zon vollop.

Vriendelijke groet,

Diezel
OS: Windows 10 Home - 64 bit
Processor:  Intel(R) Core(TM) I7 - 4770 CPU 3,40 GHZ
SSD - RAM: 500 GB, 16 GB
SOFTWAREPAKKET: Office 2007

Offline buckfast_beekeeper

  • Volledig lid
  • **
  • Berichten: 165
  • Geslacht: Man
Re: Lotto generator (42)
« Reactie #6 Gepost op: 08 april 2007, 13:16:46 »
intRandom = CInt(Rnd() * intMaxWaarde) '+1

Ja na wat meer testen blijk je inderdaad gelijk te hebben.  :-[

Dit is dus weer 1 van de verschillen van VBA met andere programmeer talen. Normaal geeft een random getal een waarde tussen 0 en 0.99.....  Om een 0 te vermijden moet je dan 1 bijtellen. Ook weer wat geleerd dus.

Offline Diezel

  • Oplosser
  • ****
  • Berichten: 508
  • Geslacht: Man
  • Meedenker - Initiatief nemen - Helpen oplossen...
Re: Lotto generator (6/42)
« Reactie #7 Gepost op: 08 april 2007, 17:08:07 »
Een vraagje:

Is dat met de functie timer in combinatie met random om het draaiende effect in getallen te geven? zoals bij de machines in een casino bijvoorbeeld.

Of wordt er een vertrager ingebouwd

Dizzl, jou project met de msgBox is ook leuk.

Diezel
OS: Windows 10 Home - 64 bit
Processor:  Intel(R) Core(TM) I7 - 4770 CPU 3,40 GHZ
SSD - RAM: 500 GB, 16 GB
SOFTWAREPAKKET: Office 2007

Offline buckfast_beekeeper

  • Volledig lid
  • **
  • Berichten: 165
  • Geslacht: Man
Re: Lotto generator (6/42)
« Reactie #8 Gepost op: 08 april 2007, 20:07:00 »
Hallo Diezel,

Een timer met random zal niet voldoende zijn denk ik. De snelheid zal zo hoog liggen dat de cijfers niet eens herkenbaar zijn. Ik denk dat je na elk cijfer een zeer korte pauze moet inlassen. Zeg maar een halve seconde of zo. De pauze tijd kan je best experimenteel vast stellen.

Het makkelijkste zal het werken met een apart label voor het getal dat getrokken wordt. Zo kan het andere label niet gaan flikkeren. Dat kan wel eens gebeuren als je een label echt snel wijzigt.

Laat na het trekken het getal nog enkele seconden zien waarna je het weg schrijft, al of niet gesorteerd, naar het out label.

Daarna

Offline Diezel

  • Oplosser
  • ****
  • Berichten: 508
  • Geslacht: Man
  • Meedenker - Initiatief nemen - Helpen oplossen...
Re: Lotto generator (6/42)
« Reactie #9 Gepost op: 08 april 2007, 22:26:02 »
Dit is eventueel voor de afwerking.

Ik heb een oud projectje van lotto terug van stal gehaald, bewerkt en verbeterd waar ik vroeger een paar hints en verbeteringen van dizzl heb gekregen.

Het is als volgt:

7 tekstboxen voor de getallen tijdens de lottotrekking op televisie in te vullen en 7 tekstboxen om met 1 druk op de knop te sorteren en gesorteerd weer te gevenen, en als laatste weg te schrijven in een tblLottotrekkingen.

7 listboxen om het typewerk uit handen te nemen en de lottocijfers te selecteren.

Dit alles is tot hiertoe geslaagd.

Het volgende wens ik dan een historiek van de getrokken cijfers bij te houden. De historiek (lottotrekkingen)is downloadbaar van bij lotto zelf.

De kunst van hierbovenstaande bestaat erin om per cijfer het getrokken aantal te kennen.

Als laatste wens ik dan ook dat een lottogebruiker zijn cijfers met 1 druk op de knop een query kan oproepen om te zien hoeveel juiste cijfers, de lottogebruiker heeft kunnen raden.

Samenvatting:

Er is al een generator, en we kunnen de getrokken lottocijfers probleemloos geordend wegschrijven in de tabel. Nu dien ik nog de historiek en de hoeveel juiste er wat op te vinden. Maar ik denk dat het gaat lukken, dat is temiste al een motivatie om verder te werken.

Vriendelijke groet,

Diezel.

OS: Windows 10 Home - 64 bit
Processor:  Intel(R) Core(TM) I7 - 4770 CPU 3,40 GHZ
SSD - RAM: 500 GB, 16 GB
SOFTWAREPAKKET: Office 2007

Offline buckfast_beekeeper

  • Volledig lid
  • **
  • Berichten: 165
  • Geslacht: Man
Re: Lotto en generator (6/42)
« Reactie #10 Gepost op: 09 april 2007, 18:05:51 »
Hallo Diezel,

Als het mooi gedaan is, geeft elke tekstbox enkel de getallen die nog niet getrokken werden. Dit is trouwens niet zo moeilijk te implementeren. Zelfs met 1 listbox kan je reeds werken. Controleer welke tekstbox werd ingevuld. Of hou een teller bij en in een case vul je de juiste tekstbox in.

Welke velden heeft tblLottotrekkingen?
Wat heb je zeker nodig? Een id, 1 cijfer, een boolean voor reserve getal en een datum.
Dat ze gesorteerd worden weg geschreven is van geen enkel belang. Eén van de basissen van databanken is dat de volgorde van de records of de volgorde van de velden van geen belang mag  zijn. Een query die dan zoekt op datum, flgReserve= false, laat je sorteren. Dan zoek je op datum flgReserve=true en je reservegetal komt er uit. Met wat testen moet dit in 1 query kunnen denk ik. Wil je dan bepaalde cijfers tellen doe je een count where getal=waarde en je hebt het aantal maal dat een cijfer reeds uitkwam. Werk je in 7 kolommen moet je elke rij doorzoeken en dan samentellen.

Wil je de eigen lotto controleren zal je in een andere tabel je eigen cijfers moeten bijhouden.

Weer wat stof tot denken.


Offline Diezel

  • Oplosser
  • ****
  • Berichten: 508
  • Geslacht: Man
  • Meedenker - Initiatief nemen - Helpen oplossen...
Re: Lotto en generator (6/42)
« Reactie #11 Gepost op: 09 april 2007, 21:28:24 »
Heb ondertussen de interface afgekregen om je eigen lottonummers te beheren, de invoer bestaat uit de keuze tussen manueel en het genereren van lottocijfers.
In een keuzelijst zie je de persoonlijke nummers gerangschikt en gesorteerd. Als je dan in de keuzelijst klikt, wordt de rij lottogetallen verwijderd uit de tabel. Er is ook aandacht besteed aan invoercontrole, je kan enkel nummerieke waarden selecteren. er zijn er altijd bij die proberen hé. Ook bij bepaalde acties worden de vakken vergrendeld en waar nodig terug ontgrendeld. Het gebruik van de knoppen go, reset, wissen en sluiten zijn op de acties afgesteld(Visible true of false). Ook is er veel aandacht besteed aan het gebruiksgemak en uitstraling van het formulier.

De basis is rond om eigen lottonummers te beheren, nu is de 2de stap de controle, aantallen, reeds getrokken.
Hierin is het ook goed weten wat je doet. In elk geval ga ik van de basis een kopij opslaan. Uit het verleden deed ik dat te weinig tot wanneer je een fout hebt gemaakt die onherstelbaar is. Het project begint al wat profesioneel te worden.

Ik ga verder proberen, als ik er niet aan uit kan zal ik niet verlegen zijn om uw hulp in te roepen.


Diezel
OS: Windows 10 Home - 64 bit
Processor:  Intel(R) Core(TM) I7 - 4770 CPU 3,40 GHZ
SSD - RAM: 500 GB, 16 GB
SOFTWAREPAKKET: Office 2007

Offline Diezel

  • Oplosser
  • ****
  • Berichten: 508
  • Geslacht: Man
  • Meedenker - Initiatief nemen - Helpen oplossen...
Re: Lotto en generator (6/42)
« Reactie #12 Gepost op: 10 april 2007, 18:47:57 »
Hier een probeersel ivm de comboboxen.(selectie lottogeltallen)

Heb 2 comboboxen als voorbeeeld m.n Getal1,getal2
Als ik een getal uit de eerste combobox heb geselecteerd mag in de combobox2 voor getal2, getalwaarde uit de combobox1 mag dan niet voorkomen. om zodoende dubbels te vermijden.

De comboboxen worden gevuld door een lusstructuur

Buckfast beekeeper,

Ik weet niet dat het voorbeeld in bijlage aan de regels van de kunst of aan de verwachtingen van uw laatste topic van Lotto en generator (6/42)  voldoen.


Begin het een beetje te begrijpen maar nog beperkt om de code tot een goed einde te brengen.

Wie kan mij helpen om het voorbeeld in bijlage evt te verbeteren.

Vriendelijke groet,

Diezel


In bijlage het voorbeeld.
OS: Windows 10 Home - 64 bit
Processor:  Intel(R) Core(TM) I7 - 4770 CPU 3,40 GHZ
SSD - RAM: 500 GB, 16 GB
SOFTWAREPAKKET: Office 2007

Offline dizzl

  • Ambassadeur
  • *****
  • Berichten: 2.346
  • I've Upped my standards,now,up yours!
Re: Lotto en generator (6/42)
« Reactie #13 Gepost op: 10 april 2007, 19:49:47 »
ik vul de lijst van getal2 pas  op al getal1 gekozen is.
zie vb
Systeem  : Intel Core i5-4440 3.1Ghz, 3.1GHz 16Giga Ram 64Bits
Software : Windows 10 professional, Avira, Office 2016 Professional

Offline buckfast_beekeeper

  • Volledig lid
  • **
  • Berichten: 165
  • Geslacht: Man
Re: Lotto en generator (6/42)
« Reactie #14 Gepost op: 10 april 2007, 22:24:03 »
Hallo Diezel,

Vandaag even te "Busy" om alles nog te bekijken. Zal het in de volgende dagen zeker nog wel doen en iets maken dat ik ongeveer in mijn gedachten heb.

Wat dizzl schrijft is eigenlijk wel een logica. Vul de 2de box pas als het eerste getal "getrokken" is. Dan vul je direct met de cijfers die nog nodig zijn. Anders moet je ze weer verwijderen.

Ik zou de 2de box (en volgende natuurlijk) vullen met een lus waar je alle getallen uit combobox 1 haalt Met een if vermijd je dat het laatst getrokken cijfer in de volgende box komt te staan. Doe je het niet op deze manier, moet je een array met getrokken getallen bijhouden en in een lus zien of het toegevoegde cijfer nog niet getrokken is. Dit gaat onnodig vertragen. Bij het vullen van het reserve getal zal je deze array reeds 6 keer moeten doorlopen.

Persoonlijk zou ik een getrokken getal ook direct naar de db schrijven. Als je de cijfers "Live" invult, kan je nadien ook nog nagaan in welke volgorde de getallen getrokken zijn. Werk je niet "Live" is dit niet van belang.

 


www.combell.com