Impressum
Inhalt Laufendes O - Teil 2>

Das laufende O - Teil 1

Beschreibung

Wir wollen in diesem Projekt ein O mit über den Bildschirm laufen lassen. Der Benutzer steuert das O mit den Tasten WASD. Im ersten Teil wird nur die Bewegung betrachtet, in den folgenden Teilen wird es zu einem "kompletten" Spiel ausgebaut.

Variablen

Wir benötigen zwei ganzzahlige Variablen (int) für die Position des Spielers (X und Y-Koordinate) und eine char-Variable, welche die Tastatur-Eingaben speichert (jeweils nur ein Buchstabe).

Neue Befehle

Wir benötigen zum einen die Möglichkeit, an eine bestimmte Stelle auf das Konsolenfenster zu schreiben. Hierzu müssen wir den Cursor auf bestimmte Koordinaten setzen könne. Zum Anderen benötigen wir einen Befehl, der uns die Tasteneingabe des Benutzers liefert, ohne diese auf dem Bildschirm auszugeben. Die benötigten Befehle sind:
Console.SetCursorPosition(x, y); Setzt den Cursor auf den Punkt (x,y) wobei oben links (0,0) ist.
Console.ReadKey(true).KeyChar; Liefert den eingegebenen Buchstaben zurück ohne ihn anzuzeigen.
z.B.:
char c;
c = Console.ReadKey(true).KeyChar;

Algorithmus (Ablauf)

  1. Deklarieren und Initialisieren der Variablen. x und y werden mit dem Wert 5 initialisiert.
  2. Der Cursor wird an die Position (x,y) gesetzt und ein "O" ausgegeben.
  3. Nun wird auf die Eingabe des Buchstabens gewartet und in c gespeichert.
  4. Das O an der alten Position wird gelöscht. Dies geschieht, indem der Cursor wieder auf die Position (x,y) gesetzt wird und ein Leerzeichen " " ausgegeben wird.
  5. Ist c=='w', so wird der Wert von y um eins vermindert, ist c=='s' so wird y um eins erhöht. Dasselbe gilt für x, falls c=='a' oder c=='d'.
  6. Das man das O um mehr als ein Feld verschieben kann müssen die Punkte 2 bis 5 in eine do-while-Schleife eingefasst werden. Als Bedingung schreiben wir in die Schleife c!='q'. Somit wird das Spiel so lange laufen bis q gedrückt wird.

Youtube Video: Das laufende O Teil 1

Der Quellcode

using System; class Program { static void Main(string[] args) { int x = 5; int y = 5; char c; do { Console.SetCursorPosition(x,y); Console.Write("O"); c = Console.ReadKey(true).KeyChar; Console.SetCursorPosition(x,y); Console.Write(" "); if(c=='w') { y=y-1; } if(c=='s') { y=y+1; } if(c=='a') { x=x-1; } if(c=='d') { x=x+1; } } while(c!='q'); } }