Darstellung eines "6 aus 49" Lotto-Scheins
Verfasst: 26.08.2024 20:45
hallo, Versuche einem Lotto Schein darzustellen, und wie es ausschaut habe ich mich verrannt und komme nicht
weiter
Kann mir irgendwer ein Tipp geben oder eine Lösung
Lieben DANK für Hilfe
weiter
Code: Alles auswählen
; Darstellung eines "6 aus 49" Lotto-Scheins
; Konstanten für die Fenster- und Layoutgröße
#WindowWidth = 600
#WindowHeight = 500
#GridColumns = 7
#GridRows = 7
#CellSize = 60 ; Größe jedes Quadrats (60x60 Pixel)
#GridStartX = 50 ; X-Startposition des Gitters
#GridStartY = 50 ; Y-Startposition des Gitters
; Farben definieren
#ColorBackground = $FFFFFF ; Weiß
#ColorGrid = $DDDDDD ; Hellgrau für Gitter
#ColorText = $000000 ; Schwarz für Text
#ColorSelected = $FFCC00 ; Gelb für ausgewählte Felder
; Array zur Speicherung der ausgewählten Felder
Dim selectedNumbers(49)
; Fenster öffnen
If OpenWindow(0, 100, 100, #WindowWidth, #WindowHeight, "Lotto Schein 6 aus 49", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
; Canvas Gadget erstellen, um die Zeichnung zu ermöglichen
CanvasGadget(0, 10, 10, #WindowWidth - 20, #WindowHeight - 20)
; Prozedur zum Zeichnen des Lotto Scheins
Procedure DrawLottoGrid()
If StartDrawing(CanvasOutput(0))
; Hintergrund zeichnen
Box(0, 0, #WindowWidth - 20, #WindowHeight - 20, #ColorBackground)
; Lotto-Felder zeichnen
For row = 0 To #GridRows - 1
For col = 0 To #GridColumns - 1
x = #GridStartX + col * #CellSize
y = #GridStartY + row * #CellSize
number = row * #GridColumns + col + 1
; Überprüfen, ob die Zahl ausgewählt ist
If selectedNumbers(number)
Box(x, y, #CellSize, #CellSize, #ColorSelected)
Else
Box(x, y, #CellSize, #CellSize, #ColorGrid)
EndIf
; Zahlen in die Felder schreiben
DrawText(x + #CellSize/2 - TextWidth(Str(number))/2, y + #CellSize/2 - TextHeight(Str(number))/2, Str(number), #ColorText)
; Wenn alle 49 Zahlen gezeichnet sind, Schleifen abbrechen
If number >= 49
Break 2
EndIf
Next col
Next row
StopDrawing()
EndIf
EndProcedure
; Initiales Zeichnen des Lotto Scheins
DrawLottoGrid()
; Ereignisschleife für die Benutzerinteraktion
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
If EventGadget() = 0 And EventType() = #PB_EventType_LeftClick
; Mausposition ermitteln
MouseX = GetGadgetAttribute(0, #PB_Canvas_MouseX)
MouseY = GetGadgetAttribute(0, #PB_Canvas_MouseY)
; Überprüfen, ob der Klick innerhalb des Gitters liegt
If MouseX >= #GridStartX And MouseY >= #GridStartY And MouseX < (#GridStartX + #GridColumns * #CellSize) And MouseY < (#GridStartY + #GridRows * #CellSize)
col = (MouseX - #GridStartX) / #CellSize
row = (MouseY - #GridStartY) / #CellSize
number = row * #GridColumns + col + 1
; Status der ausgewählten Zahl umschalten
If selectedNumbers(number)
selectedNumbers(number) = 0
Else
selectedNumbers(number) = 1
EndIf
; Lotto-Schein neu zeichnen
DrawLottoGrid()
EndIf
Case #PB_Event_CloseWindow
Break
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf
End
Lieben DANK für Hilfe