![]() |
Re: Programmiercode verkürzen!
Also ich hatte gestern mit Modulo zoff.
Das dürfte alles erklären :mrgreen: Edit: Zu meiner Verteidigung/Ausrede/whatever -> Ich hab dein Beitrag gar nicht gelesen, ich hab mir nur dein Dreizeiler angesehen und mir gedacht, der will alle Zahlen von 0..10 .. Anschließend kamen die unnötigen Beiträge von mir :P MfG |
Re: Programmiercode verkürzen!
Da Math.Min Inline-Code erzeugen sollte, ergitbt das wohl auch fast das selbe Ergebnis.
Delphi-Quellcode:
Wert := Min(Zufallszahl mod 13, 10);
|
Re: Programmiercode verkürzen!
Insgesamt wäre es mit Funktionen mit Parametern jedenfalls sinnvoller. Was bei der Berechnung passiert ist wegen der globalen Variablen auf den ersten Blick nicht zu sehen, deshalb schreibe ich dazu lieber nix...
Delphi-Quellcode:
// EDIT:
function TForm1.Wertzuordnen(Number: Integer): Integer;
begin Result := Number mod 13; if Result > 10 then Result := 10; end; function TForm1.ZufallszahlErstellen(): Integer; begin Result := Trunc(Random(52) + 1); end; procedure TForm1.Kartenzuordnen(); procedure ImageZuordnen(Image: TImage; var Zufall, Wert: Integer); begin Zufall := ZufallszahlErstellen(); img_Ba1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + 'Karten/' + IntToStr(Zufall) + '.bmp'); Ba1Wert := Wertzuordnen(Zufall); end; begin img_Ba3.Visible := false; img_Sp3.Visible := false; ImageZuordnen(img_Ba1, Ba1, Ba1Wert); ImageZuordnen(img_Ba2, Ba2, Ba2Wert); ImageZuordnen(img_Ba3, Ba3, Ba3Wert); ImageZuordnen(img_Sp1, Sp1, Sp1Wert); ImageZuordnen(img_Sp2, Sp2, Sp2Wert); ImageZuordnen(img_Sp3, Sp3, Sp3Wert); end; @himitsu: Das ist aber auch nicht das selbe. :gruebel: 25 mod 13 = 12 Max(12, 10) = 12 Meinst du Min? Damit sollte es klappen. |
Re: Programmiercode verkürzen!
Zitat:
|
Re: Programmiercode verkürzen!
Zitat:
Zitat:
Delphi-Quellcode:
oder (mit himitsus Einwurf)
Wert := Zufallszahl mod 13;
if (Wert = 0) or (Wert > 10) then Wert := 10;
Delphi-Quellcode:
. (Alles ungetestet.)
Wert := Max(Succ(Pred(Zufallszahl) mod 13), 10);
ÄHM: Min, nicht Max. :oops: |
Re: Programmiercode verkürzen!
Zitat:
Random(x) = Integer also Random liefert schon einen Integer :zwinker: (da muß der Integer nicht erst nach Float konvertiert werden und dann zurück ... Trunc ist ja nicht für Integer da und verlangt einen Float ... ergibt also erstmal eine Implizite Typumwandlung :angel2: )
Delphi-Quellcode:
[edit] man sollte nix nebenbei machen -.-°
function TForm1.ZufallszahlErstellen(): Integer;
begin Result := Random(52) + 1; end; |
Re: Programmiercode verkürzen!
Bei Max kommt aber das falsche heraus, denn Max(12, 10) ist z.B. nicht wie gewünscht 10...
Wegen Trunc: Ja, hab ich nicht drauf geachtet als ich das so gelassen habe. :oops: |
Re: Programmiercode verkürzen!
arg ... Min *geändert hab*
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:01 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