Delphi-PRAXiS
Seite 3 von 3     123   

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 19:33

Re: Kartenspiel Algorithmus
 
Zitat:

Zitat von MikeS
dafür hast du keine auswertung!

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

Dass da Joker im Spiel sind hab ich auch überhaupt nicht geplant -- bei mir ist 13 * 4 == 54 :wall:. Schön langsam glaube ich an die Drogen-Sache, vor allem weil ich noch einen weiteren dummen Fehler gefunden habe.

Delphi-Quellcode:
type
  TStrArray = array[1..10] of String;

function PickCards(): TStrArray;
var
  Picked, i, count: 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 := '';
  count := 1;

  for i := 1 to 54 do begin
    if (i in Cards) then begin
      if (i - 1 >= 13 * 4) then
        Result[count] := 'Joker'
      else
        case ((i - 1) div 13) of
          0: Result[count] := 'Kreuz ';
          1: Result[count] := 'Pik ';
          2: Result[count] := 'Herz ';
          3: Result[count] := 'Karo ';
        end;
        case ((i - 1) mod 13) of
          0..8: Result[count] := Result[count] + IntToStr((i + 1) mod 13);
          9:   Result[count] := Result[count] + 'Bube';
          10:  Result[count] := Result[count] + 'Dame';
          11:  Result[count] := Result[count] + 'König';
          12:  Result[count] := Result[count] + 'As';
        end;
    count := count + 1;
  end;
end;
Immerhin braucht jetzt nicht mehr hinterher sortiert zu werden.

[edit]Das war der Fehler, den ich meinte, the_master.[/quote]
[edit]Und schon wieder so ein dummer In-Pascal-fängt-man-mit-1-an-zu-zählen-nicht-konsequent-durchgeführt-Fehler[/edit]

Ömmel 4. Feb 2004 14:23

Re: Kartenspiel Algorithmus
 
Eure Beiträge sind echt genial!! Besten Dank, Problem gelöst, Mission erfüllt!!! :dancer:

MFG Ömmel :hi:

Seniman 4. Feb 2004 20:04

Re: Kartenspiel Algorithmus
 
Hallo zusammen,

ich glaube da ist noch ein Fehler in dem Code von d3g. Soweit ich das richtig sehe passiert folgendes: Der Computer zieht 10 mal hintereinander eine Karte. Wenn er sie noch nicht hat, dann nimmt er sie dazu, ansonsten nicht. Was passiert nun, wenn er zweimal die gleiche Karte zieht? Dann müsste er doch eigentlich hinterher nur 9 Karten auf der Hand haben. Oder sehe ich das falsch? Deswegen würde ich eher eine Repeat-Until-Schleife statt einer for-Schleife einbauen.

Grüße
Seniman

d3g 5. Feb 2004 17:14

Re: Kartenspiel Algorithmus
 
Du siehst das richtig. Ich sollte als Strafe aufhören müssen zu programmieren und bis zum Ende meines Lebens dazu verdammt sein, meine Wachphasen im Kunstunterricht zu verfristen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:47 Uhr.
Seite 3 von 3     123   

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