Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Kartenspiel (https://www.delphipraxis.net/92487-kartenspiel.html)

.chicken 21. Mai 2007 12:00

Re: Kartenspiel
 
Vorschlag. Lege im Oncreate alle Karten in ein Array, also jede Karte einmal. Und dann mischt du einfach immer bevor du ziehst, indem du zB 1000mal zufällige Karten vertauscht ;-)

Stillmatic 21. Mai 2007 16:14

Re: Kartenspiel
 
Ich hab gerade ein Problem!!

Also ich berechne in einer Function den Gewinn!
Nun möchte ich diesen Gewinn in einer anderen Unit(Hauptunit) nutzen!

Die Hauptunit hat Zugriff auf alle anderen Units, jedoch hat die Unit in der die Funktion ist, die den Gewinn beinhaltet keinen Zugriff auf andere Units!!!

Wie bekomme ich jetzt den Wert des Gewinns in die Hauptunit???
INFO:::

Die Function die den Gewinn beinhaltet liefert keinen integer zurrück, also muss ich mir ja höchst wahrscheinlich eine HilfsFunktion schreiben, aber das Funktioniert dann nicht wirklich!!!

BEISPIEL::::


HIER WIRD DER GEWINN BERECHNET

Code:
FUNCTION BLAHBLAHBLAH : boolean;
{GewinnÜberprüfung}
 Gewinn := 0;
 {Paar1}
 if ((Karten[0] in OwnDeck) or (Karten[1] in OwnDeck)) then
  Gewinn := (Gewinn+(CWinFactors[0] * (Maechtigkeit * UConst.cCardCost)));
 {Paar2}
 if ((Karten[2] in OwnDeck) or (Karten[3] in OwnDeck)) then
  Gewinn := (Gewinn+(CWinFactors[1] * (Maechtigkeit * UConst.cCardCost)));
 {Paar3}
 if ((Karten[4] in OwnDeck) or (Karten[5] in OwnDeck)) then
  Gewinn := (Gewinn+(CWinFactors[2] * (Maechtigkeit * UConst.cCardCost)));
 {Paar4}
 if ((Karten[6] in OwnDeck) or (Karten[7] in OwnDeck)) then
  Gewinn := (Gewinn+(CWinFactors[3] * (Maechtigkeit * UConst.cCardCost)));
 {GroßesLos}
 if (Karten[8] in OwnDeck) then
  Gewinn := (Gewinn+(CWinFactors[4] * (Maechtigkeit * UConst.cCardCost)));
Wie bekomme ich jetzt diesen Gewinn in die Hauptunit???

Apollonius 21. Mai 2007 16:33

Re: Kartenspiel
 
Du kannst deine Funktion so deklarieren: FUNCTION BLAHBLAHBLAH(out gewinn:integer) : boolean;
Das heißt, dass du beim Funktionsaufruf eine Variable mit angeben musst, in die dann der Gewinn reingeschrieben wird. Du musst im Funktionsrumpf einfach Gewinn auf einen bestimmten Wert setzen.

Stillmatic 21. Mai 2007 16:35

Re: Kartenspiel
 
Ich darf die Funktion nicht verändern!!!
Kann man das nicht mit ner getFunktion machen???
Ich probiere es aber es klappt nicht!!

Gremlin 21. Mai 2007 16:52

Re: Kartenspiel
 
@Stillmatic

Wie meinst du das mit der "getFunktion".
Der vernünftigste Weg wäre wie @Apollonius schon meinte über einen Out-Parameter.
Wenn dies bei dir nicht möglich sein sollte, dann kannst du zb. auch den Gewinn in einer
globalen Variable im Interface-Abschnitt speichern und vom Hauptprogramm darauf zugreifen,
ist aber wohl der schlechteste Weg.

Stillmatic 21. Mai 2007 16:54

Re: Kartenspiel
 
Das ist schlecht!!

Ich darf keine globalen Variablen anlegen und die Funktionen nicht verändern!!

mit getGewinn meine ich.....

Das einer Funktion den Wert des Gewinnes übergeben wird???

Gremlin 21. Mai 2007 17:44

Re: Kartenspiel
 
Hab ich mir gedacht, aber wenn du nichts ändern darfst, wie
kannst du dann ein lokale Variable innerhalb einer Funktion zurückgeben.
Was darfst du denn jetzt wirklich ändern?

Stillmatic 21. Mai 2007 17:46

Re: Kartenspiel
 
Ich darf alles ändern ausser die vorgegebenen Funktionen und ich darf keine globalen Variablen anlegen!!!

Gremlin 21. Mai 2007 17:55

Re: Kartenspiel
 
:o und Gewinn ist eine Variable innerhalb der Funktion getGewinn oder ist die eventuell
woanders deklariert. Wäre es möglich die komplette Funktion anzusehen, denn ich kann mir
nicht vorstellen, das eine Funktion zur Gewinnermittlung den Gewinn nicht zurückgeben kann :-D

Stillmatic 22. Mai 2007 12:43

Re: Kartenspiel
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Leutz!!

Ich hab das Programm (als .exe) mal hochgeladen!!
Wenn sich ein paar freiwillige mal zum testen opfern könnten, wäre dies sehr nett!!

Über Meinungen würd ich mich freuen! :lol:

Falls wer die Spielregeln nicht kennt.....

http://de.wikipedia.org/wiki/Schlesische_Lotterie


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:12 Uhr.
Seite 2 von 3     12 3      

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