Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Spiel-Automat (https://www.delphipraxis.net/38251-spiel-automat.html)

Wargrave 16. Jan 2005 19:12


Spiel-Automat
 
Halli Hallo!
Ich melde mich mal wieder nach langer Zeit! Frohes Neues Jhr erstmal.
Ich habe ein Problem...
Ich will einen Spielautomaten programmieren.
Das heißt ich habe drei Felder, in denen jeweils 5 Bilder sind.
Es gibt also 5 images.
Das erste ist eine eins....und so weiter... bis 4 und eins mit Sonne.
Ein Timer soll die Bilder quasi zufallsmäßig wechseln.
Durch einen Start/Stopp Button muss man den Timer starten oder stoppen.
So dass dann auch drei gleiche, drei verschiedene oder so erscheien können.
Also wie kann man mit random-Befehl zufallsmäßig Bilder visible oder so machen?
Mfg Danke schonmal
Patrick

Wuaegner 16. Jan 2005 19:17

Re: Spiel-Automat
 
Hi,
mit randomize; dann mit random(Obergrenze der Zahl) eine Zufallszahl bilden und dann z.B eine case - Abfrage:
Code:
case zahl of
        '1': begin
             Mache BIld so und so da und da hin oder auch nicht ^^
             end;
        '2': begin
             usw.

end;

glkgereon 16. Jan 2005 19:18

Re: Spiel-Automat
 
du könntest eine zufallszahl 1-5 machen für jede zeile und dann sagen

Delphi-Quellcode:
TImage(FindComponent('Image'+IntToStr(Zufallszahl)+'_Spalte1')).Visible:=True;

Wargrave 16. Jan 2005 19:22

Re: Spiel-Automat
 
Hmm vielen Dank aber ich bin absoluter laie!
Also was muss ich noh tun also das mit dem case kenn ich garnet.

Wuaegner 16. Jan 2005 19:32

Re: Spiel-Automat
 
Code:
var zahl: integer;
begin
 randomize;
  zahl:= random(5); // Zahl zwischen -1 und 5 wird erzeugt, also 0,1,2,3 oder 4
  case zahl of
               '0': begin
                    ImageZahl1.visible:= true;
                    end;
               '1': begin
                    ImageZahl2.visible:= true;
                .
                .
                .
               
               '4': begin
                    ImageZahl5.visible:= true;
                    end;  
  end;
end;
[edit] Kommentar korrigiert [/edit]

malo 16. Jan 2005 19:40

Re: Spiel-Automat
 
@Wuagner: Bitte verwende die [delphi] Tags statt den [code] tags ;)

Außerdem kann man bei deinem Code die begins und ends weglassen. Allerdings hast du einen wichtigen Faktor vergessen: du machst mit dem Code nur Images sichtbar, aber keine unsichtbar, wo ja der eigentliche Sinn darin liegt.

Also müssen die begins und ends bleiben, es muss jedoch in jedem von diesen Anweisungsblöcken alle anderen Images unsichtbar gemacht werden ;)

//edit: außerdem hast du als Kommentar geschrieben "eine Zahl zwischen 0 und 5 wird erzeugt" <-- falsch. Es wird entweder eine zwischen -1 bis 5, oder eine von 0 bis 4 erzeugt ;)

paresy 16. Jan 2005 19:45

Re: Spiel-Automat
 
man könnte auch eine TImagelist nehmen und von der die bilder in die einzelenen image controls kopieren. das würde den aufwand mit den vielen images verhindern und da man dort eh nen index hat ist es mit dem random auch ganz einfach :)

kannst ja einfach mal nen wenig nacht Bei Google suchenTImagelist googlen :)

Wuaegner 16. Jan 2005 19:53

Re: Spiel-Automat
 
@malo,
Er kannte die case-Anwendung nicht drum hab ich eine Beispielanwendung geschrieben. Dass man begins und ends bei einzelnen Anweisungen weglassen kann aber nicht muss interessiert hier doch niemanden.
Wie du schon gesagt hast kommen da bei ihm sowieso noch andere Anweisungen rein, also braucht er sie.
Bei "zwischen 0..5" hast du allerdings recht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz