Impressum
< Laufendes O - Teil 2 Inhalt Laufendes O - Teil 4>

Das laufende O - Teil 3 (Gegner und Punkte)

Beschreibung

Dieser Teil erweitert das laufende O um einen Gegner bzw. ein Item das aufgesammelt werden kann. Jedes Mal, wenn es gefressen wurde erhält der Spieler einen Punkt und das Item erscheint an einer zufälligen Stelle neu.

Variablen

Für die Position des Items benötigen wird zwei ganzzahlige Variablen (gx und gy) welche die Position speichern.
Da sich die Punkte ebenfalls verändern (sprich: variabel sind) benötigen wir hierfür eine zusätzliche Variable (Typ int).

Algorithmus (Ablauf)

  1. gx und gy zufällig belegen.
  2. Den Gegner an Position gx/gy zeichnen.
  3. Nach jedem Schritt des Os überprüfen ob es mit dem Gegner kollidiert.
  4. Bei jeder Kollision die Punkte erhöhen, sowie gx und gy mit neuen zufälligen Werten belegen.
Zufällige Werte liefert ein Zufallsgenerator vom Typ Random: Random zufall = new Random(); // legt einen neuen Zufallsgenerator an
Von diesem kann eine Zufallszahl erfragt werden: x=zufall.Next(10);// liefert eine Zahl zwischen 0 und 9
Eine Zahl zwischen 5 und 15 erhält man mit gx=zufall.Next(11)+5; da zufall.Next(11) eine Zahl zwischen 0 und 10 liefert. Mit +5 liegt die Zahl dann zwischen 5 und 15.

Youtube Video: Das laufende O Teil 3

Der Quellcode

using System; class Program { static void Main3(string[] args) { int x = 5; int y = 5; char c; int gx,gy; Random zufall = new Random(); gx = zufall.Next(11)+5; gy = zufall.Next(11)+5; int punkte = 0; int rx = 4; while(rx<=16) { Console.SetCursorPosition(rx,4); Console.Write("#"); Console.SetCursorPosition(rx,16); Console.Write("#"); Console.SetCursorPosition(16,rx); Console.Write("#"); Console.SetCursorPosition(4,rx); Console.Write("#"); rx = rx+1; } do { Console.SetCursorPosition(18,8); Console.Write("Punkte: "+punkte); Console.SetCursorPosition(gx,gy); Console.Write("*"); Console.SetCursorPosition(x,y); Console.Write("O"); c = Console.ReadKey(true).KeyChar; Console.SetCursorPosition(x,y); Console.Write(" "); if(c=='w') { if(y>5) { y=y-1; } } if(c=='s') { if(y<15) { y=y+1; } } if(c=='a') { if(x>5) { x=x-1; } } if(c=='d') { if(x<15) { x=x+1; } } if(x==gx && y==gy) { gx = zufall.Next(11)+5; gy = zufall.Next(11)+5; punkte = punkte+1; } } while(c!='q'); } }