Hangman

posted

2026-02-22

updated

2026-02-22
 
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.) 
Spielen
Auch hier wieder ein sehr einfaches Spiel, 
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. 
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. 
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. 
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();
 

Releases

Comments

captcha