AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

LottoTippErstellen

Ein Thema von YXCVBNM1 · begonnen am 1. Sep 2011 · letzter Beitrag vom 2. Sep 2011
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: LottoTippErstellen

  Alt 1. Sep 2011, 23:42
oder TLottoTipp = set of 1..49; (das Gleiche, wie array of Boolean, nur mit einem Achtel an Speicherverbrauch)
Und trotzdem ist das Bool-Array hierbei schicker, da durch einfache Änderung des Arrays auf TLottoTipp = array [1..64] of Boolean; die Klasse immer noch funktioniert.

Und um es ganz flexibel zu gestalten könnte man ein dynamisches Array benutzen und dem Create als Parameter die Anzahl der Tippfelder und Tipps mitgeben

Delphi-Quellcode:
type

  TLottoFeld = class
  private
    FTipp : array of Boolean;
    FMarks : integer;
  public
    constructor Create( AFieldCount, AMarks : integer );
    destructor Destroy; override;
    procedure Reset; // alle Felder zurücksetzen
    procedure FillUp;
  end;
 
procedure TLottoFeld.Reset;
var
  idx : integer;
begin
  for idx := Low( FTipp ) to High( FTipp ) do
    FTipp[ idx ] := False;
end;

constructor TLottoFeld.Create( AFieldCount, AMarks : integer );
begin
  inherited;
  SetLength( FTipp, AFieldCount + 1 );
  FMarks := AMarks;
  Reset;
end;

destructor TLottoFeld.Destroy;
begin
  SetLength( FTipp, 0 );
  inherited;
end;

procedure TLottoFeld.FillUp;
var
  idx, Value : integer;
begin
  Reset;
  for idx := 1 to FMarks do
    begin
      repeat
        Value := Random( High( FTipp ) + 1 );
      until not FTipp[ Value ];
      FTipp[ Value ] := True;
    end;
end;
Jetzt sind die Tipp-Felder allerdings 0 basierend jedoch auch für die Zukunft gerüstet, falls sich beim Lotto mal was ändert
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 1. Sep 2011 um 23:50 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz