private void btn_2spieler_Click(object sender, EventArgs e) { this.Hide(); Spielfeld sForm = new Spielfeld(); sForm.ShowDialog(); Application.Exit(); }
/// <summary> /// Bestandteil des Siegerbildschirms /// </summary> /// <param name="s"></param> private static void OutputWinner(Spielfeld s) { var name = s.GetPlayerID() ? Spielfeld.PlayerNames[0] : Spielfeld.PlayerNames[1]; var r = new Random(); var gewonnen = string.Format(" WINNER {0} ", name); for (var row = 0; row < 16; row++) { name = s.GetPlayerID() ? Spielfeld.PlayerNames[0] : Spielfeld.PlayerNames[1]; Console.SetCursorPosition(horizonzal - 2 + r.Next(0, 12), r.Next(6, 18) + 1); SwitchBackgroundColor(row); Console.WriteLine(name + gewonnen.Substring(0, row)); ResetBoard2(); } }
/// <summary> /// Siegerbildschirm /// </summary> /// <param name="s"></param> private static void Win(Spielfeld s) { var delete = " "; OutputWinner(s); for (var J = 0; J < 8; J++) { ScreenClear(delete); Thread.Sleep(200); OutputWinner(s); ResetBoard2(); Thread.Sleep(500); } }
private static void Main() { var s = new Spielfeld(); var fpsCounter = new Timer(); Console.CursorVisible = false; Console.ForegroundColor = ConsoleColor.Yellow; var key = ConsoleKey.Attention; var tbStart = new TextBox(new Point(10, 10), ConsoleColor.DarkRed); tbStart.Spieler1Abfragen(); var rahmen = new TextBox(new Point(0, 0), SwitchForegroundColor(rand.Next(0, 15))); do { fpsCounter.FpsChecker(); tbStart.Draw(); rahmen.DrawRahmen(); if (programmZustand == 2) { ResetBoard2(); } if (programmZustand == 3) { ResetBoard2(); OutputTie(); } if (!Console.KeyAvailable) { continue; } // code only processed when a key is down key = Console.ReadKey(true).Key; if (programmZustand == 2) { ValidateInput(s, key); if (gameResult == TurnResult.Valid || gameResult == TurnResult.Invalid) { ResetBoard2(); } else if (gameResult == TurnResult.Win) { Win(s); } else if (gameResult == TurnResult.Tie) { programmZustand = 3; OutputTie(); } } else { switch (key) { default: tbStart.ProcessKey(key, s); break; } } } while (key != ConsoleKey.Escape); Console.ResetColor(); Console.ReadKey(true); }
/// <summary> /// Spielzug wird auf Ergebnis geprüft. /// Win/Tie/Valid und Invalid sind mögliche Resultate /// Tastatuteingabe wird behandelt /// </summary> /// <param name="s"></param> public static void ValidateInput(Spielfeld s, ConsoleKey key) { ResetHints(); switch (key) { case ConsoleKey.Spacebar: case ConsoleKey.Enter: gameResult = s.Turn(new Point(Lesekopf.X, Lesekopf.Y)); break; case ConsoleKey.LeftArrow: if (Lesekopf.X > 0) { Lesekopf.X--; MoveCursor(); Console.BackgroundColor = ConsoleColor.Blue; OutputSign(Lesekopf.X, Lesekopf.Y); } break; case ConsoleKey.UpArrow: if (Lesekopf.Y > 0) { Lesekopf.Y--; MoveCursor(); Console.BackgroundColor = ConsoleColor.Blue; OutputSign(Lesekopf.X, Lesekopf.Y); } break; case ConsoleKey.RightArrow: if (Lesekopf.X < 2) { Lesekopf.X++; MoveCursor(); Console.BackgroundColor = ConsoleColor.Blue; OutputSign(Lesekopf.X, Lesekopf.Y); } break; case ConsoleKey.DownArrow: if (Lesekopf.Y < 2) { Lesekopf.Y++; MoveCursor(); Console.BackgroundColor = ConsoleColor.Blue; OutputSign(Lesekopf.X, Lesekopf.Y); } break; case ConsoleKey.F1: s.DrawHint(Lesekopf.X, Lesekopf.Y); ResetBoard2(); break; case ConsoleKey.Escape: break; } Console.ResetColor(); }
static void Main() { Console.CursorVisible = false; List <string> logolines = new List <string>(); // erstellen eines lagers für die logo-zeilen string readbuffer; //zwischenlager für eine gelesene Zeile using (var sr = new StreamReader("Logo.txt")) // öffnen der Datei mit lesezugriff while ((readbuffer = sr.ReadLine()) != null) // solange lesen bis NULL (dateiende) erreicht wird { logolines.Add(readbuffer); } // gelesene zeile im lager ablegen Random rndGen = new Random(); for (int counter = 0; counter < logolines.Count; counter++) { // ausgabe zentrieren Console.SetCursorPosition(Console.BufferWidth / 2 - logolines[counter].Length / 2, Console.WindowHeight / 2 - logolines.Count / 2 + counter); Console.ForegroundColor = (ConsoleColor)rndGen.Next(1, 16); // zufällige farbe einstellen Console.Write(logolines[counter]); // zeile ausgeben } Console.ReadKey(true); // auf irgendeinen tastenanschlag warten Console.ResetColor(); // farben zurücksetzen Console.Clear(); // bildschirm leeren string[] userNames = new string[2]; Console.WriteLine("Hallo User, ich bin ein Spiel"); // ausgabe begrüssung Console.WriteLine("Spieler X bitte name eingeben"); // ausgabe Spieler X bitte name eingeben userNames[0] = Console.ReadLine(); // eingabe von tastatur lesen und abspeichern Console.WriteLine("Spieler Y bitte name eingeben"); // ausgabe Spieler Y bitte name eingeben userNames[1] = Console.ReadLine(); // eingabe von tastatur lesen und abspeichern Spielfeld spiel = new Spielfeld(); do // wiederholen { spiel.Reset(); // spiel auf anfangszustand setzen TurnResult result = TurnResult.Invalid; do { // wiederholen Draw(spiel.GetBoard()); // spielfeld anzeigen do { // wiederholen Console.Write("Bitte feld auswählen {0} xy : ", (spiel.GetCurrentPlayer() ? userNames[0] : userNames[1])); // ausgabe Bitte feld auswählen byte X; byte Y; string userInput = Console.ReadLine();// eingabe des feldes lesen und abspeichern if (!byte.TryParse(userInput[0].ToString(), out X) || X > 2) { Console.WriteLine("keine gültige koordinate X"); continue; } if (!byte.TryParse(userInput[1].ToString(), out Y) || Y > 2) { Console.WriteLine("keine gültige koordinate Y"); continue; } result = spiel.Turn(new Point(X, Y)); // zug durchführen und ergebnis abspeichern } while (result == TurnResult.Invalid); // solange Spielerzug ungültig } while (result == TurnResult.Valid); // solange Spielerzug gültig Draw(spiel.GetBoard()); if (result == TurnResult.Tie) // wenn spielerzug unentschieden { Console.WriteLine("Unentschieden!"); } else { Console.WriteLine("Sieg für {0}", (spiel.GetCurrentPlayer() ? userNames[0] : userNames[1])); // ausgabe aktueller spieler hat gewonnen } Console.WriteLine("Möchten sie noch ein Spiel spielen? [y/n]"); // ausgabe möchten sie noch ein spiel? } while (Console.ReadKey(true).Key == ConsoleKey.Y); // solange y von der tastatur gelesen wurde Console.WriteLine("Auf wiedersehen"); }