![]() |
Kartenspiel Algorithmus
Tag!
Ich habe ein ziemliches Problem einen Algorithmus zum sortieren eines Kartenspiel zu entwerfen! Es geht in dem Programm darum, dass 10 zufällige Zahlen aus einem Kartenstapel (54 Karten) gezogen werden. Diese Karten müssen nun in der hand des Spielers sortiert werden. Frage: Wie sieht der Algorithmus aus, wenn ich ein Arrayfeld von 54 habe??? :?: :!: :gruebel: MFG Ömmel |
Re: Kartenspiel Algorithmus
Hi!
Geht es dir drum, die 54 Karten zu sortieren, oder nur die 10 gezogenen? Willst du das Ganze mit Delphi machen? (Wenn ja ==> Falsche Kategorie). Ciao fkerber |
Re: Kartenspiel Algorithmus
Delphi-Quellcode:
Sortieralgos gibt's in der CodeLib.
randomize;
... for i := 1 to 10 do Karte := array[random(54)+1]; |
Re: Kartenspiel Algorithmus
Du könntest jeder Karte eine Art ID verpassen (Vielleicht mit einem Type und dann eine Eigenschaft "ID" und damit ein Array). Dann könntest du anhand dieser ID die Karten sortieren.
Man liest sich, Stanlay :hi: |
Re: Kartenspiel Algorithmus
HI
Ich würde es so machen wie Stanley Hanks es beschrieben hat. Alle Karten bekommen eine Nummer wobei die niedrigste Karte die niedrigste Nummer bekommt und die höchste Karte die höchste Nummer. Wenn du nun die Nummern sortierst(Sortierverfahren stehen in der Cod.lib.), dann sind die Karten in aufsteigender Reihenfolge sortiert. |
Re: Kartenspiel Algorithmus
Zitat:
Gruß, Tom |
Re: Kartenspiel Algorithmus
Zitat:
Delphi-Quellcode:
[edit]Zum Sortieren kannst du das Sortier-Tutorial hier aus dem Forum zu Rate ziehen.[/edit]
function PickCards(): String;
var Picked, i: Integer; Cards: set of 1..54; s: String; begin Cards := []; for i := 1 to 10 do begin Picked := Randomize(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 div 13) of 0: Result := 'Kreuz '; 1: Result := 'Pik '; 2: Result := 'Herz '; 3: Result := 'Karo '; end; case (i 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; |
Re: Kartenspiel Algorithmus
Zitat:
[Edit]Cool, ich bin ja Gold-Member :)[/Edit] |
Re: Kartenspiel Algorithmus
Hallo ich will ja jetzt nicht als altklug klingen aber
Picked := Randomize(54) + 1; --> sollte nach meiner meinungnach random(54) heißen oder täusche ich mich :chat: // edit Aja : for i := 1 to 54 --> sollte for i := 1 to 54 do // edit noch was : das s : String kannste auch weglassen :mrgreen: mfg Nico |
Re: Kartenspiel Algorithmus
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 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