Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Mensch ärgere dich nicht? (https://www.delphipraxis.net/131727-mensch-aergere-dich-nicht.html)

hellow554 29. Mär 2009 23:52


Mensch ärgere dich nicht?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin moin,

ich versuch grad mal ein kleines schönes SPiel zuprogrammieren. (siese Überschrift)
ich habe es bis jetzt so realisiert, ich habe Panels in der Form angebracht und diese von rechts oben von P1 bis P40 benannt.
Die Panels darauf ebenso aber mit einem x da hinter.

Nun wollt ich fragen, ob ich, wenn gewürfelt wird, immer sagen muss, gehe von z.B. p20 nach P24 oder kann ich auch sagen, geh von p20 nach p21, kurz warten, dann weiter etc, OHNE, dass ich elendige Lange Programmieren muss? Also hat jmd quasi ne Idee dafür?

Danke schon ma :)

Mfg

hellow

jaenicke 30. Mär 2009 00:02

Re: Mensch ärgere dich nicht?
 
Was spricht gegen eine Schleife mit Delay zwischen den Schritten?

Die Frage ist auch wie du die aktuellen Daten speicherst. In Arrays?

Klar ist jedenfalls, dass du dir mit den visuellen Komponenten als Anzeige sehr sehr viel unnötige Arbeit machst, aber das musst du ja wissen.

DP-Maintenance 30. Mär 2009 05:33

DP-Maintenance
 
Dieses Thema wurde von "mkinzler" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Ist ein Delphiprogramm

hellow554 30. Mär 2009 09:19

Re: Mensch ärgere dich nicht?
 
ich hatte es mir ungefähr so gedacht, dass erst einmal alle 4 steinchen von jedem spieler auf einen Platz geschickt werden, indem ich z.B. sage
P1x (also das erste von mir so benannte panel) := 4 (wobei dann die zahlen von eins bis vier für eine Farbe stehn.
Nun dachte ich mir, würfel natürlich randomize und dann random und dann halt eine for to schleife wobei dann aber jedesmal der aktuelle Wert (also in meinen Beispiel P1x) um eins erhöht wird (P2x), eine kurze wartezeit von circa 500ms und dann so weiter bis der würfelwert erreicht wurde.
Weißt du /wisst ihr was ich meine? :?

Mfg

jaenicke 30. Mär 2009 09:40

Re: Mensch ärgere dich nicht?
 
Schon die Anzeige mit Panels ist sehr aufwendig vom Quelltext her. Aber wenn du auch noch die Informationen wo welche Figuren stehen in den Panels speichern willst, dann hast du sehr sehr viel Arbeit vor dir und einfach ist das auch nicht...

Du solltest dein Konzept überdenken. Das Spiel und die Standorte der Figuren usw. haben eigentlich nicht so viel mit der Anzeige zu tun, das sollte getrennt werden.

matashen 30. Mär 2009 10:10

Re: Mensch ärgere dich nicht?
 
Fürs Spielbrett solltest du ein TImage machen und das Spielbrett mit einem zeichenprogramm malen/zeichnen/renedern.

Die Figuren kannst du auch mittels TImage darstellen (und dann immer mit left und top auf den Platz vom Spielfeld bewegen)

Gruß Matthias

guidok 30. Mär 2009 10:45

Re: Mensch ärgere dich nicht?
 
Ich würde auch das Spielfeld als ein Bild zeichnen und auf einem Image anzeigen. Die Figuren würde ich immer, wenn sie neu positioniert werden, neu auf das Grundbild zeichnen/kopieren. Dazu könntest du z.B. zwei Bilder vorhalten; eines das angezeigt wird und ein zweites, das neu gezeichnet wird. Nach dem Neuzeichnen schaltest du zwischen den beiden um. Damit kannst du Flackern vermeiden.

Für die Spielfelder würde ich zunächst mal einen entsprechenden Record deklarieren:

z.B.
Delphi-Quellcode:
 TEinzelfeld = record
   Spieler: Integer; //0=Feld ist unbesetzt, 1=Spieler 1 usw.
   X,Y: Integer; //Koordinate, an der die Spielfigur später gezeichnet wird
 end;
Das gesamte Spielfeld ist dann ein Array [1..?] of TEinzelfeld.

In der Zeichenroutine für das Spielfeld musst du jetzt nur das Array durchgehen und abhängig vom Spieler einen Spielstein in der richtigen Farbe zeichen/kopieren.

matashen 30. Mär 2009 11:58

Re: Mensch ärgere dich nicht?
 
Bei delphi brauchst du kein zweites Bild zum zeichnen, das war gestern
doublebuffered:=true; sollte reichen.


Gruß Matthias

hellow554 30. Mär 2009 13:58

Re: Mensch ärgere dich nicht?
 
:wiejetzt: (ich wollte den schon immer mal benutzen xD)
also um das jetzt mal zu rekapitulieren.

ich sollte ein spielbrett zeichnen und dann? sozusagen immer den spielsteinen sagen wo sie stehn und das mithilfe von arrays??? den teil hab ich nich verstanden xD
sry bin halt bissl dümmer als man annehmen darf

Ich will ja nichma nen kompletten quelltext, sondern das ganze allein machen. Aber halt mal son anstoß ;)

Mfg

AlexII 30. Mär 2009 14:09

Re: Mensch ärgere dich nicht?
 
Ich würde sagen mache es erst mal so wie du es kannst, und dann kannst du das Spiel nach und nach, mit der Zeit und Erfahrung "umbauen". :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 Uhr.
Seite 1 von 2  1 2      

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