Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Schulprojekt: Spiel "Domino" programmieren! (https://www.delphipraxis.net/146695-schulprojekt-spiel-domino-programmieren.html)

He4dnut 25. Jan 2010 15:23


Schulprojekt: Spiel "Domino" programmieren!
 
Hallo zusammen!
Ich habe mich ganz frisch angemeldet, da aktuell die Projektarbeit unseres Informatikkurses beginnt. Diese geht über ca. 5 Wochen. Ziel des Projektes ist es eben, eigenständig ein Programm, bzw. Spiel, zu programmieren. Wir haben uns jetzt für das Spiel "Domino" entschieden, ja, das mit den bekannten Dominosteinen ;)

Kurz zu dem Spiel:
Es gibt eine bestimmte Anzahl von den Dominosteinen. Diese Dominosteine haben zwei Seiten, mit jeweils Augenzahlen von 0 bis 4 (für den Anfang). Die Steine werden unter den beiden Spielern aufgeteilt, jedoch nicht alle! Ein Stein wird als Anfangsstein vor die Spieler gelegt. Ein Spieler beginnt und legt einen passenden Stein an eine Seite des Anfangssteines. Ein Stein passt, wenn er auf einer hälfte die selbe Augenzahl wie eine hälfte des Anfangssteines hat. Mit dieser Seite wird der Stein darangelegt. Der nächste Spieler ist an der Reihe. Wenn ein Spieler keinen passenden Stein hat, muss er einen unverteilten Stein ziehen, oder aussetzten, wenn diese bereits alle weg sind. Ein Spieler hat gewonnen, wenn er all seine Steine angelegt hat.

Ich stehe jetzt noch ganz am Anfang. Wir hatten vor, ganz geplant an die Sache ran zugehen. Also dass wir im Vornherein Sachen wie Variablenzuordnung etc bereits bestimmen.
Meine Frage an euch bezieht sich jetzt darauf, wie ich genau anfangen soll. Ich kann mir bisher noch überhaupt nicht konkret vorstellen, wie ich das Spiel programmieren soll. Fakt ist, wir brauchen "2-Seitige" dominosteine. Welches Objekt wähle ich für diese Steine ansich am Besten aus? Buttons? Und dann könnte man diese ja mit zwei Variablen x und y meinetwegen benutzen. Jedem Stein werden diese Variablen zugeordnet. Für einen Stein mit den Augenzahlen 1 und 4 würde man dementsprechend seine Variablen zuordnen. Aber wie kann man einem "Stein" überhaupt Variablen zuordnen? Dann stelle ich mir das so vor, dass der Stein, an den man anlegen muss, bzw die Steinkette ja auch zwei Enden mit x und y hat. Also müsste das Programm überprüfen, ob ein x- oder y-Wert mit dem vom Spieler ausgewählten Stein übereinstimmt, also ob sie die gleiche Augenzahl haben. Ist dieses der Fall kann der Stein angelegt werden. Also wenn man z.B. die 1er Seite eines Steines anlegt, und dieser Stein auf der anderen Seite die Zahl 4 hat, so ist die neue Zahl 4, für die der andere Spieler einen passenden Stein haben muss. Also: wie kriege ich dieses Abgleichen hin, und das "Anlegen" ansich?

Ich bin mir sicher, ich werde noch auf mehrere Fragen stoßen. Leider bin ich noch sehr unerfahren im Programmieren und habe so gut wie keine Ahnung über diese endlos vielen Möglichkeiten. Allgemeine Ahnung vom Programmieren habe ich allerdings schon. Also haben wir z.B. einen Taschenrechner und Umrechnungs-hilfen programmiert im Unterricht.

Ich hoffe ihr könnt mir helfen!
MfG Philip

Wolfgang Mix 25. Jan 2010 15:57

Re: Schulprojekt: Spiel "Domino" programmieren!
 
Erstmal herzlich willkommen in der DP :dp:

Ich bin mir sicher, daß Du hier richtig aufgehoben bist und Hilfe bekommst!
Wenn Du mit Deinen Grundüberlegungen fertig bist, zeige uns 'mal ein bißchen
Code und Stellen, wo es zu haken beginnt.

Grüß

Wolfgang

ryLIX 25. Jan 2010 18:06

Re: Schulprojekt: Spiel "Domino" programmieren!
 
Für die Steine könntest du eine eigene Klasse erstellen die von TObject abgeleitet ist.
Eventuell könntest du die Steine selber zeichnen mit GDI oder mit der G32 Lib.
eigenlich müsstest du nur die Punkte jeweils zeichnen weil der Stein ist ja immer gleich.

hoika 25. Jan 2010 19:25

Re: Schulprojekt: Spiel "Domino" programmieren!
 
Hallo,

TStringGrid mit Grid.Cells[Col,Row]:= '1' .. '4'

Im OnDrawCell wird dann je nach Nummer ein bestimmtes Bild gemalt.


Heiko

mkinzler 25. Jan 2010 19:31

Re: Schulprojekt: Spiel "Domino" programmieren!
 
Dann wäre vielleicht ein TDrawGrid noch besser

hoika 25. Jan 2010 19:37

Re: Schulprojekt: Spiel "Domino" programmieren!
 
Hallo,

da fehlt aber das Cells,
d.h. die Datenhaltung muss man selbst machen
(OK, muss man eh ;) ).


Heiko

mkinzler 25. Jan 2010 19:38

Re: Schulprojekt: Spiel "Domino" programmieren!
 
Die Visualisierung erfolgt eh in einer der späteren Phasen

Sir Rufo 25. Jan 2010 19:43

Re: Schulprojekt: Spiel "Domino" programmieren!
 
Als erstes würde ich empfehlen: "Nicht alles auf einmal machen!"

Teile das Projekt ein:
- Objekte
- Eingabe
- Logik
- Ausgabe

Die Objekte solltet ihr gemeinsam erstellen (so hattest du ja auch geschrieben), denn diese bilden die Basis für eure weiteren Arbeiten, die dann aufgeteilt werden können.

Stellt erst mal zusammen, was ihr alles braucht:

- Dominosteine
- Spielfeld
- Spieler
- etc.

und dann was diese einzelnen Teile für Eigenschaften aufweisen müssen/sollen.

Erst dann sollte das Objekt-Grundgerüst erstellt werden.

Und dann geht man an die weiteren Aufgaben.
Dann kommen erst die Fragen nach "Wie zeichne ich das?"

He4dnut 25. Jan 2010 20:02

Re: Schulprojekt: Spiel "Domino" programmieren!
 
Hallo, erstmal danke für die schnellen Antworten, doch leider muss ich Sie soweit enttäuschen, dass ich mit Begriffen wie DrawGrid etc. nichts anfangen kann :(

An Sir Rufo:
Deine Herangehensweise halte ich für richtig. Nur auch dazu Fragen: Was genau verstehst du unter Objekten, Eingabe, Logik und Ausgabe?

Die Dominosteine habe ich bereits in Paint gezeichnet und spaßhalber mit TImage in die Form eingefügt. Ob mir das was bringt, weiß ich noch nicht.

Ich muss jetzt leider ganz schnell weg. Vielen Dank nochmal und bis morgen hoffentlich ;)

MfG Philip

Sir Rufo 25. Jan 2010 20:35

Re: Schulprojekt: Spiel "Domino" programmieren!
 
Objekte: Dominosteine, Spieler, Spielfeld, etc.
Eingabe: ja, die Eingabe von Daten halt :mrgreen:, sonst spielt das Programm nur mit sich selbst
Logik: Was ist erlaubt uns was nicht, darf Spieler 1 jetzt seinen Zug machen, darf DER Dominostein dahin gelegt werden
Ausgabe: Die grafische Aufarbeitung des Ganzen

Meines Erachtens bringt es nix wenn ihr jetzt schon lustig versucht irgendwelche Sachen auf den Bildschirm zu bringen. Das ist zwar kurzweilig, hilft euch für das Projekt nur sehr bedingt weiter.

Für die ersten Schritte braucht ihr keinen Computer, sondern nur Papier und Stift und lustiges Brainstorming.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:41 Uhr.
Seite 1 von 4  1 23     Letzte »    

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