Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Kartenspiel Algorithmus (https://www.delphipraxis.net/15750-kartenspiel-algorithmus.html)

d3g 3. Feb 2004 18:58

Re: Kartenspiel Algorithmus
 
Zitat:

Zitat von Nico1
Aja : for i := 1 to 54 --> sollte for i := 1 to 54 do

Wahr. Ich hab zu viel C programmiert.

Zitat:

Zitat von Nico1
noch was : das s : String kannste auch weglassen :mrgreen:

Auch wahr. Hab's vergessen wegzumachen, als ich aus dem Codebeispiel eine Funktion gemacht hab.

Nico1 3. Feb 2004 18:58

Re: Kartenspiel Algorithmus
 
Eine Frage noch(bin nur so interresiert weil ich auch grad das brauche) aber warum kommt bei mir bis auf eine Herzausnahme NUR KARO?

Nico1 3. Feb 2004 19:00

Re: Kartenspiel Algorithmus
 
Zitat:

Zitat von d3g
Ich bin von einem Pascal-Programmierer ausgegangen, der mit 1 zu zählen beginnt (obwohl 0 oft sinnvoller ist). Random(54) gibt einen Wert zwischen 0 und 53 zurück.


Ich meinte eigentlich das es RANDOM und nicht RANDOMIZE heißt :lol:

Noch was : Karo 9As sollte eigentlich nicht vorkommen (ich sah halt noch nie eien As 0 :mrgreen: )

Tschuldigung das ich mit solche sachen komme aber wie ich schon oben erwähnt habe brauch ich den Code für so eine Funktion und bin dir deshalb sehr dankbar! :oops:

/Edit sorry Moderatoren wegen den Doppelpost war ein Versehen!

d3g 3. Feb 2004 19:08

Re: Kartenspiel Algorithmus
 
Zitat:

Zitat von Nico1
Ich meinte eigentlich das es RANDOM und nicht RANDOMIZE heißt :lol:

Hat mich irgendwer unter Drogen gesetzt? Entweder sind meine Pascal-Kenntnisse total verrottet oder ich merke gar nicht, wie wenig konzentriert ich gerade bin.

Zitat:

Zitat von Nico1
Eine Frage noch(bin nur so interresiert weil ich auch grad das brauche) aber warum kommt bei mir bis auf eine Herzausnahme NUR KARO?

Zufall? Ich kann keinen Fehler finden (aber das heißt ja im Moment nichts).

Zitat:

Zitat von Nico1
Noch was : Karo 9As sollte eigentlich nicht vorkommen (ich sah halt noch nie eien As 0 :mrgreen:)

:?:

Dagon 3. Feb 2004 19:10

Re: Kartenspiel Algorithmus
 
Zitat:

Zitat von Nico1
Eine Frage noch(bin nur so interresiert weil ich auch grad das brauche) aber warum kommt bei mir bis auf eine Herzausnahme NUR KARO?

Du musst im OnCreate der Form noch Randomize hinschreiben.

Nico1 3. Feb 2004 19:11

Re: Kartenspiel Algorithmus
 
Das hab ich aber es geht trotzdem nicht


Aber ich kann sonst nichts finden! :( oder bin ich jetzt zu vertrottelt? :roll: :wall: :gruebel:

d3g 3. Feb 2004 19:16

Re: Kartenspiel Algorithmus
 
Zitat:

Zitat von the_master
Zitat:

Zitat von Nico1
Eine Frage noch(bin nur so interresiert weil ich auch grad das brauche) aber warum kommt bei mir bis auf eine Herzausnahme NUR KARO?

Du musst im OnCreate der Form noch Randomize hinschreiben.

Er hat doch nicht etwa für jeden Funktionsaufruf das Programm neugestartet?

Ich hab übrigens noch einen Fehler gefunden... :roll: Mit 0 zu zählen zu beginnen ist ja doch besser. Jetzt tötet mich, ihr Pascal-Only-Jedis! :wink:

Delphi-Quellcode:
function PickCards(): String;
var
  Picked, i: Integer;
  Cards: set of 1..54;
  s: String;
begin
  Cards := [];
  for i := 1 to 10 do begin
    Picked := Random(54) + 1;
    if (not (Picked in Cards)) then
      Cards := Cards + [Picked];
  end;

  Result := '';
  for i := 1 to 54
    if (i in Cards) then begin
      case ((i - 1) div 13) of
        0: Result := 'Kreuz ';
        1: Result := 'Pik ';
        2: Result := 'Herz ';
        3: Result := 'Karo ';
      end;
      case ((i - 1) mod 13) of
        1:    Result := Result + 'As';
        2..10: Result := Result + IntToStr(i mod 13);
        11:   Result := Result + 'Bube';
        12:   Result := Result + 'Dame';
        0:    Result := Result + 'König';
      end;
    end;
end;

Dagon 3. Feb 2004 19:20

Re: Kartenspiel Algorithmus
 
Zitat:

Zitat von d3g
Er hat doch nicht etwa für jeden Funktionsaufruf das Programm neugestartet?

Ich habe zu erst gepostet, dann erst nachgedacht. :oops:

MikeS 3. Feb 2004 19:23

Re: Kartenspiel Algorithmus
 
deine funktion sieht gut aus aber was machst du für den fall das

(i-1) div 13 = 4 (i-1) mod 13 = 0
und
(i-1) div 13 = 4 (i-1) mod 13 = 1

dafür hast du keine auswertung!

53/13 = 4,...
52/13 = 4,0;

Dagon 3. Feb 2004 19:25

Re: Kartenspiel Algorithmus
 
Ich weiss jetzt wieso immer nur KARO ausgegeben wird! :lol:
Der höchste werd im Set "Cards" ist mit grosser Wahrscheinlich keit immer eine Zahl die x div 13 = 3 geben wird. Da die schleife ja 54 mal ausgefürd wird und eben x div 13 mit gorsser Wahrscheinlichkeit 3 gibt, wird auch immer als Schlussresultat Karo asugegebn.

Ich hoffe man versteht was ich meine.


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

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