LOTTO spel leren programmeren in Liberty BASIC

Cursussen, tutorials
Plaats hier uw bijdrage.

LOTTO spel leren programmeren in Liberty BASIC

Berichtdoor Gordon » ma sep 03, 2007 3:48 pm

Ik heb mij eens aan het programeren gezet van de eerste les over het lotto spel dat ken je wel is dit programma juist ???
Maar ik heb de indruk dat de RND maar tot 10 gaat en niet tot 42 hoe kan je dit oplossen

Code: Selecteer alles
print " HET LOTTO SPEL "
[getal1]
cls
getal1 = INT (RND(42)*10)+1
if getal1>42 then goto [getal1]
print getal1
[getal2]
getal2 = INT (RND(42)*10)+1
if getal2>42 then goto [getal2]
if getal2 = getal1 then goto [getal2]
print getal2
[getal3]
getal3 = INT (RND(42)*10)+1
if getal3>42 then goto [getal3]
if getal3 = getal1 then goto [getal3]
if getal3 = getal2 then goto [getal3]
print getal3
[getal4]
getal4 = INT (RND(42)*10)+1
if getal4>42 then goto [getal4]
if getal4 = getal1 then goto [getal4]
if getal4 = getal2 then goto [getal4]
if getal4 = getal3 then goto [getal4]
print getal4
[getal5]
getal5 = INT (RND(42)*10)+1
if getal5>42 then goto [getal5]
if getal5 = getal1 then goto [getal5]
if getal5 = getal2 then goto [getal5]
if getal5 = getal3 then goto [getal5]
if getal5 = getal4 then goto [getal5]
print getal5
[getal6]
getal6 = INT (RND(42)*10)+1
if getal6>42 then goto [getal6]
if getal6 = getal1 then goto [getal6]
if getal6 = getal2 then goto [getal6]
if getal6 = getal3 then goto [getal6]
if getal6 = getal4 then goto [getal6]
if getal6 = getal5 then goto [getal6]
print getal6
print""
print" wilt u nog 6 getallen - ( y = ja ----- n = neen )";
input antwoord$
if antwoord$ = "y" then goto [getal1]
if antwoord$ = "n" then goto [end]
[end] cls
print" wilt u toch opnieuw 6 getallen - ( y = ja ----- n = neen )";
input antwoord2$
if antwoord2$ = "y" then goto [getal1]
if antwoord2$ = "n" then goto [fin]
[fin] cls
print""
print""
print""
print""
print " DIT IS HET EINDE DANK U TE SPELEN "


Deze listing komt van Mikadofazant.
De listing heb ik (administrator) onder een nieuwe topic geplaatst.
Overal waar nu staat:
INT (RND(42)*10)+1

moet u wijzigen in:
INT (RND(0)*42)+1

Met dank aan Mikadofazant.
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Berichtdoor Gordon » ma sep 03, 2007 5:59 pm

In het Lotto programma worden zes getallen gekozen.
De getallen mogen slechts één keer per beurt vallen.

De routine om zes unieke cijfers uit een reeks te halen kan op vele
andere manieren buiten de methode van MikadoFazant.

De meeste methoden gaan uit van een rijtje getallen 1-42 die
gesorteerd zijn.
Code: Selecteer alles
DIM a(42)
FOR T = 1 to 42
a(T) = T
Next T


Nu nog even zes getallen kiezen.
Denk ook aan "swappen"

Gordon.
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

UITBREIDING LOTTO SPEL

Berichtdoor mikadofazant » di sep 04, 2007 5:15 pm

IK BEN BEZICH met het lotto spel uit te breiden maar ik zit ergens vast met mijn [loop] kunt u dat eenvoudig oplossen??? ziehier mijn idee

[getal1]
cls
print " HET LOTTO SPEL "
print""
print " wilt u 6 getallen intypen voor te hokken typ ja in"
print " of dat de computer 6 getallen kiest typ ok in "
print " (ja=6 getallen voor te hokken -- ok=computer kiest 6 getallen ) "
print" Uw antwoord = ";
input antwoord4$
if antwoord4$ = "ja" then goto [6getalleninvoeren]
if antwoord4$ = "ok" then goto [verder1]
if antwoord4$ = "ja" then goto [verder2]
[verder4]
cls
print " HET LOTTO SPEL "
print""
[verder1]
[verder2]
getal1 = INT (RND(0)*42)+1
if getal1>42 then goto [getal1]
print" ";
print getal1
[getal2]
getal2 = INT (RND(0)*42)+1
if getal2>42 then goto [getal2]
if getal2 = getal1 then goto [getal2]
print" ";
print getal2
[getal3]
getal3 = INT (RND(0)*42)+1
if getal3>42 then goto [getal3]
if getal3 = getal1 then goto [getal3]
if getal3 = getal2 then goto [getal3]
print" ";
print getal3
[getal4]
getal4 = INT (RND(0)*42)+1
if getal4>42 then goto [getal4]
if getal4 = getal1 then goto [getal4]
if getal4 = getal2 then goto [getal4]
if getal4 = getal3 then goto [getal4]
print" ";
print getal4
[getal5]
getal5 = INT (RND(0)*42)+1
if getal5>42 then goto [getal5]
if getal5 = getal1 then goto [getal5]
if getal5 = getal2 then goto [getal5]
if getal5 = getal3 then goto [getal5]
if getal5 = getal4 then goto [getal5]
print" ";
print getal5
[getal6]
getal6 = INT (RND(0)*42)+1
if getal6>42 then goto [getal6]
if getal6 = getal1 then goto [getal6]
if getal6 = getal2 then goto [getal6]
if getal6 = getal3 then goto [getal6]
if getal6 = getal4 then goto [getal6]
if getal6 = getal5 then goto [getal6]
print" ";
print getal6
if antwoord6getallen$ = "n" then goto [getal1]
if antwoord4$= "ja" then goto [kontrole6getallen]
[computerkiest6getallen]
print" wilt u nog 6 getallen - ( y = ja ----- n = neen )";
input antwoord$
if antwoord$ = "y" then goto [getal1]
if antwoord$ = "n" then goto [verder]
[verder]
print" wilt u 6 getallen intypen voor te hokken - ( y = ja -----n= neen )";
input antwoord6getallen$
if antwoord6getallen$ = "n" then goto [kontrole6getallen]
if antwoord6getallen$ = "y" then goto [6getalleninvoeren]
if antwoord4$= "ja" then goto [kontrole6getallen]
[6getalleninvoeren]
cls
print" u moet nu 6 getallen intypen voor te hokken"
input antwoord1
input antwoord2
input antwoord3
input antwoord4
input antwoord5
input antwoord6
goto [verder1]
[typ6getallen]
[kontrole6getallen]
print""
print" kontrole van uw 6 ingetypte getallen"
print" ";
print getal1;" ";
print antwoord1;
print" ";
if getal1 = antwoord1 then print" bingo " else print " mis he poes "
print" ";
print getal2;" ";
print antwoord2;
print" ";
if getal2 = antwoord2 then print" bingo " else print " mis he poes "
print" ";
print getal3;" ";
print antwoord3;
print" ";
if getal3 = antwoord3 then print" bingo " else print " mis he poes "
print" ";
print getal4;" ";
print antwoord4;
print" ";
if getal4 = antwoord4 then print" bingo " else print " mis he poes "
print" ";
print getal5;" ";
print antwoord5;
print" ";
if getal5 = antwoord5 then print" bingo " else print " mis he poes "
print" ";
print getal6;" ";
print antwoord6;
print" ";
if getal6 = antwoord6 then print" bingo " else print " mis he poes "
if antwoord4$ = "ja" then [verder3]
[verder3]
print" wilt u opnieuw 6 getallen invoeren - ( y = ja ----- n = neen )";
input antwoord3$
if antwoord3$ = "y" then goto [6getalleninvoeren]
if antwoord3$ = "n" then goto [getal1]
[end]
cls
print" wilt u toch opnieuw 6 getallen - ( y = ja ----- n = neen )";
input antwoord2$
if antwoord2$ = "y" then goto [getal1]
if antwoord2$ = "n" then goto [fin]
[fin] cls
print""
print""
print""
print""
print " DIT IS HET EINDE DANK U TE SPELEN "
end


:roll: :roll: dank
mikadofazant
 
Berichten: 22
Geregistreerd: di aug 07, 2007 4:48 pm

Berichtdoor Gordon » di sep 04, 2007 5:45 pm

Oeps... ik heb iets verkeerds (onnauwkeurig) verteld.
INT(RND(x)*42) kan nooit 42 worden.

Probeer maar

for t = 1 to 500
print int(rnd(0)*42)
next

Je zult nu wel enkele nullen aantreffen maar nooit 42.
RND(0) ligt tussen 0 en 1, maar de functie INT( haalt alle cijfers
achter de komma eraf. Dus 1 wordt nooit gehaalt.

Jouw controle
if getal1>42 then goto [getal1]
if getal2>42 then goto [getal2]
enz...
is overbodig.

Sorry, je ziet het ik moet wel (scherp) precies blijven.

Overigens vind ik dat het goed gaat met je programmeren.
Het vertalen van de helpfile schiet ook al aardig op.
Lees de functie RND( maar na.

Gordon
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Berichtdoor Gordon » di sep 04, 2007 5:56 pm

En ik heb het ook nagelezen!!!!!
Foutje (blunder) in de helpfile.

Er staat
Code: Selecteer alles
' print ten numbers between one and ten
  for a = 1 to 10
      print int(rnd(1)*10) + 1
  next a



print ten numbers between one and ten
Ik lees hier (vertaald) tien cijfers TUSSEN één en tien,
maar het programma geeft tien cijfers TUSSEN nul en elf
(exclusief nul en elf)
of zie ik dat verkeerd of ben ik Pietje precies
of zeggen ze dat in het Engels anders?

Gordon
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

waar is de [lloop] mis

Berichtdoor mikadofazant » di sep 04, 2007 7:22 pm

[getal1]
cls
print " HET LOTTO SPEL "
print""
print " wilt u 6 getallen intypen voor te hokken typ ja in"
print " of dat de computer 6 getallen kiest typ ok in "
print " (ja=6 getallen voor te hokken -- ok=computer kiest 6 getallen ) "
print" Uw antwoord = ";
Mijn antwoord was ok
wil nu nog 6 getallen intypen voor te hokken komt er op het scherm
(y=ja----n=neen)
U moet nu 6 getallen intypen voor te hokken
ik typ nu mijn 6 getallen in
?12
?36
?40
?9
?11
?1
na het ingeven toont de computer zijn zes getallen
1
36
25
5
2
11
nu zou het program moeten de vergelijking moeten toonen tussen mijn getallen en de getallen van de computer met daarin de verklaring bingo of de vermelding mis he poes

als je de eerste keer de computer laat kiezen toont hij die vergelijking wel wat zou er mis zijn gehaan?????????????
mikadofazant
 
Berichten: 22
Geregistreerd: di aug 07, 2007 4:48 pm

Berichtdoor Gordon » di sep 04, 2007 7:44 pm

Hallo Mikadofazant,

Je kunt de werking van je programma stap voor stap controleren.
In plaats van het te runnen, kun je het debuggen. Klik nu op
het rode kevertje (bug) en gebruik de stap voor stap mode.

Je zult merken dat je programma nooit bij [getalkontrole] geraakt,
omdat antwoord4$ <> "ja"
Er moet volgens mij altijd gekontroleerd worden, dus
ik zou de voorwaarde antwoord4$ niet stellen.

Overigens is de kans heel klein om een cijfer goed te gokken.
Moet je niet antw1 met alle 6 getallen van de computer vergelijken ...
enz?

Gordon
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Berichtdoor Abcott » wo sep 05, 2007 8:05 am

MikadoF,

Jouw programma doet het bijna helemaal goed.
Nog even debuggen.

Maar je programma kan veel korter geschreven worden.
Het wordt dan niet meer zou eenvoudig van opzet zoals het nu is.
Helaas staan hier in dit forum, nog weinig artikelen over array variabelen.
Die heb je volgens mij nodig als je een dergelijke opgave
goed en snel wilt programmeren.

Probeer alles over (rijtjes, reeksen, series) arrays te lezen
en je programma dan met een andere opzet te programmeren.

Abcott
Avatar gebruiker
Abcott
 
Berichten: 115
Geregistreerd: wo mei 25, 2005 9:58 pm

Hoe kan ik zeer eenvoudig variabelen wegschrijven

Berichtdoor mikadofazant » wo sep 05, 2007 6:12 pm

Dit zou ik nodig hebben voor mijn pc kassa hoe kan ik op een zeer eenvoudige manier variabelen zowel $ als getal varibelen wegsdchrijven op de harde schijf en natuurlijk ook weer terughalen moet ik dan elke input een nieuwe naam geven of kan het ook op een andere mannier graag liefst zo eenvoudig mogelijk graag want ik ben nog maar een beginner

met dank aan wie mij hierbij wil helpen
mikadofazant
 
Berichten: 22
Geregistreerd: di aug 07, 2007 4:48 pm

graag nog eens de eenvoudigste manier voor knoppen

Berichtdoor mikadofazant » wo sep 05, 2007 6:18 pm

Vraag Wat is de eenvoudigste manier om knoppen op een scherm te plaatsen en de knop een opdracht te geven wat hij eigenlijk moet doen en ook hoe ik er knoppen kan bijzetten het liefst zo eenvoudig mogelijk want ik versta er eigenlijk nog niet veel van van dit onderwerp

dank u als ik hiervan een antwoord krijg
mikadofazant
 
Berichten: 22
Geregistreerd: di aug 07, 2007 4:48 pm

Berichtdoor Gordon » wo sep 05, 2007 9:33 pm

Hallo Mikadofazant,

Ik ben een tutorial aan het schrijven over ARRAY's.
Nog even geduld?

Lees alvast alles over ARRAY's in:
De beginners serie (deel 3 en deel 4)

In de Newsletters staan mega veel stukjes over array's,
maar helaas zijn die in het Engels.

Gordon
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: graag nog eens de eenvoudigste manier voor knoppen

Berichtdoor Gordon » wo sep 05, 2007 9:37 pm

mikadofazant schreef:Vraag Wat is de eenvoudigste manier om knoppen op een scherm te plaatsen en de knop een opdracht te geven wat hij eigenlijk moet doen en ook hoe ik er knoppen kan bijzetten het liefst zo eenvoudig mogelijk want ik versta er eigenlijk nog niet veel van van dit onderwerp

dank u als ik hiervan een antwoord krijg


Er zijn 2 soorten knoppen:
button
bmpbutton

Definieer eerst een knop (alle knoppen)
De knoppen die nog niet op het scherm mogen staan kun je verbergen
met het commando "hide"

Alle genoemde onderwerpen zijn reeds vertaald.

Gordon.
p.s. Na de tutorial geef ik wel een kleine demo.
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am


Keer terug naar Leren programmeren met Liberty BASIC

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast

cron