4-Gewinnt OOP Problem !!!
-
Hallo Miteinander.
Ich habe folgendes Problem:
Zur meiner Abschlussprüfung für meine FHR in Kommunikationstechnik und Informationstechnik haben wir ein 80h Projekt.
Dazu zählt mein 4-Gewinnt-Spiel, welches ich mit Visual C++ auf Konsolenbasis programmiere, natürlich OOP!
Die KI mit verschiedenen komplexen Algorithmen mal aussen vor gelassen, habe ich bis jetzt ohne OOP schon ein recht solides Spiel mit dem man Player vs. Player und Player vs. CPU spielen kann. (natürlich mit einer sehr einfachen KI, wenn man das so nennen kann)Mein Hauptproblem besteht darin, nun dieses gesamte Spiel in OOP umzuschreiben. (ja ich weiß, man sollte lieber gleich OOP anfangen, das ist mir im Endeffekt nun auch klar)
Meine Fragen beziehen sich nun auf die Klassen. Welche Klassen nötig sind, wie man sie strukturiert miteinander verbindet etc.
Wir haben schon ziemlich alle Themen in C++ kennen gelernt. Darunter auch viele OOP Varianten. Jedoch ein gesamtes Programm in OOP zu planen bzw. zu schreiben ist doch eine ganz andere Liga. (zumindest für mich als Schüler, der dies erst 2 Jahre macht)Ich habe in meinem Programm für jeden Programmablauf eine eigene Funktion geschrieben, damit alles übersichtlich bleibt, doch weiß ich nicht, wie ich das ganze nun in einzelne Klassen packe und dies so miteinander verknüpfe, dass es trotzdem noch wie jetzt funktioniert.
Ich bin mir bewusst es fehlen noch kleine Teile meines Programms, wie zB. die etwas anspruchsvollere KI und Teile meines Menüs, aber mein Hauptaugenmerk lag erst einmal das Programm zum laufen zu bekommen.
Vielleicht bekomme ich hier ein paar Ratschläge oder Hilfestellungen, wie ich das Programm korrekt in OOP umsetze.
Ich danke euch schonmal
Ps: hier mal meine main datei
-
Ein guter Anfang für so etwas ist die reale Welt:
Die realen Objekte an dem Spiel sind die Steine, das Spielfeld, die Spieler, eventuell ein Schiedsrichter.
Spieler haben eine Strategie und können sich das Spielfeld angucken können. Sie können Steine in eine Reihe des Spielfelds werfen.
Der Schiedsrichter passt auf, dass die Spieler der Reihe nach ziehen und entscheidet, wer gewinnt. Auch er kann das Spielfeld betrachten, aber keine Steine einwerfen.
Das Spielfeld nimmt die Steine auf und ordnet sie gemäß seiner Mechanik (Ordnung in Reihen und Spalten, Steine fallen nach unten) an. Es kann von jedem betrachtet werden.
Die Steine sind in dieser Abstraktion nur mehr Nachrichten, die vom Spieler an das Spielfeld geschickt werden und dort den Zustand ändern können. Eher wie en Knopf an den Reihen des Spielfeldes, bei dem ein farbiges Licht angeht, wenn man ihn drückt.