![]() |
Kein ENDE
Servus!!!
Hab ein Problem mit meinem Kartenspiel(UNO): Ich gebe jedem Spieler jeweils 8(anz_sp=8) zufällige Karten aus dem ARRAY. Die restlichen Karten werden zufällig auf den Nehstapel verteilt. Es wird auch bei jedem legen einer Karte die Anzahl um eins verringert(anz_sp:=anz_sp-1)!! Aber wenn die anz_sp=0 ist möcht ich per showmessage('Gewonnen') ausgeben, doch anstatt Delphi dies tut, bekommt der Spieler nochmals 8 Karten ohne Wert, Farbe oder Funktion!!! Also bräucht ich ein Befehl, der das einmalige verteilen der 8 Karten für die Spieler ermöglicht??? Danke |
Re: Kein ENDE
Ohne zu wissen, was dein Programm genau macht, ist eine Hilfestellung kaum möglich.
|
Re: Kein ENDE
Zitat:
Delphi-Quellcode:
Zu finden ist diese Methode in der Klasse TPlayer, diese befindet sich in der Unit PlayerUnit - also musst Du diese noch in den uses einbinden... :roll:
PortionOutJustOneTime(Player);
Spaß bei Seite, wie mkinzler schon schrieb, ohne weitere Informationen (sprich Quelltext) von Dir tappen alle im Dunkeln. |
Re: Kein ENDE
Zitat:
Ich brauch eigentlich nur ein Befehl, der nur EINMAL die Karten für den Spieler zuordnet. Das zuordnen usw. hab ich ja schon programmiert, aber es gibt kein Gewinner. Durch anz_sp=8 wird am Anfang die Kartenanzahl festgelegt und wenn der Spieler eine Karte legt wird diese um 1 verringert anz_sp:=anz_sp-1!!! Aber wenn die Kartenanzahl des nach einigen legen 0 ist, dann werden im Memofeld 8 Karten ohne Farbe,Wert oder Funktion ausgegeben, obwohl er dank des Befehls ' If anz_sp=0 then showmessage('Gewonnen') ' Gewonnen ausgeben soll!!![delphi]unit Unit1; |
Re: Kein ENDE
ich seh da keine if-Abfrage auf anz_sp :gruebel:
|
Re: Kein ENDE
Ohhh, was ist denn das für ein wirrer Quelltext? Der lässt sich bei Dir kompilieren? :gruebel:
Ich vermute, dass Du nur eine Auswahl Deines Quelltextes gepostet hast, den entscheidenden Teil natürlich nicht. In sofern Zitat:
|
Re: Kein ENDE
OK, mal was Grundsätzliches:
du speicherst deine Karten in einem Array. Das ist aber ungeschickt, da man die Karten in einer Liste speichern sollte. Du hast eine Hauptliste mit allen Karten und jeder Spieler hat seine eigene Liste. Vielleicht gibt es auch noch eine "Pot"-Liste; das hängt vom Kartenspiel ab. Wenn nun Karten verteilt werden, wird aus der Hauptliste zufällig eine Karte gezogen, aus der Hauptliste entfernt und in die Spielerliste eingefügt. Mit diesem Konzept werden sich viele Dinge vereinfachen! Die Kartenliste kannst du von TList oder TObjectList ableiten. Du müsstest deinen ganzen Sourcecode wegwerfen und neu anfangen, aber das lohnt sich! |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Multimedia" verschoben.
Delphi-Frage |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:02 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