AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kein ENDE

Ein Thema von B1acka5s77 · begonnen am 20. Mär 2008 · letzter Beitrag vom 21. Mär 2008
Antwort Antwort
B1acka5s77

Registriert seit: 16. Mär 2008
2 Beiträge
 
#1

Kein ENDE

  Alt 20. Mär 2008, 22:53
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Kein ENDE

  Alt 20. Mär 2008, 22:56
Ohne zu wissen, was dein Programm genau macht, ist eine Hilfestellung kaum möglich.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Kein ENDE

  Alt 20. Mär 2008, 23:04
Zitat von B1acka5s77:
Also bräucht ich ein Befehl, der das einmalige verteilen der 8 Karten für die Spieler ermöglicht???
  PortionOutJustOneTime(Player); 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...

Spaß bei Seite, wie mkinzler schon schrieb, ohne weitere Informationen (sprich Quelltext) von Dir tappen alle im Dunkeln.
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
B1acka5s77

Registriert seit: 16. Mär 2008
2 Beiträge
 
#4

Re: Kein ENDE

  Alt 20. Mär 2008, 23:12
Zitat von mkinzler:
Ohne zu wissen, was dein Programm genau macht, ist eine Hilfestellung kaum möglich.
Was willst du da denn wissen???

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;
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Kein ENDE

  Alt 21. Mär 2008, 00:03
ich seh da keine if-Abfrage auf anz_sp
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Kein ENDE

  Alt 21. Mär 2008, 00:07
Ohhh, was ist denn das für ein wirrer Quelltext? Der lässt sich bei Dir kompilieren?

Ich vermute, dass Du nur eine Auswahl Deines Quelltextes gepostet hast, den entscheidenden Teil natürlich nicht. In sofern
Zitat von Dunkel:
ohne weitere Informationen (sprich den kompletten Quelltext) von Dir tappen alle im Dunkeln.
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Kein ENDE

  Alt 21. Mär 2008, 06:35
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!
  Mit Zitat antworten Zitat
21. Mär 2008, 09:46
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Multimedia" verschoben.
Delphi-Frage
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:43 Uhr.
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