private void Play() { Gamelog = new Logger("LOG von Spiel zwischen " + Player1.Username + " und " + Player2.Username); for (int i = 0; i < MaxRounds; i++) { Console.WriteLine("-------------------------------------------------\n"); Gamelog.AddEntry(String.Format("Spielrunde: {0}", i + 1)); Console.WriteLine("Spielrunde: {0}", i + 1); Console.WriteLine("Anzahl Karten Spieler 1: " + Player1.Deck.Count); Console.WriteLine("Anzahl Karten Spieler 2: " + Player2.Deck.Count); ICard chosenCardP1 = Player1.PickCardFromDeck(); ICard chosenCardP2 = Player2.PickCardFromDeck(); Console.WriteLine("\nGewählte Karten: "); Console.WriteLine("Spieler 1: {0}, {1}, {2}", chosenCardP1.Name, chosenCardP1.Damage, chosenCardP1.ElementType); Console.WriteLine("Spieler 2: {0}, {1}, {2}", chosenCardP2.Name, chosenCardP2.Damage, chosenCardP2.ElementType); Gamelog.AddEntry(String.Format("{0}: {1}, {2}, {3}", Player1.Username, chosenCardP1.Name, chosenCardP1.Damage, chosenCardP1.ElementType)); Gamelog.AddEntry(String.Format("{0}: {1}, {2}, {3}", Player2.Username, chosenCardP2.Name, chosenCardP2.Damage, chosenCardP2.ElementType)); //HasPlayer1WonRound? // YES: player1 bekommt card p2 von player2! (zu deck von player1 hinzufügen: card p2), (aus deck von player2 entfernen: card p2) // NO: player2 bekommt card p1 von player1! (zu deck von player2 hinzufügen: card p1), (aus deck von player1 entfernen: card p1) // can return 3 cases: 3 values present that: if 1 returns int result = HasPlayer1WonRound(chosenCardP1, chosenCardP2); switch (result) { case 1: Gamelog.AddEntry("" + Player1.Username + " gewinnt."); Console.WriteLine("Spieler 1 gewinnt."); Player1.AddCardToDeck(chosenCardP2); Player2.RemoveCardFromDeck(chosenCardP2); break; case 2: Gamelog.AddEntry("" + Player2.Username + " gewinnt."); Console.WriteLine("Spieler 2 gewinnt."); Player2.AddCardToDeck(chosenCardP1); Player1.RemoveCardFromDeck(chosenCardP1); break; case 3: Gamelog.AddEntry("Unentschieden."); Console.WriteLine("Unentschieden."); break; } // Deck is updated // Game ends if one user has no cards if (Player1.Deck.IsNullOrEmpty() || Player2.Deck.IsNullOrEmpty()) { if (Player2.Deck.IsNullOrEmpty()) { Gamelog.AddEntry("SPIELENDE. " + Player2.Username + " hat keine Karten mehr. " + Player1.Username + " hat das Battle gewonnen."); Gamelog.Winner = Player1.Username; Console.WriteLine("Spieler 1 hat das Spiel gewonnen."); Winner = Player1; } else { Gamelog.AddEntry("SPIELENDE. " + Player1.Username + " hat keine Karten mehr. " + Player2.Username + " hat das Battle gewonnen."); Gamelog.Winner = Player2.Username; Console.WriteLine("SPIELENDE. Spieler 1 hat keine Karten mehr. Spieler 2 hat das Spiel gewonnen."); Winner = Player2; } EndGame(); Console.WriteLine("\n-------------------------------------------------\n"); return; } Console.WriteLine("\n-------------------------------------------------\n"); } // if there is no final result after maxRound --> DRAW! EndGame(); // Winner is null --> DRAW Gamelog.AddEntry("Das Spiel ist unentschieden ausgegangen!"); }