sew-ex_2
Softwareentwicklung - Übungsangaben
Einleitung
Dozent: Dipl.-Ing. Msc. Paul Panhofer BSc.
E-Mail: paul.panhofer@tuwien.ac.at
Datum des Vortrags: 12.04.2023
Grundlagen der OOP
Theoretische Basis für Objektorientierte Programmierung (OOP):
Objektinstanzierung
Instanzierungsoperator
Klassenimplementierung
Enums
Ikusa - Basic OOP
Beispiel: Klassenimplementierung
Entwickeln Sie Klassen basierend auf den gegebenen JSON-Objekten.
Die Implementierung soll folgende Komponenten umfassen:
Unit.cs
JSON Objekt:
{ "unitType": "Daiymo", "classification": "Samurai", "combatValue": 5, "cost": 0, "description": "A daimyo was a provincial warlord who commanded a large army of warriors." }Erstellen Sie Unit-Tests für die implementierten Klassen.
Unit Test Beispiel
UnitTest.cs
Objektdaten deklarieren:
let bowmenUnit = { unitType: "Bowmen", classification: "Samurai", combatValue: 6, cost: 3, description: "These long-range units represent experienced warriors who were deadly accurate with bow and arrow." };Testmethoden:
Test darauf, ob die Objekte initialisiert werden und nicht null sind.
Überprüfen der Eigenschaften der Objekte z.B.:
Assert.That(bowmenUnit.UnitType, Is.EqualTo("Bowmen"));
Aernautica - Basic OOP
Beispiel: Klassenimplementierung
Implementierung von Klassen basierend auf JSON-Objekten:
Aircraft.cs
Beispiel Objekt:
{ "name": "Fire Raptor Gunship", "aircraftClass": "FIGHTER", ... }
Testen der Konstruktoren und Eigenschaften in AircraftTest.cs.
Tests und Validierung
Methoden zur Überprüfung:
Existenz prüfend (z.B.
Assert.That(raptor, Is.NotNull());)Überprüfung von Eigenschaften durch Tests.
Vererbung und Abstrakte Klassen
AUnit als abstrakte Basisklasse zur Definition gemeinsamer Eigenschaften für verschiedene Einheitstypen (z.B. Samurai und Ashigaru).
TicTacToe Implementierung
TicTacToe Spiel
Definition der Spielklassen:
EPlayerTypeals Enum für Spielertypen (Init, Player1, Player2).MoveKlasse für Spielzüge, welche die BasisklassePointerbt.Implementierung der Spielregeln in der
TicTacToeMapKlasse.
Tests
Unittest zur Überprüfung der Spielzüge und der Gewinner-Logik.
Train Simulation
Klassen
Implementierung der
Point- undTrainMap-Klassen für die Simulation von Zügen.Methoden zur Routenberechnung zwischen Punkten sowie zur Generierung von Nachbarn.
Abschluss
Nutzen und Anwendung der Objektorientierten Programmierung in komplexen Szenarien (Spiele und Simulationen).
Test-Driven Development (TDD) als Methodik zur Validierung von Softwareeinheiten.