Entwickler-Ecke

Sonstiges (Delphi) - Suche leicht zurealisierendes Program (Spiel)


superfly1989 - Mi 09.10.13 08:24
Titel: Suche leicht zurealisierendes Program (Spiel)
Hallo,
ich bin Schüler eines Gymnasium und muss jetzt in Info ein Programm erstellen was wie eine Art Abschlussarbeit werden soll,ich muss aber dazu sagen das ich nicht wirklch Fit bin in diesem Fach also wäre es sinnvoll das dieses Programm nicht allzu schwer ist wenn nicht sogar sehr leicht. Es geht der Lehrerin nicht um ein super tolles Spiel oder Programm sondern die Umsetzung ist ihr wichtig.

Ich hoffe ihr könnt mir helfen.

Danke Robert


Nersgatt - Mi 09.10.13 08:29

Willkommen in der Ecke! :welcome:

Na, da ist doch die Auswahl Recht groß. Schau Dich bei den Klassikern um.
Pong, TicTacToe, 4 Gewinnt, Käsekästchen, Galgenraten, etc...

Je nachdem wie viel Zeit Du hast mit oder ohne Computergegner. Oder als Netzwerkversion.


superfly1989 - Mi 09.10.13 08:39

Hallo,
und Danke.
Ja gut ich finde die Idee mit TicTacToe gut nur gibt es eins der Varianten was umsetzungstechnisch total einfach ist?

Grüße Robert


Nersgatt - Mi 09.10.13 08:40

Die Regeln von TicTacToe sollten ja klar sein. Was meinst Du da mit Varianten?


superfly1989 - Mi 09.10.13 08:47

Ne ich meinte ob es noch andere Spiele gibt die sehr einfach sind, ich stell mir gerade bei TICTACTOE die visuelle Umsetzung total schwer vor.


Nersgatt - Mi 09.10.13 08:50

Ich finde TicTacToe jetzt nicht wirklich kompliziert. Das Spielfeld besteht ja nur aus 9 Feldern. Beim Klick auf ein Feld musst Du nur ein Kreuz oder Kreis anzeigen (je nachdem, welcher Spieler am Zug ist). Dazu noch die Prüfung, ob einer der Spieler gewonnen hat. Das war es dann ja schon so im Groben.

Du musst Dir halt überlegen, welches Steuerelement geeignet wäre, um ein Feld auf dem Spielfeld darzustellen.


superfly1989 - Mi 09.10.13 08:53

Mit Steuerelement meinst du da wie es angezeigt werden soll?
Da wäre ja ein Gitternetz mit 9 Kästchen am sinnvolsten. Nur sowas habe ich noch nicht gemacht.
Unsere Lehrerin war sehr lange Krank und da hatten wir leider immer nur irgendwelche Sachen ohne aufwändige visuelle Ausgabe.


Nersgatt - Mi 09.10.13 08:57

Ein Gitternetz wäre sicher eine gute Möglichkeit. Da gäbe es das TStringGrid.
Wenn man es ganz simpel machen will, könnte man auch 9 Textfelder auf die Form legen und ein X oder O darin anzeigen.
Die Möglichkeit mit dem TStringGrid fände ich hübscher. Da musst Du Dich vielleicht etwas in den Verwendung einlesen (F1).


superfly1989 - Mi 09.10.13 09:00

ok von einem Tstringrid habe ich schonmal gehört.
Wie wäre es denn mit dem Gegner, wenn ich gegen eine reele Person spiele müsste ich ja nur realisieren das der Gegner eine Kreuz oder Kreis setzen kann, aber wenn es gegen den Comp. sein soll, wird es wohl um einiges schwerer.


Nersgatt - Mi 09.10.13 09:06

Dann mach doch erst mal eine Version wo Du mit 2 menschlichen Spielern spielst. Das ist ja relativ einfach und Du hast eine Version, die so lauffähig ist und die Du abgeben könntest.

Und dann schaust Du mal, ob Du noch Zeit übrig hast. Wenn ja, kannst Du Dich ja daran machen, das zu verfeinern. Du könntest den Computergegener nachrüsten. Oder eine Highscoreliste. Sorg halt dafür, dass Du Zwischenstände hast, die so für sich funktionieren und die Du abgeben könntest, wenn Dir die Zeit davon läuft.


superfly1989 - Mi 09.10.13 09:11

Ja ok ,ich versuche mal so eine Version zu bauen, ich habe noch ca. 6 Wochen Zeit. Wenn ich eine Frage habe werde ich mich mal wieder melden. Danke aufjedenfall


Mathematiker - Mi 09.10.13 09:50

Hallo,
user profile iconsuperfly1989 hat folgendes geschrieben Zum zitierten Posting springen:
Unsere Lehrerin war sehr lange Krank und da hatten wir leider immer nur irgendwelche Sachen ohne aufwändige visuelle Ausgabe.

Bei solchen Aussagen bekomme ich immer Probleme. Ja, ja, die Lehrer! :twisted:
Ihr bekommt doch nur Aufgaben, die ihr auch erfüllen könnt! Also bitte nicht auf die Lehrer schieben.

Zum Thema Tic-Tac-Toe: Einen Computergegner zu programmieren ist nicht trivial. Dafür brauchst Du schon einige Kenntnisse. Ich vermute daher, dass das nichts wird. Ansonsten ist die Idee eines Tic-Tac-Toes schon schön.

Alternative Vorschläge:
1. ein "Fang"-Spiel: ein Kreis (evtl. TShape) springt timergesteuert im Formular hin und her. Mit einem Mausklick muss der Kreis erwischt werden. Die Geschwindigkeit des Timers und die Größe des Kreises können verändert werden. Die Anzahl der Versuche wird gezählt.

2. "Türme von Hanoi": die drei Türme von Hanoi werden mit evtl. 5 Scheiben dargestellt (TPaintbox oder auch mehrere TShape). Mit der Maus wird die zu verschiebende Scheibe ausgewählt und ebenso die Zielstange.
Die Anzahl der Versuche wird gezählt. Das Problem ist, dass Du prüfen musst, ob die jeweilige Scheibe den Regeln entsprechend umgelegt werden kann, usw...

3. "Galgenraten": in einer Liste/Listbox (unsichtbar machen) werden evtl. 50 Begriffe abgelegt. Einer wird per Zufall ermittelt und für jeden Buchstaben ein Zeichen (z.B. #) angezeigt. Die Eingabe der Buchstaben geht über eine Edit-Zeile oder aber (aufwendiger) über 26 Schalter für jeden Buchstaben. Die Schalter haben den Vorteil, dass Du sie unsichtbar machen kannst, wenn ein Buchstabe gewählt wurde. Erneut werden die Versuche gezählt.

4. "Reflexion einer Kugel": Ein Kreis bewegt sich im Formular (Winkel 45° !!!) und wird an den Rändern reflektiert. Mit einem mit der Maus verschiebbaren Balken (TPanel, TShape) wird versucht die Kugel zu erreichen.
usw. usf.

Beste Grüße
Mathematiker


Delphi-Laie - Fr 11.10.13 15:58

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Zum Thema Tic-Tac-Toe: Einen Computergegner zu programmieren ist nicht trivial. Dafür brauchst Du schon einige Kenntnisse.


Denn letztlich muß man dabei künstliche Intelligenz hineinprogrammieren. Kenntnisse benötigt man dabei eigentlich nur der Spielregeln, die Spiellogik in Form der künstlichen Intelligenz ist freie intellektuelle Kreativität - und zwar was für eine!

Ich diskutierte einmal vehement, ich glaube, daß es in diesem Forum war, mit welchen, die ganz stolz "Blatt-Stein-Schere" (oder ähnlich bezeichnet) programmiert zu haben glaubten. Das einzige, was fast alle dieser Enthusiasten dabei tatsächlich programmierten, war der formale Spielablauf, nur einer wertete die Benutzereingaben rudimentär statistisch aus. Denn das Spiel benötigt interne Intelligenz, wenn der Computer ein nennenswerter Gegner sein soll, das bedeutet, das er auch zu gewinnen beabsichtigt. Wenn man jedoch gegen einen reinen Zufallsgenerator "spielt", dann kann man ebensogut einen Würfel oder eine Münze werfen - totlangweilig, und eine echte, erkämpfte Gewinnchance hat man dabei ebensowenig wie der Computer.

Simpler ist es deshalb, nur ein Spiel zu programmieren, das man mit sich selbst spielt - man programmiert damit nur die Emulation der Spielumgebung, der Spielgrundlagen, z.B. Spielbrett und Spielfiguren, und eben nichts in bezug auf den Spielverlauf. Ich programmierte seinerzeit - in den 90ern - das schwedische Steckhalma, auch Solitär / Solitaire (nicht zu verwechseln mit dem gleichnamigen Kartenspiel) erfolgreich. Oder man programmiert ein Spiel, bei dem zwei Leute ein Spielfeld benutzen. Sollte man dabei aber die Überwachung der Spielregeln mit hineinprogrammieren wollen, hat es allein das schon bei komplexeren Spielen (Mühle, Halma, Schach, Dame, Go usw.) teilweise heftig in sich.


Delete - Fr 11.10.13 19:58

Crosspost [http://forum.delphi-treff.de/index.php?page=Thread&threadID=59193]


Jann1k - Sa 12.10.13 11:02

Künstliche Intelligenz ist für TicTacToe schon ganz schön hoch gegriffen, ein einfacher Suchbaum reicht ja schon bei der Handvoll an Möglichkeiten http://xkcd.com/832/