Zahlen generieren

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Takashi Kenshin

Betreff: Zahlen generieren

BeitragDo, Okt 18, 2007 15:48
Antworten mit Zitat
Benutzer-Profile anzeigen
hi ich hab jetzt mal zum ausprobieren wie das mit den zahlen generieren funktioniert eine kleinen function dazu geschreiben. wenn ich die function generieren in die Repeat until schlefe packe generiert er (logischerweise) die ganze zeit neue zahlen. deswegen hab ich die function GENERIEREN() vor das repeat gesetzt damit einmal die zahlen generiert werden und dann dort bleiben. aber warum passiert jetzt hier nichts wenn ich es starte?

Code: [AUSKLAPPEN]

AppTitle "Takashi Sudoku"


Graphics 600, 400, 32, 2
ClsColor 150, 0, 0
Cls
SetBuffer BackBuffer()
SeedRnd MilliSecs()
 

Global Button = LoadFont ("X-Files", 19, 1, 0, 0)
Global Zahl = LoadFont ("Arial", 38, 1, 0, 0)
Global Button1 = LoadImage ("Button1.bmp")
Global Button2 = LoadImage ("Button2.bmp")
Global Spielfeld = LoadAnimImage ("Sudoku.bmp", 44, 44, 0, 81)
Global Zahlenfeld = LoadAnimImage ("Zahlenfeld.bmp", 44, 44, 0, 9)
Global Count = 0
Global Modus = 1
Dim Zahlen(9,9)


GENERIEREN()


Repeat


FELDER()
GITTERNETZ()
BUTTONS()
ZAHLENFELD()
ZAHLENEINGEBEN()
ZAHLENUPDATE()


Flip
Until KeyHit(1)


Function FELDER()
j = 0
For i = 0 To 352 Step 44
   For i2 = 0 To 352 Step 44
      DrawImage Spielfeld, i2, i, j
      j = j + 1
   Next
Next


g = 0
For h = 264 To 354 Step 44
   For h2 = 440 To 528 Step 44
      DrawImage Zahlenfeld, h2, h, g
      g = g + 1
   Next
Next
End Function


Function ZAHLENFELD()
Color 0, 0, 0
SetFont Zahl
a = 1
For c = 266 To 356 Step 44
   For b = 453 To 541 Step 44
            Text b, c, a
      a = a + 1
      Next
Next
End Function


Function BUTTONS()
Color 0, 0, 0
SetFont Button
DrawImage Button1, 440, 0
DrawImage Button2, 440, 45
DrawImage Button1, 440, 90
DrawImage Button2, 440, 135
Text 443, 11, "Neues Spiel"
Text 470, 57, "Prüfen"
Text 479, 106, "Hilfe"
Text 463, 151, "Beenden"
End Function


Function GITTERNETZ()
MX = MouseX()
MY = MouseY()
XVGitter = (MX/44) * 44
YVGitter = (MY/44) * 44
Color 150, 0, 0 Rect XVGitter, YVGitter, 44, 44, 1
End Function


Function ZAHLENEINGEBEN()
SetFont Zahl
If MouseHit(1) Then
a = MouseX() / 44
b = MouseY() / 44
If a < 9 And b < 9 Then Zahlen (a, b) = Int (Chr (WaitKey()))
EndIf
End Function


Function ZAHLENUPDATE()
For i = 0 To 8
   For i2 = 0 To 8
      If Zahlen(i, i2) <> 0 Then Text i * 44 + 13, i2 * 44 + 5, Zahlen(i, i2)
      FlushMouse : FlushKeys        
   Next
Next
End Function


Function GENERIEREN()
If KeyHit(60) Then Modus = Modus + 1
   If Modus = 1 Then
      For i2 = 12 To 364 Step 44
         For i = 5 To 357 Step 44
            Text i2, i, Rand(1,9)
         Next
      Next 
   EndIf
If Modus = 3 Then Modus = 1
End Function
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln.
 

ChristianK

BeitragDo, Okt 18, 2007 16:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
warum passiert jetzt hier nichts

Weil du die Zahlen einmal vor der Hauptschleife zeichnest und dann wird wieder drübergemalt, sodass du sie nicht sehen kannst. Also: Speichere die Zahlen in einem Array und gebe sie dann bei jedem Schleifendurchlauf auf dem Bildschirm aus.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

Takashi Kenshin

BeitragDo, Okt 18, 2007 19:15
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm klappt doch nicht ganz.
also: die zahlen in einem array speichern also Dim Zahlen(9,9), weil es 81 zahlen sind

und jetzt weiß ich nicht wie das dann abläuft, das ich sie generieren lasse ist klar das hab ich schon gemacht. nur möchte ich eben das sie nur einmal generiert werden deswegen sollte ich sie in dem array abspeichern. aber wie werden sie abgespeichert und wie werden sie dann wiedergegeben?
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln.
 

BlackTermi

BeitragFr, Okt 19, 2007 8:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine Minute der Suche würde dir bereits helfen:

Blitzbase

Auch das perfekte Beispiel - es werden Zufallszahlen gespeichert und in einer Schleife wieder ausgegeben - genau wie du es brauchst.

TimBo

BeitragFr, Okt 19, 2007 11:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin nicht gerade der Erfahrenste aber ich denke das könnte dir helfen Smile

Code: [AUSKLAPPEN]
Dim Zahl(364,357)


...
Repeat
   For i2 = 12 To 364 Step 44
      For i = 5 To 357 Step 44
         Text Zahl(i2,i)= Rand(1,9)
      Next
   Next
   
Until
...



...Function
For i2 = 12 To 364 Step 44
   For i = 5 To 357 Step 44
      Zahl(i2,i)= Rand(1,9)
   Next
Next
...


also das eine Kommt in die Mainschleife mit klar dem Flip etc. und das andere in die Function Wink

man kann den Dim auch verkleinern wenn man den Step 44 nicht machen würde, da wäre er viel kleiner
Viele Grüße
Intel Core 2 Duo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.
 

Takashi Kenshin

BeitragFr, Okt 19, 2007 11:39
Antworten mit Zitat
Benutzer-Profile anzeigen
nö wenn mans so macht sagt er "not enough parameters" bei der stelle Text Zahl(i2,i), Rand(1,9)
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln.

The_Nici

BeitragFr, Okt 19, 2007 11:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hirn einschalten. Was braucht die Funktion Text?
 

Takashi Kenshin

BeitragFr, Okt 19, 2007 11:46
Antworten mit Zitat
Benutzer-Profile anzeigen
geht trozdem net, das programm startet zwar aber es passiert nichts. ich seh das was ich gezeichnet habe also das feld usw. aber er generiert nicht.
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln.

The_Nici

BeitragFr, Okt 19, 2007 11:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Was geht nicht?
 

Takashi Kenshin

BeitragFr, Okt 19, 2007 12:18
Antworten mit Zitat
Benutzer-Profile anzeigen
ja dieses array und die function waren dazu gedacht 81 zahlen auf meinem sudoku feld wiederzugeben. zahlen die nicht niedriger als 1 sein dürfen und nicht höher als 9. wenn ich jetzt aber das spiel starte funktioniert die steuerung usw. aber es wird nichts generiert d. h. keine 81 zahlen werden angezeigt.

Code: [AUSKLAPPEN]

AppTitle "Takashi Sudoku"


Graphics 600, 400, 32, 2
ClsColor 150, 0, 0
Cls
SetBuffer BackBuffer()
SeedRnd MilliSecs()
 

Global Button = LoadFont ("X-Files", 19, 1, 0, 0)
Global Zahl = LoadFont ("Arial", 38, 1, 0, 0)
Global Button1 = LoadImage ("Button1.bmp")
Global Button2 = LoadImage ("Button2.bmp")
Global Spielfeld = LoadAnimImage ("Sudoku.bmp", 44, 44, 0, 81)
Global Zahlenfeld = LoadAnimImage ("Zahlenfeld.bmp", 44, 44, 0, 9)
Global Modus = 1
Dim Zahlen(9,9)
Dim Zahlgen(364,357)


GENERIEREN()


Repeat


For i2 = 12 To 364 Step 44
   For i = 5 To 357 Step 44
       Text Zahlgen (i2,i), 0, 0 = Rand(1,9)
    Next
Next


FELDER()
GITTERNETZ()
GENERIEREN()
BUTTONS()
ZAHLENFELD()
ZAHLENEINGEBEN()
ZAHLENUPDATE()


Flip
Until KeyHit(1)


Function FELDER()
j = 0
For i = 0 To 352 Step 44
   For i2 = 0 To 352 Step 44
      DrawImage Spielfeld, i2, i, j
      j = j + 1
   Next
Next


g = 0
For h = 264 To 354 Step 44
   For h2 = 440 To 528 Step 44
      DrawImage Zahlenfeld, h2, h, g
      g = g + 1
   Next
Next
End Function


Function ZAHLENFELD()
Color 0, 0, 0
SetFont Zahl
a = 1
For c = 266 To 356 Step 44
   For b = 453 To 541 Step 44
            Text b, c, a
      a = a + 1
      Next
Next
End Function


Function BUTTONS()
Color 0, 0, 0
SetFont Button
DrawImage Button1, 440, 0
DrawImage Button2, 440, 45
DrawImage Button1, 440, 90
DrawImage Button2, 440, 135
Text 443, 11, "Neues Spiel"
Text 470, 57, "Prüfen"
Text 479, 106, "Hilfe"
Text 463, 151, "Beenden"
End Function


Function GITTERNETZ()
MX = MouseX()
MY = MouseY()
XVGitter = (MX/44) * 44
YVGitter = (MY/44) * 44
Color 150, 0, 0 Rect XVGitter, YVGitter, 44, 44, 1
End Function


Function ZAHLENEINGEBEN()
SetFont Zahl
If MouseHit(1) Then
a = MouseX() / 44
b = MouseY() / 44
If a < 9 And b < 9 Then Zahlen (a, b) = Int (Chr (WaitKey()))
EndIf
End Function


Function ZAHLENUPDATE()
For i = 0 To 8
   For i2 = 0 To 8
      If Zahlen(i, i2) <> 0 Then Text i * 44 + 13, i2 * 44 + 5, Zahlen(i, i2)
      FlushMouse : FlushKeys        
   Next
Next
End Function


Function GENERIEREN()
For i2 = 12 To 364 Step 44
   For i = 5 To 357 Step 44
      Zahlgen (i2,i) = Rand(1,9)
   Next
Next
End Function


Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln.
 

BlackTermi

BeitragFr, Okt 19, 2007 13:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist ja auch logisch, du hast jetzt zwar alles in der Hauptschleife, aber die anderen Sachen werden immer noch über die Zahlen gemalt. Mach deine Zahlen hinter die Buttons und was du sonst nach zeichnest und dann sind sie zu sehen, allerdings werden da nicht die von dir erwarteten Zahlen auftauchen da du die Function Text nicht richtig geschrieben hast:


Text
 

Takashi Kenshin

BeitragFr, Okt 19, 2007 13:14
Antworten mit Zitat
Benutzer-Profile anzeigen
ja stimmt es erscheint nur im ersten kästchen ein dicker fetter punkt und sonst nichts.
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln.

TimBo

BeitragFr, Okt 19, 2007 13:15
Antworten mit Zitat
Benutzer-Profile anzeigen
also bei zahl steht ned wo also x, y un isch hab zahlgen geschrieben ^^

sorry
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.
 

Takashi Kenshin

BeitragFr, Okt 19, 2007 13:23
Antworten mit Zitat
Benutzer-Profile anzeigen
also ist jetzt so das wenn ich in die hauptschleife das hier schreibe:

Code: [AUSKLAPPEN]

For i2 = 12 To 364 Step 44
   For i = 5 To 357 Step 44
       Text Zahlgen(i2,i), i2, i, Rand(1,9)
    Next
Next


und jetzt kommt von feld 1 bis 9 runterwärts ein dicker schwarzer balken. tu ich jetzt das Zahlgen(i2,i), raus aus der zeile Text dann generiert er wieder kontinuilrich das heißt in jedem feld rasen dann immer die zahlen von 1 - 9

kann ja mal screenshot schicken.
[img:e8b08a139b]http://[URL=http://www.bilder-hosting.de/show/599PX.html][IMG]http://s3.bilder-hosting.de/tbnl/599PX.jpg[/img:e8b08a139b]
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln.

TimBo

BeitragFr, Okt 19, 2007 14:03
Antworten mit Zitat
Benutzer-Profile anzeigen
mh mach ne IF bedingugng, die reelt das die schleife nur einmal durchgenudelt wird
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.
 

Takashi Kenshin

BeitragFr, Okt 19, 2007 14:09
Antworten mit Zitat
Benutzer-Profile anzeigen
sie wird ja nur einmal gemacht nur nicht richtig. die zahlen werden nur auf der y-achse wiedergegeben nicht auf der x-achse. dafür werden die werte der x-achse mit auf die y-achse gepackt.
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln.
 

BlackTermi

BeitragFr, Okt 19, 2007 14:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast ja auch, zumindest bei deinem letzten besisiel code den text auf der x achse auf 0 positioniert - wenn du das nicht geändert hast ist es kein wunder wenn nichts nach rechts hin (auf der x-achse) geschrieben wird.

? Bzw. ich denke dass das jetzt dein Problem ist, k.A. was du sonst noch wieder gemacht/geändert hast?


@ Intel Core 2 Duo

Wenn du das Problem nichts richtig verstanden hast hilft es niemandem wenn du deine Meinung dazu postet, das verwirrt vorlallem denjenigen der Hilfe braucht.
 

Takashi Kenshin

BeitragFr, Okt 19, 2007 14:43
Antworten mit Zitat
Benutzer-Profile anzeigen
ne ich hab für x,y nicht 0,0 eingesetzt sondern i2,i warte mal ich post noch mal den ganzen code weil ich nicht weiß wie so das so ist:

Code: [AUSKLAPPEN]

AppTitle "Takashi Sudoku"


Graphics 600, 400, 32, 2
ClsColor 150, 0, 0
Cls
SetBuffer BackBuffer()
SeedRnd MilliSecs()
 

Global Button = LoadFont ("X-Files", 19, 1, 0, 0)
Global Zahl = LoadFont ("Arial", 38, 1, 0, 0)
Global Button1 = LoadImage ("Button1.bmp")
Global Button2 = LoadImage ("Button2.bmp")
Global Spielfeld = LoadAnimImage ("Sudoku.bmp", 44, 44, 0, 81)
Global Zahlenfeld = LoadAnimImage ("Zahlenfeld.bmp", 44, 44, 0, 9)
Global Count = 0
Global Modus = 1
Dim Zahlen(9,9)
Dim Zufall(9,9)





Repeat


FELDER()
GITTERNETZ()
GENERIEREN()
BUTTONS()
ZAHLENFELD()
ZAHLENEINGEBEN()
ZAHLENUPDATE()


Flip
Until KeyHit(1)


Function FELDER()
j = 0
For i = 0 To 352 Step 44
   For i2 = 0 To 352 Step 44
      DrawImage Spielfeld, i2, i, j
      j = j + 1
   Next
Next


g = 0
For h = 264 To 354 Step 44
   For h2 = 440 To 528 Step 44
      DrawImage Zahlenfeld, h2, h, g
      g = g + 1
   Next
Next
End Function


Function ZAHLENFELD()
Color 0, 0, 0
SetFont Zahl
a = 1
For c = 266 To 356 Step 44
   For b = 453 To 541 Step 44
            Text b, c, a
      a = a + 1
      Next
Next
End Function


Function BUTTONS()
Color 0, 0, 0
SetFont Button
DrawImage Button1, 440, 0
DrawImage Button2, 440, 45
DrawImage Button1, 440, 90
DrawImage Button2, 440, 135
Text 443, 11, "Neues Spiel"
Text 470, 57, "Prüfen"
Text 479, 106, "Hilfe"
Text 463, 151, "Beenden"
End Function


Function GITTERNETZ()
MX = MouseX()
MY = MouseY()
XVGitter = (MX/44) * 44
YVGitter = (MY/44) * 44
Color 150, 0, 0 Rect XVGitter, YVGitter, 44, 44, 1
End Function


Function ZAHLENEINGEBEN()
SetFont Zahl
If MouseHit(1) Then
a = MouseX() / 44
b = MouseY() / 44
If a < 9 And b < 9 Then Zahlen (a, b) = Int (Chr (WaitKey()))
EndIf
End Function


Function ZAHLENUPDATE()
For i = 0 To 8
   For i2 = 0 To 8
      If Zahlen(i, i2) <> 0 Then Text i * 44 + 13, i2 * 44 + 5, Zahlen(i, i2)
      FlushMouse : FlushKeys        
   Next
Next
End Function


Function GENERIEREN()
If KeyHit(60) Then Modus = Modus + 1
   If Modus = 1 Then
      For i2 = 0 To 8
         For i = 0 To 8
            Text Zahlen(i2, i), i2, i, Rand(1,9)
         Next
      Next
   EndIf
If Modus = 3 Then Modus = 1
End Function
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln.

BladeRunner

Moderator

BeitragFr, Okt 19, 2007 14:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Erklär mir bitte mal in eigenen Worten die Parameter des Befehles Text.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Takashi Kenshin

BeitragFr, Okt 19, 2007 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
naja erst den befehl text dann die y und x koordinate wo eben der text hinsoll und dann noch den textinhalt.
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln.

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group