AGB  ·  Datenschutz  ·  Impressum  







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

Mensch ärgere dich nicht?

Ein Thema von hellow554 · begonnen am 30. Mär 2009 · letzter Beitrag vom 31. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
hellow554

Registriert seit: 30. Mär 2009
Ort: Bargteheide
9 Beiträge
 
#1

Mensch ärgere dich nicht?

  Alt 30. Mär 2009, 00:52
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
Miniaturansicht angehängter Grafiken
delphi_775.png  
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Mensch ärgere dich nicht?

  Alt 30. Mär 2009, 01:02
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
30. Mär 2009, 06:33
Dieses Thema wurde von "mkinzler" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Ist ein Delphiprogramm
hellow554

Registriert seit: 30. Mär 2009
Ort: Bargteheide
9 Beiträge
 
#4

Re: Mensch ärgere dich nicht?

  Alt 30. Mär 2009, 10:19
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
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Mensch ärgere dich nicht?

  Alt 30. Mär 2009, 10:40
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
471 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

Re: Mensch ärgere dich nicht?

  Alt 30. Mär 2009, 11:10
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
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#7

Re: Mensch ärgere dich nicht?

  Alt 30. Mär 2009, 11:45
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.
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
471 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

Re: Mensch ärgere dich nicht?

  Alt 30. Mär 2009, 12:58
Bei delphi brauchst du kein zweites Bild zum zeichnen, das war gestern
doublebuffered:=true; sollte reichen.


Gruß Matthias
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
hellow554

Registriert seit: 30. Mär 2009
Ort: Bargteheide
9 Beiträge
 
#9

Re: Mensch ärgere dich nicht?

  Alt 30. Mär 2009, 14:58
(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
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Mensch ärgere dich nicht?

  Alt 30. Mär 2009, 15:09
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".
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:01 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