Пример #1
0
        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]);
        }
Пример #2
0
        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);
        }
Пример #3
0
 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();
     }
 }
Пример #4
0
 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");
 }
Пример #5
0
        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");
            }
        }
Пример #6
0
        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");
        }
Пример #7
0
        /// <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;
        }