This commit is contained in:
2024-07-17 07:20:18 +02:00
parent 3e9256b983
commit bedea4caf3
264 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
using System;
using System.IO;
using System.Collections.Generic;
namespace Exercises_C_Sharp.Sonderaufgaben
{
class Exercise_1
{
//Schreiben Sie ein Spiel, in dem man gegen den Computer Schere, Stein, Papier, Echse, Spock spielen kann. Die Regeln sind wie folgt:
// - Schere schneidet Papier         
// - Papier bedeckt Stein                
// - Stein zerquetscht Echse
// - Echse vergiftet Spock
// - Spock zertrümmert Schere
// - Schere köpft Echse
// - Echse frisst Papier
// - Papier widerlegt Spock
// - Spock verdampft Stein
// - Stein schleift Schere
public static void Start()
{
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@@ -0,0 +1,50 @@
using System;
using System.IO;
using System.Collections.Generic;
namespace Exercises_C_Sharp.Sonderaufgaben
{
class Exercise_2
{
//Schreiben Sie ein Programm, in dem man gegen den PC Schiffe versenken spielen kann. Dabei soll der Anwender immer eine Koordinate (z.B. A7) eingeben und dann wird überprüft, ob sich dort ein Treffer befindet. Dabei hat nur der Computer ein 10x10 Feld, auf dem er Zufällig die Schiffe (Schlachtschiff[5 Felder], Kreuzer [4 Felder], Fregatte [3 Felder], Schnellboot[2 Felder]) platziert. Überlegen Sie sich, wie man das Feld auf der Konsole anzeigen könnte.
//Gedankengang zu dieser Aufgabe:
//0 -> Wasser -> Ausgabe: O
//1 -> Schiff -> Ausgabe: O (Tipp: Kann auch zum Debuggen geändert werden)
//2 -> Getroffenes Wasser -> Ausgabe: $
//3 -> Getroffenes Schiff -> Ausgabe: X
//Hierbei handelt es sich um das Spielfeld (Standardmäßig sind alle Werte 0)
static int[,] GameField = new int[10,10];
public static void Start()
{
}
//Diese Methode setzt die Schiffe in das Spielfeld
static void SetShips()
{
}
//Diese Methode frägt, prüft und wandelt die Eingabe des Nutzers um. Dabei wird die konkrete Koordinate zurück gegeben.
static Tuple<int,int> GetUserinput()
{
return new Tuple<int, int>(-1,-1);
}
//Diese Methode verarbeitet die Eingabe des Nutzers.
static void HandleUserInput(Tuple<int,int> userinput)
{
}
//Diese Methode zeigt das Spielfeld mit allen weiteren Anzeigeelementen an.
static void ShowField()
{
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,17 @@
using System;
using System.IO;
using System.Collections.Generic;
namespace Exercises_C_Sharp.Sonderaufgaben
{
class Exercise_3
{
//Schreiben Sie ein eigenes Memory-Spiel! Bei Memory haben Sie eine gerade Anzahl an Karten, die für den Nutzer nicht einsehbar (verdeckt) liegen. Nun darf der Anwender immer zwei Karten nacheinander aufdecken. Besitzen beide Karten dasselbe Symbol, verschwinden diese vom Spielfeld. Sind es zwei unterschiedliche Symbole, so werden diese wieder "umgedreht", also für den Spieler unsichtbar gemacht. Gewonnen hat der Spieler dann, wenn keine Karten mehr übrig sind. Zählen Sie die Versuche mit, die der Spieler bis zum Gewinn gebraucht hat.
public static void Start()
{
}
}
}

View File

@@ -0,0 +1,22 @@
using System;
using System.IO;
using System.Collections.Generic;
namespace Exercises_C_Sharp.Sonderaufgaben
{
class Exercise_4
{
//Schreiben Sie eine Software, die sie Minesweeper auf der Konsole spielen lässt. Minesweeper besteht aus einem rechteckigen Feld bestehend aus Quadraten, unter welchem sich eine gewisse Anzahl an Minen verstecken. Der User muss nun ein Quadrat auswählen, danach gibt es folgende Möglichkeiten:
// - Es handelt sich um eine Mine, somit ist das Spiel vorbei und der User hat verloren.
// - Es ist kein Mine, dann erscheint eine Zahl, die die Anzahl der Minen angibt, die dieses Quadrat umgeben
//Hat der User alle Felder ohne Minen aufgedeckt, so hat dieser gewonnen.
//Natürlich können Sie auch Konfortfunktionen, wei beispielsweise das Markieren von Minen mit einprogrammieren.
public static void Start()
{
}
}
}

View File

@@ -0,0 +1,32 @@
using System;
using System.IO;
using System.Collections.Generic;
namespace Exercises_C_Sharp.Sonderaufgaben
{
class Exercise_5
{
//Schreiben Sie eine Software, mit Hilfe dessen Sie Kniffel auf der Konsole spielen können. Beim Kniffel haben Sie (im Regelfall, Sie können natürlich auch variieren) 5 Würfel und eine Tabelle, in der man Ergebnisse eintragen kann. Der Spielablauf ist wie folgt:
// - Der User würfelt mit allen Würfeln
// - Danach kann dieser sich entscheiden, ob er das aktuelle Ergebnis eintragen möchte, oder nochmal würfelt
// - Würfelt der User nochmal, darf dieser auswählen, mit welchen Würfeln er nochmal würfeln möchte. Die anderen Würfel behalten ihren Wert.
// - Spätestens jetzt muss er das Ergebnis in die Tabelle eintragen.
// Das Spiel ist vorbei, wenn der User alle Felder in der Tabelle ausgefüllt hat. Folgende Möglichkeiten gibt es für die Tabelle (es steht Ihnen natürlich frei, jegliche Möglichkeiten die Ihnen einfallen zu implementieren):
// - Kniffel: Alle Würfel zeigen die selbe Zahl
// - Chance: Die Summe aller gewürfelten Ergebnisse
// - Große Straße: Alle Würfel ergeben eine Reihe
// - Kleine Straße: Die Hälfte der Würfel ergeben eine Reihe
// - Full House: Die Hälfte der Würfel zeigt die eine, die andere Hälfte eine andere Zahl
// - Einzelne Zahlen: 1er, 2er, 3er usw. (Dabei zählt die aditive Summe dieser Zahlen)
// - usw.
// Sie können selbst entscheiden, wie viel Punkte es worauf gibt. Meistens nimmt man die Summe der Würfelergebnisse.
// Passen die Würfel zu keinem der Elemente in der Tabelle, so muss er ein Feld streichen, d.h. dieses mit 0 Punkte bewerten.
public static void Start()
{
}
}
}

View File

@@ -0,0 +1,7 @@
Hinweise zu den Sonderaufgaben:
In diesen Aufgaben sind Sie komplett frei, was Sie programmieren. Oftmals gibt es auch vorgefertigte Strukturen, diese können Sie nutzen, oder auch komplett verändern. Die Aufgaben sind meistens etwas freier beschrieben, schließen Sie die Aufgabenlücken mit Ihrer eigenen Meinung zum Thema, wie das Programm am besten arbeiten und aussehen sollte.
Sie finden auch (teilweise) Beispielbilder vom Programm. Diese besitzen den selben Namen wie die Aufgabe.
Wenn Sie es "professionell" machen wollen, trennen Sie die View von der Logik (Controller). Nutzen Sie dafür die Designpatterns und die anderen vorgestellten Konstrukte, um Ihren Code besser, übersichtlicher und strukturierter zu machen.