Thema: Bingo Karte

Einzelnen Beitrag anzeigen

Slipstream
(Gast)

n/a Beiträge
 
#11

Nur mal so als Idee

  Alt 1. Jan 2017, 13:49
Man könnte doch auch einfach ein StringGrid nehmen und dort für die amerikanische Variante 5 x 5 Felder oder für die englische Variante 3 x 9 Felder anlegen. In die so entstandenen Zellen schreibt man die Zahlen rein, die man braucht, oder auch einen Jokernamen und kann dann sehr leicht beim Klick auf das StringGrid rausfinden, welchen Wert der Benutzer angeklickt hat. Vor vielen Jahren hab ich das mal so ähnlich bei einem Lottozahlenprogramm gemacht, allerdings mit Grafiken, die beim OnDraw dort reingezeichnet werden. Beim Klick auf eine Zelle wird geprüft, ob die Zelle bereits angeklickt wurde, wenn nein, wird eine zweite Grafik in diese Zelle gemalt, die dunkler ist als Zeichen dafür, dass die aktiviert wurde, und es wird natürlich auch geprüft, wie viele Felder angeklickt werden dürfen je nach Spielart. Das OnClick-Handling sieht dann so aus:
Delphi-Quellcode:
procedure TForm1.StrGrid_SpielDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var
   Zahl : Integer;

begin
  Zahl := SpaltZeilToZahl(ACol,ARow); // in dieser Function wird die Zahl anhand von Spalte und Zeile ermittelt
  if Zahl < 1 then Exit;
  FeldZeichnen(StrGrid_Spiel.Canvas,Rect,Zahl); // diese procedure zeichnet eine bestimmte Grafik in die Zelle
end;
Nun ist Bingo nicht Lotto, hat demnach auch keine feststehende Zahlenreihe von 1-49 und muss da natürlich anders programmiert werden. Man könnte die Zahlenreihe in einem Record speichern, für den man dann ein Array anlegt, nur mal so als Idee.
  Mit Zitat antworten Zitat