![]() |
Würfelspiel
Hallo ich suche einen Code für einen Zufallsgenerator welcher bei einem Buttonklick eines aus 6 verschiedene Bitmaps (z1), (z2) aussucht und dies in einer Form anzeigt.
Für einen Würfel. |
Re: Würfelspiel
Delphi-Quellcode:
dürfte einerseits das erfüllen, was du suchst. Die Funktion Random gibt dir zufallszahlen zurück, durch den Parameter kannst du den Maximalwert setzen (der bei 6 AFAIK 5 is :D )
random(6);
Das mit den Bitmaps anzeigen: Dazu ist die Frage, wie du die Bitmaps lagerst ect. Helfen kann dir dabei der typ ![]() ![]() ![]() Nur schnell ein bsp:
Delphi-Quellcode:
case random(6) of
0: Prozedur_zum_Bitmap_zeigen(z1); 1: Prozedur_zum_Bitmap_zeigen(z1); 2: Prozedur_zum_Bitmap_zeigen(z1); 3: Prozedur_zum_Bitmap_zeigen(z1); 4: Prozedur_zum_Bitmap_zeigen(z1); 5: Prozedur_zum_Bitmap_zeigen(z1); //ect. end; //Edit: Dabei nicht vergessen, am anfang (im OnCreate) den Zufallsgenerator mit Randomize() initialisieren! |
Re: Würfelspiel
Okay danke das mit der random Sache funktioniert.
Mit dem Bitmap anzeigen könnte mir dieser Code weiterhelfen ?
Delphi-Quellcode:
Image.Picture.Graphic := Bitmap; { Grafik durch neues Bitmap ersetzen }
CurrentFile := ''; { Verweist auf unbenannte Datei } Bitmap.Free; Die Bitmaps wollte ich in den Programmordner legen und sie dann in einem TImage anzeigen lassen. |
Re: Würfelspiel
oder
Delphi-Quellcode:
Image1.Canvas.Draw(0, 0, Bitmap);
|
Re: Würfelspiel
Delphi-Quellcode:
Image.Picture.Loadfromfile
|
Re: Würfelspiel
Wenn du sie in den Programmordner legst, kannst du sie entweder direkt laden (Image1.Picture.Bitmap.LoadFromFile('z1.bmp'); ) oder eben vorher in Bitmaps speichern und die dann anzeigen (z.B. Image1.Canvas.Draw(0, 0, z1); )
Falls du deinen Code verwenden solltest, vergiss nicht, das Bitmap vorher zu erstellen (nachdem du es ja nach der Zuweisung freigibst). Ich habe aber leichte Zweifel (ws weil ichs noch nie gesehn hab ;) ) dass dein code nicht funktionieren könnt ;) //Edits: schreibfehler & erkenntnis, dass ich verdammt langsam war :mrgreen: |
Re: Würfelspiel
Delphi-Quellcode:
Funktioniert Danke,
(Image1.Picture.Bitmap.LoadFromFile('z1.bmp');
achja kann ich auch festlegen das das Ergebnis 6 nicht allsooft vorkommt ? |
Re: Würfelspiel
Noch was:
falls du mit dem random() Probleme zwecks der Startreihenfolge hast (0,1,2,3,4,...), dann mach einfach:
Delphi-Quellcode:
dann kommt mind. die zahl "1" raus ;)
random(5)+1
zu dem ergebnis: davor randomize; schreiben, das "mischt" sozusagen alle zahlen durch ;) anosnten hast du immer die gleiche schleife aller zufallsgenerierten zahlen! |
Re: Würfelspiel
Zitat:
![]() |
Re: Würfelspiel
Ich würde beim Programmstart den Zufallsgenerator immer neu intialisieren, weil sonst immer die gleichen
"zufälligen" Zahlen rauskommen. Das kannst du mit
Delphi-Quellcode:
machen
Randomize;
-NIP- |
Re: Würfelspiel
Okay allesdings wnen ich die exe immer im gleichen verzeichnis wie die bitmaps habe ist es doch okay.
Lucky du weist doch das ich ein Noob bin. |
Re: Würfelspiel
Zitat:
Delphi-Quellcode:
MfG
random(6)+1
Binärbaum |
Re: Würfelspiel
Zitat:
setze einfach vor den Dateiname deiner bmps immer extractfilepath(application.exename) |
Re: Würfelspiel
Zitat:
Also etwa so:
Delphi-Quellcode:
deinPfad := ParamStr(0) + 'EinBitmap.bmp';
|
Re: Würfelspiel
Zitat:
Ich meine, ParamStr(0) gibt den kompletten Pfad zur exe zurück. Man müsste also noch ExtractFilePath aufrufen, zumindest mache ich das immer so. |
Re: Würfelspiel
Zitat:
MfG Binärbaum |
Re: Würfelspiel
Zitat:
Als erster Parameter wird immer der Exename inklusive Pfad übergeben. ParamStr(0) holt sich also nix anderes als den ersten Parameter der übergeben wurde, also den Pfad + Exename. -> ExtractFilePath muss davor, um nur den Pfad rauszukriegen ;) PS: Application.ExeName übergibt auch nix anderes als ParamStr(0) :D |
Re: Würfelspiel
Image1.Picture.Bitmap.LoadFromFile('z1.bmp');
Bei mir geht das auf jedem Rechner... Wie kann ich z1.bmp durch eine Edit1 Box ersetzten wo dann der Pfad angegeben werden muss... |
Re: Würfelspiel
Zitat:
Zitat:
Delphi-Quellcode:
:wall:
Image1.Picture.Bitmap.LoadFromFile(Edit1.Text)
|
Re: Würfelspiel
Hi!
Zitat:
Es versagt dann, wenn das "Arbeitsverzeichis" deiner Anwendung geändert wird, z.B. durch die Verwendung eines OpenDialogs, in dem der User dann den Ordner wechselt. Ciao Frederic |
Re: Würfelspiel
@Malo:
Delphi-Quellcode:
:mrgreen:
if ParamStr(0)<>Application.ExeName then Ich.Essen(Besen.Handle);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 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