Der nächste Eintrag der "Ein Schritt"-Projektreihe ist Hangman.
(Aufgrund von Reboot und Konkretisierung der Projektreihe, ist dieses Projekt aus dieser Kategorie entfernt worden.)
(Aufgrund von Reboot und Konkretisierung der Projektreihe, ist dieses Projekt aus dieser Kategorie entfernt worden.)
Auch hier wieder ein sehr einfaches Spiel,
das den meisten bekannt sein dürfte.
Diesmal gibt es leider keine Abweichenden Regeln von dem Klassiker.
das den meisten bekannt sein dürfte.
Diesmal gibt es leider keine Abweichenden Regeln von dem Klassiker.
Spiel
Das Spiel besteht daraus, dass der Computer sich ein Wort aussucht
und der Spieler muss dieses erraten.
und der Spieler muss dieses erraten.
In jedem Schritt muss der Spieler einen Buchstaben des Alphabets wählen. Kommt der Buchstabe in dem Wort vor, wird er in allen Stellen des Wortes enthüllt. Ist der Buchstabe nicht in dem Wort enthalten, zeichnet der Computer einen kleinen Teil der Abbildung des 'Hanged Man'.
Ist die Abbildung Vollständig, hat der Spieler verloren.
Gewinnen tut der Spieler, wenn das Wort vollständig enthüllt ist.
Ist die Abbildung Vollständig, hat der Spieler verloren.
Gewinnen tut der Spieler, wenn das Wort vollständig enthüllt ist.
Programmierung
Für dieses Projekt habe ich den grundlegenden Aufbau des MVC-Konzepts noch einmal überarbeitet. Ich habe mich dann durchaus zu kosten einiger Programmierprinzipien für etwas Komfort entschieden.
So werden zum Beispiel Controller und Views ohne jegliche Verknüpfung mit der Game Instanz erstellt und greifen statisch auf andere Views und Controller zu, sowie Ingame-Zeit und die Referenz zur p5 Instanz.
In weiteren Schritten möchte ich dies jedoch wieder mit Instanzen übergeben, um Aufrufreihenfolgen sicherzustellen, die bereits in diesem kleinen Projekte aufgetreten sind.
Verwendung View und Controller
Views wie Controllers werden in Collections erstellt,
hier wird lediglich dafür gesorgt, dass in einer Strukturierten Form auf die Views zugegriffen werden kann.
hier wird lediglich dafür gesorgt, dass in einer Strukturierten Form auf die Views zugegriffen werden kann.
export var views = {
main: new MainView,
info: new InfoView,
partials: {
hanged_man: new HangedManView,
word: new WordView,
named_letters: new NamedLettersView,
}
};Die Views werden angesprochen und die entsprechenden Variablen gesetzt, die die Ausgabe der View bestimmen.
Das sieht dann folgendermaßen aus:
views.partials.hanged_man
.image_progress.set(0)
.color.set(hangman_color)
.x.set(200)
.y.set(50)
.image_progress.set(this.death_progress)
.draw();
Comments