private static Player SelectSpieler(SchafkopfGame spiel) { Console.Write("Spieler der Spielen möchte (0-3): "); int spielerIndex = int.Parse(Console.ReadLine()); return(spiel.PlayerList[spielerIndex]); }
static void Main(string[] args) { SchafkopfGame schafkopf = new SchafkopfGame(); PrintField(schafkopf); var spieler = SelectSpieler(schafkopf); var sau = SelectSau(schafkopf); Sauspiel spiel = new Sauspiel(schafkopf, spieler, sau); }
private static void PrintField(SchafkopfGame spiel) { for (int i = 0; i < spiel.PlayerList.Count(); i++) { Console.Write("Spieler " + i + " :"); foreach (var karte in spiel.PlayerList[i].Cards) { Console.Write(karte.CardValue + " "); } Console.WriteLine(); } }
private static Card SearchCard(SchafkopfGame game, CardValues cardValue) { foreach (var player in game.PlayerList) { var searchCard = player.Cards.Where(k => k.CardValue == cardValue); if (searchCard.Count() != 0) { return(searchCard.First()); } } throw new InvalidOperationException("Card not Found"); }
private static Player SearchGamePartner(SchafkopfGame game, Card ass) { var result = game.PlayerList.Where(player => player.Cards.Contains(ass)); if (result.Count() != 0) { return(result.ToList().First()); } else { throw new InvalidOperationException("No Partner Found"); } }
private static CardValues SelectSau(SchafkopfGame spiel) { Console.Write("Sau auf die gespielt werden soll: (E/G/H/S): "); string sauFarbeInputLetter = Console.ReadLine(); CardValues[] kartenWerte = new CardValues[] { CardValues.EA, CardValues.GA, CardValues.HA, CardValues.SA }; string[] buchStabenWerte = new string[] { "E", "G", "H", "S" }; for (int i = 0; i < buchStabenWerte.Length; i++) { if (sauFarbeInputLetter == buchStabenWerte[i]) { return(kartenWerte[i]); } } throw new KeyNotFoundException("Sau nicht gefunden"); }
/// <summary> /// Initializes a new Game /// </summary> /// <param name="game">The game</param> /// <param name="chiefPlayer">The chief player</param> /// <param name="assValue">The card value of the ass</param> public Sauspiel(SchafkopfGame game, Player chiefPlayer, CardValues assValue) { var ass = SearchCard(game, assValue); if (ass.SchlagValue != Schlag.Ass) { throw new ArgumentException("Die Karte muss ein Ass sein"); } if (HasPlayerColor(chiefPlayer, ass) == false) { throw new InvalidOperationException("Der Spieler muss die Farbe haben, nach der er sucht"); } if (chiefPlayer == SearchGamePartner(game, ass)) { throw new InvalidOperationException("Der Spieler hat das Ass selber, auf das er spielen will"); } Game = game; ChiefPlayer = chiefPlayer; ChiefPlayerPartner = SearchGamePartner(game, ass); SearchedAss = ass; }