Das gute alte Lotto
Übersicht

Mr HoppBetreff: Das gute alte Lotto |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
Hier mal ein Lotto-Code(ohne Superzahl). Ich hätte nicht gedacht, das das doch so kompiliziert sein kann, is dementsprechend gut komentiert. Code: [AUSKLAPPEN] Graphics 800, 600, 32, 1
SetBuffer BackBuffer() SeedRnd(MilliSecs()) ;Alles nötige, globale deklarieren Global Arial_Gross = LoadFont("Arial", 40) Global Arial_Normal = LoadFont("Arial", 20) Dim z(6) Dim Tipp(6) ;Start der Hauptschleife Repeat Cls y = 200 ;Dient zur Platzierung des Textes ;Die 6 Zahlen abfragen (Was wird getippt?) For i = 0 To 5 ;Diese Schleife wird solange wiederholt, bis die gewählte Zahl akzeptabel ist Repeat Cls error = 0 ok = 0 y_2 = 200 ;Diese Schleife schriebt alles schon bestehende an For j = 0 To 5 If Tipp(j) > 0 And Tipp(j) < 50 Then Text 325, y_2, "Sie Tippen: "+Tipp(j) y_2 = y_2 + 25 Next Flip ;Und nun kommt die eigentliche Abfrage Locate 325, y Tipp(i) = Input("Sie Tippen: ") l = i + 1 For k = 0 To 4 If Tipp(l) = Tipp(i) Then error = 1 Tipp(i) = 0 EndIf l = l + 1 If l > 5 Then l = 0 Next If error = 0 Then ok = 1 Flip Until Tipp(i) > 0 And Tipp(i) < 50 And ok = 1 y = y + 25 Next ;Abfrage beendet Losen;Erklärt sich von selbst ^^ ;Überprüft, wieviele Treffer entstanden sind For i = 0 To 5 For j = 0 To 5 If Tipp(i) = z(j) Then richtige = richtige + 1 Next Next ;Diese Schleife gibt die Infos aus x1 = -200 x2 = 1000 Repeat Cls Text x1, 50, "Sie haben getippt: "+Tipp(0)+"|"+Tipp(1)+"|"+Tipp(2)+"|"+Tipp(3)+"|"+Tipp(4)+"|"+Tipp(5), 1 Text x2, 100, "Und haben "+richtige+" Richtige", 1 x1 = x1 + 1 x2 = x2 - 1 Zeichne_Kugel(125,300,z(0)) Zeichne_Kugel(225,300,z(1)) Zeichne_Kugel(325,300,z(2)) Zeichne_Kugel(425,300,z(3)) Zeichne_Kugel(525,300,z(4)) Zeichne_Kugel(625,300,z(5)) Flip Until x1 = 400 And x2 = 400 Locate 250, 500 nochmal$ = Input("Nochmal(Ja/Nein): ") If nochmal$ <> "Ja" And nochmal$ <> "JA" And nochmal$ <> "ja" Then End ;Sollte "nochmal$" die Bedingungen erfüllt haben wird hier alles nötige genullt For i = 0 To 5 Tipp(i) = 0 Next SetFont Arial_normal Cls Flip Forever ;------------------------------------------------------------------------------------------- Function Losen() For i = 0 To 5;Natürlich, 6 zahlen Repeat error = 0 z(i) = Rnd(1,49);Zahl auswählen... ;...Und auf Einzigartigkeit prüfen k = i + 1 For j = 0 To 4 If Tipp(k) = Tipp(i) Then error = 1 k = k + 1 If k > 5 Then k = 0 Next Until error = 0 Next x = 125 y = -50 ;Und hier fliegen die Kugeln rein, setzen auf, hopsen hoch und fallen wieder runter For i = 0 To 5 Repeat Cls Zeichne_Kugel(x, y,z(i)) y = y + 3 If z1_a <> 0 Then Zeichne_Kugel(125,300,z(0)) If z2_a <> 0 Then Zeichne_Kugel(225,300,z(1)) If z3_a <> 0 Then Zeichne_Kugel(325,300,z(2)) If z4_a <> 0 Then Zeichne_Kugel(425,300,z(3)) If z5_a <> 0 Then Zeichne_Kugel(525,300,z(4)) If z6_a <> 0 Then Zeichne_Kugel(625,300,z(5)) Flip Until y > 300 bewegen# = 1.5 Repeat Cls Zeichne_Kugel(x, y,z(i)) y = y - bewegen# bewegen# = bewegen# - 0.025 If z1_a <> 0 Then Zeichne_Kugel(125,300,z(0)) If z2_a <> 0 Then Zeichne_Kugel(225,300,z(1)) If z3_a <> 0 Then Zeichne_Kugel(325,300,z(2)) If z4_a <> 0 Then Zeichne_Kugel(425,300,z(3)) If z5_a <> 0 Then Zeichne_Kugel(525,300,z(4)) If z6_a <> 0 Then Zeichne_Kugel(625,300,z(5)) Flip Until bewegen# < 0.3 bewegen# = 1.5 Repeat Cls Zeichne_Kugel(x, y,z(i)) y = y + bewegen# bewegen# = bewegen# -0.025 If z1_a <> 0 Then Zeichne_Kugel(125,300,z(0)) If z2_a <> 0 Then Zeichne_Kugel(225,300,z(1)) If z3_a <> 0 Then Zeichne_Kugel(325,300,z(2)) If z4_a <> 0 Then Zeichne_Kugel(425,300,z(3)) If z5_a <> 0 Then Zeichne_Kugel(525,300,z(4)) If z6_a <> 0 Then Zeichne_Kugel(625,300,z(5)) Flip Until bewegen# < 0 y = - 50 x = x + 100 If i = 0 Then z1_a = 1 If i = 1 Then z2_a = 1 If i = 2 Then z3_a = 1 If i = 3 Then z4_a = 1 If i = 4 Then z5_a = 1 If i = 5 Then z6_a = 1 Next End Function ;-------------------------------------------------------------------------------------------- ;Ich denke, hier muss man alles verstehen können Function Zeichne_Kugel(x, y, Nr) SetFont Arial_Gross Color 255, 255, 255 Oval(x, y, 75, 75) Color 0, 0, 0 Text x+37.5, y+37.5, Nr, 1, 1 Color 255, 255, 255 End Function |
||
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
der Code ist schon lustig, aber so viel Mühe hättest du dir nicht machen müssen. Da gibt es einige Sachen zu verkürzen! Außerdem können bei der Ziehung zwei gleiche Zahlen gezogen werden... Ich hab mal selber so ein Spiel gebastelt, ich hoffe du verzeihst mir, aber ich konnte es einfach nicht lassen ![]() Code: [AUSKLAPPEN] Graphics 280,320,32,2
SeedRnd MilliSecs() SetBuffer BackBuffer() AppTitle "...:: LOTTO ::..." Dim tipp(5) Dim gewinnkugel(5) Dim kugel#(5,1) Repeat Cls If zustand = 0 Then ;Wahlfeld einblenden For y=0 To 6 For x=0 To 6 If RectsOverlap(mousex(),mousey(),1,1, x*40,y*40,40,40) Then gewaehlt = 1 nummergewaehlt = (x+(y*6)+y)+1 Else gewaehlt = 0 EndIf Color 255,255,255 Rect x*40,y*40,40,40,gewaehlt Color 255-gewaehlt*255,255-gewaehlt*255,255-gewaehlt*255 Text x*40+20,y*40+20,(x+(y*6)+y)+1,1,1 If MouseHit(1) Then For i=0 To 5 If nummergewaehlt=tipp(i) Then nichtwaehlen = 1 Next If nichtwaehlen = 0 then tipp(getippt)=nummergewaehlt getippt = getippt + 1 Else nichtwaehlen = 0 EndIf EndIf Next Next For i=0 To 5 If tipp(i) Then Text i*56- (i*3),295,tipp(i) EndIf Next If getippt >= 6 Then zustand =1 ElseIf zustand = 1 Then ;Kugeln zufällig wählen lassen If kugelngelost=0 then For i=0 To 5 Repeat gewinnkugel(i) = Rand(49) nichtwaehlen = 0 If i>0 then For j=0 To i-1 If gewinnkugel(i) = gewinnkugel(j) Then nichtwaehlen = 1 EndIf Next EndIf Until nichtwaehlen = 0 nichtwaehlen = 0 Next For i=0 To 5 For j=0 To 5 If tipp(i) = gewinnkugel(j) Then treffer = treffer + 1 Next Next For i=0 To 5 getipptstring$ = getipptstring + ("["+tipp(i)+"] ") Next kugelngelost = 1 EndIf kugel(fallendekugel,0) = kugel(fallendekugel,0) + .2 kugel(fallendekugel,1) = kugel(fallendekugel,1) + kugel(fallendekugel,0) If kugel(fallendekugel,1) > 230 Then kugel(fallendekugel,1) = 230 kugel(fallendekugel,0) = kugel(fallendekugel,0) * (-0.3) aufprall = aufprall + 1 EndIf If aufprall = 2 Then aufprall = 0 If fallendekugel < 5 Then fallendekugel = fallendekugel + 1 Else Color 255,255,255 Text 140,10,"Taste drücken",1,0 Text 140,50,"Ihr Tipp:",1,0 Text 140,65,getipptstring,1,0 For i = 0 To 5 Color 255,255,255 Oval i * 52, kugel(i,1), 20, 20, 1 Color 0,0,0 Text i*52+10,kugel(i,1)+10,gewinnkugel(i),1,1 Next Color 255,255,255 Text 140,90,treffer+" Richtige"+(string("r",treffer=1))+"!",1,0 Flip WaitKey End EndIf EndIf For i = 0 To 5 Color 255,255,255 Oval i * 52, kugel(i,1), 20, 20, 1 Color 0,0,0 Text i*52+10,kugel(i,1)+10,gewinnkugel(i),1,1 Next Color 255,255,255 Text 140,50,"Ihr Tipp:",1,0 Text 140,65,getipptstring,1,0 EndIf Flip Until KeyHit(1) End |
||
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax |
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nich schlecht... | ||
![]() |
KabelbinderSieger des WM-Contest 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
Aber bei Lotto können doch eigentlich keine Zahlen Doppelt vorkommen. Ich hatte mal die 45 bei deinem Code doppelt, Mr Hopp. Ich fänd mal so'n Lotto Simulator Cool, wo echt diese ganzen Bälle erst gemischt werden und dann die irgendwo reinrollen und dann die ersten 6 gewählt werden. Wie in echt halt. Und alles Physikalisch korekt. Das wär doch mal cool. |
||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dann viel Spaß beim proggen ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group