Übung 12: Abschließende Übung

Das ist es! Dies ist deine Chance, deine Kreativität zu nutzen und wirklich zu zeigen, was du in deinem eigenen Spiel erstellen kannst. Mehr als nur eine Prüfung zu bestehen, in diesem Kurs kann man tatsächlich etwas tun und etwas Reales erschaffen.

Es gibt zwei Möglichkeiten für die abschließende Übung. Eine „Videospiel-Option“ und eine „Text-Adventure-Option“.

Beide Optionen sind in drei Teile unterteilt. Jeder Teil sollte ungefähr eine Woche benötigen. Die Ziele dieser Übung sind:

  • Mache dich mit längeren Programmen vertraut, indem du sie in verschiedene Funktionen, Klassen und Dateien unterteilst.

  • Lerne, nach Programmcode zu suchen, der genau das tut, was du willst, und passe ihn an dein Programm an.

  • Lerne, große Programme in kleinere, leichter zu lösende Teile zu zerlegen.

  • Beginne mit der Erstellung eines Portfolios von Arbeiten, die du erledigt hast.

  • Erkenne, dass das Programmieren eine unterhaltsame und kreative Angelegenheit sein kann.

  • Wende die Konzepte an, die wir gelernt haben, zum Beispiel Variablen, Ausdrücke, if-Anweisungen, Schleifen, Listen, Arrays und mehr.

Diese Übung ist 60 Punkte wert. Gebe jede Woche das ab, was du für die Übung getan hast, damit du deine Punktzahl „fest hältst“ und eine Vorstellung davon bekommst, wie du vorankommst. Wenn du weitere Aufgaben erledigt hast, gib die Übung ab.

Du kannst bis zum Ende warten, um deine Arbeit bis zum Ende des Kurses abzugeben, aber das ist ein sehr riskanter Plan.

Videospiel-Option

Die Videospieloption ist die beliebteste Option. Hier sind einige Videos von dem, was die Studierenden in früheren Jahren programmiert haben:

Video: Spring 2018 Game Projects
Video: Spring 2017 Game Projects
Video: Summer 2015 Game Projects
Video: Spring 2015 Game Projects
Video: Fall 2014 Game Projects
Video: Spring 2014 Game Projects
Video: Fall 2013 Game Projects
Video: Fall 2012 Game Projects
Video: Spring 2012 Game Projects

Verwenden von Bildern oder Sounds aus anderen Quellen

Es ist in Ordnung, Bilder und Sounds aus anderen Quellen zu verwenden, wenn du die Quelle angibst.

Zitiere in Kommentaren im Programmcode, welche Bilder und Sounds du verwendest hast. Füge für jedes geladene Bild oder jeden geladenen Sound einen mit # beginnenden Kommentar in der Zeile darüber ein, und gib an, woher er stammt. Ich erwarte mehr als nur eine URL, gib mir auch einen Namen für die Website und die Lizenz an.

Für ein professionell veröffentlichtes Spiel wäre dies nicht genug. Du musst sicherstellen, dass du über eine Lizenz verfügst, um das Werk nutzen zu dürfen.

Wenn du ein eigenes Bild oder einen eigenen Sound erstellst, gibt dies in den Kommentaren an, damit ich richtig beeindruckt werde.

Verwenden von Programmcode aus anderen Quellen

Wenn du Programmcode findest, der nicht von dieser Website oder von arcade.academy stammt, zitiere ihn. Sonst plagiierst du und fliegst aus dem Kurs.

Fast jedes Semester ertappe ich dabei jemanden. Bitte, tu es einfach nicht.

Anforderungen für Teil 1

  • Zitiere in Kommentaren im Programmcode, welche Bilder und Sounds du verwendest hast. Füge für jedes geladene Bild oder jeden geladenen Sound einen mit # beginnenden Kommentar in der Zeile darüber ein, und gib an, woher er stammt. Ich erwarte mehr als nur eine URL, gib mir auch einen Namen für die Website und die Lizenz an.

  • Wenn du Programmcode findest, der nicht von dieser Website oder von arcade.academy stammt, zitiere ihn. Sonst plagiierst du und fliegst aus dem Kurs.

Jeder der drei Teile für die abschließende Übung legt die Messlatte für das, was Ihr Spiel tun muss, höher.

  • Öffne einen Bildschirm.

  • Richte die Elemente ein, die auf dem Bildschirm gezeichnet werden sollen. Plane welche Bilder du verwenden möchtest.

  • Stellen Sie eine Art von Bewegung der Spielfigur oder Interaktion über Maus, Tastatur oder Gamecontroller bereit. Bewege gegebenenfalls Objekte auf dem Bildschirm.

  • Erstelle etwas, das zumindest irgendwie spielbar ist.

Tipps:

  • Wenn dein Programm Dinge beinhaltet, die aufeinander treffen, verwende direkt Sprites. Beginne nicht mit Zeichnungsbefehlen und erwarte, dass du später Sprites hinzufügst. Es wird nicht funktionieren und du musst von vorne anfangen. Das wäre traurig.

  • Wenn du ein Programm wie „Mine Sweeper“ oder „Vier gewinnt“ programmierst, verwende keine Sprites. Da keine Kollisionserkennung erforderlich ist, musst du dich nicht mit Sprites herumschlagen.

  • Du darfst zwar mit einem der Beispiel-Spielprogramme von dieser Website oder arcade.academy beginnen und dieses verwenden, aber stelle dieses nicht einfach als Teil 1 ein. Du musst eine Menge hinzufügen, bevor das als eigene Leistung gilt.

  • Ein sehr häufiger Fehler ist der Aufruf von self.all_sprites_list.update() und self.physics_engine.update(). Dies führt dazu, dass die Spielfiguren durch Wände tunneln. Du solltest speziell die Listen aktualisieren, die die Spielfigur nicht enthalten, wie self.enemy_list.update().

  • Denke daran, dass ein zusätzlicher weißer Bereich um Ihr Bild die Kollisionserkennung auslöst. Am besten überprüfst und beschneidest du den weißen Bereich von Bildern, die du verwendest.

  • OpenGameArt.org enthält viele Bilder und Sounds, die du kostenfrei verwenden kannst.

  • Kenney.nl hat auch viele Bilder und Sounds.

Anforderungen für Teil 2

Für die finale Übung - Teil 2 sollte dein Spiel funktionsfähig sein. Jemand sollte in der Lage sein, sich für einige Minuten hinzusetzen und das Spiel zu spielen, und es sollte sich wie ein echtes Spiel anfühlen. Hier sind einige Dinge, die du vielleicht hinzufügen möchtest:

  • Mit Objekten kollidieren können.

  • Spieler können das Spiel verlieren, wenn etwas Schlimmes passiert.

  • Spielstand auf dem Bildschirm.

  • Soundeffekte.

  • Bewegung anderer Charaktere auf dem Bildschirm.

  • Die Möglichkeit, auf Minen oder leere Stellen zu klicken.

Anforderungen für Teil 3

Füge für den letzten Teil den letzten Schliff für dein Spiel hinzu. Hier sind einige Dinge, die du vielleicht hinzufügen möchtest:

  • Titel- und Anweisungsbildschirme

  • Mehrere Level

  • Viele Sounds

  • Mehrere „Leben“

  • Weitere Arten von Feinden

  • Power-Ups

  • Hitze suchende Raketen

  • Versteckte Türen

  • Eine „Sweep“ -Aktion in einem Minensuchspiel oder die Fähigkeit, „Flaggen“ zu setzen

Text-Adventure-Option

Du interessierst dich nicht für ein Videospiel? Setze deine Arbeit am Text-Adventure-Spiel fort.

Anforderungen für Teil 1

  1. Start with code from Übung 6: Text-Adventure. Create a more extensive set of rooms. Add the ability to beyond the four directions we did before. For example, be able to move up and down, or ne, nw, etc.

  2. Füge eine Liste der Gegenstände in deinem Spiel hinzu.

    1. Erstelle eine Klasse namens Item.

    2. Füge Attribute für die Zimmernummer des Artikels, eine lange Beschreibung und einen kurzen Namen hinzu. Der Kurzname sollte nur ein Wort lang sein. Auf diese Weise kann der Benutzer get key eingeben und der Computer weiß, auf welches Objekt er sich bezieht. Die Beschreibung ist das, was ausgegeben wird. Wie Hier liegt ein rostiger Schlüssel.

    3. Erstelle eine Liste mit Elementen, ähnlich wie du deine Liste mit Räumen erstellt hast.

    4. After your code to print the room description, loop through each item in your item list. If the item is in the user’s room, print the item’s description. (This is a variation on the linear search.)

    5. Teste, und stelle sicher, dass dies funktioniert.

Anforderungen für Teil 2

  1. Ändere deine Befehlsverarbeitung, sodass der Benutzer nicht nur Anweisungen eingeben darf, sondern jetzt auch andere Optionen hat. Zum Beispiel möchten wir, dass der Benutzer auch Befehle wie „get key“, „inventory“ oder „wave wand“ eingeben kann. (Natürlich darfst du dein Adventure auch auf Deutsch erstellen.)

    1. Frage den Benutzer dazu nicht, „In welche Richtung möchten Sie gehen?“. Bitte stattdessen den Benutzer um etwas, wie „Was ist Ihr Kommando?“.

    2. Teile die Benutzereingabe auf. Wir brauchen eine Variable, die dem ersten Befehl entspricht, den sie eingeben, wie zum Beispiel „get“ („nimm“), und eine andere Variable, die dem zweiten Wort entspricht, wie zum Beispiel „key“ („Schlüssel“).

      1. Verwende die in Python-Strings integrierte Methode split zum Aufteilen. Zum Beispiel: command_words = user_command.split(" "). Dies teilt das, was der Benutzer eingibt, in eine Liste auf. Jedes Element wird nach Leerzeichen getrennt.

      2. Aktualisiere deinen Programmcode, der die Eingabe von Anweisungen durch den Benutzer verarbeitet, um command_words[0] zu überprüfen, anstatt dessen, was du zuvor hattest.

  2. Füge ein „get‘-Kommando hinzu.

    1. Füge eine Überprüfung für ein „get“-Kommando in deine if/elif-Kette ein, die jetzt nur noch Anweisungen verarbeitet.

    2. Durchsuche die Objektliste, bis du ein Objekt finden, das mit dem übereinstimmt, was der Benutzer aufheben möchte.

    3. Wenn das Objekt nicht gefunden wird oder wenn sich das Objekt nicht im aktuellen Raum befindet, gib einen Fehler aus.

    4. Wenn das Objekt gefunden wurde und es sich im aktuellen Raum befindet, setze die Raumnummer des Objekts auf -1.

  3. Fügen Sie einen Befehl für „Inventar“ hinzu, mit dem jedes Objekt ausgegeben wird, dessen Zimmernummer gleich -1 ist.

  4. Füge die Fähigkeit hinzu, ein Objekt fallen zu lassen.

  5. Füge die Fähigkeit hinzu, die Objekte zu verwenden. Zum Beispiel „get key“ („benutze Schlüssel“) oder „swing sword“ („schwinge Schwert“) oder „feed bear“ („füttere Bär“).

Anforderungen für Teil 3

Erweitere das Spiel noch etwas. Probiere einige dieser Ideen aus:

  1. Erstelle ein Dateiformat, mit dem du Räume und Objekte aus einer Datei laden kannst, anstatt Programmcode dafür zu schreiben.

  2. Monster mit Trefferpunkten, die erst sterben wenn die Trefferpunkte null werden.

  3. Teile den Programmcode zur besseren Organisation in mehrere Dateien auf.

  4. Entferne globale Variablen mithilfe einer Hauptfunktion, wie am Ende des Kapitels über Funktionen gezeigt.

  5. Objekte mit begrenzter Verwendung. Wie ein Bogen, der nur eine bestimmte Anzahl von Pfeilen hat.

  6. Kreaturen mit eingeschränkter Gesundheit und Waffen, die zufälligen Schaden verursachen und zufällige Trefferchancen haben.

Tipps

  • Commit und push deinen Programmcode häufig. Es ist nicht ungewöhnlich, dass etwas Schlimmes mit dem Programmcode passiert, während du an dieser Aufgabe arbeitest. Alles, was du commitet und gepusht hast, können wir wiederherstellen. Arbeite nicht länger als ein paar Stunden, ohne dies zu tun.

  • Ich gebe viel Übungszeit im Kurs für dieses Projekt. Nutze sie. Geh nicht zu früh.