Ejemplo n.º 1
0
        public List<Cards> Create()
        {
            string[] masTypes = Enum.GetNames(typeof(Types));
            string[] masMasts = Enum.GetNames(typeof(Masts));

            for(int i = 0; i < masTypes.Length; i++)
            {
                for(int j = 0; j < masMasts.Length; j++)
                {
                    Cards card = new Cards();
                    object temp = Enum.Parse(typeof(Types), masTypes[i]);
                    card.typesCard = (Types)temp;
                    object tempM = Enum.Parse(typeof(Masts), masMasts[j]);
                    card.typesMast = (Masts)tempM;
                    cards.Add(card);
                }
            }
            return cards;
        }
Ejemplo n.º 2
0
 public List<Cards> Sort()
 {
     for(int i = 0; i < cards.Count; i++)
     {
         Random rand = new Random();
         int rnd = rand.Next(0, cards.Count);
         Cards temp = new Cards();
         temp = cards[i];
         cards[i] = cards[rnd];
         cards[rnd] = temp;
     }
     return cards;
 }
Ejemplo n.º 3
0
        public static void Start()
        {
            Console.WriteLine("Перед началом работы Логера, очистить его? (Y - Да \\ остальное - Нет)");
            string answer = Console.ReadLine();
            if((answer=="Y") || (answer=="y"))
            {
                Console.WriteLine("Перезаписываем лог файл");
                Log.Loger.Truncate();
            }

            List<Player> listPlayers = new List<Player>();
            int countPlayers = 0;
            #region Создание и сортировка колоды
            Cards koloda = new Cards();
            koloda.Create();
            koloda.Sort();
            #endregion
            #region Создание игроков и раздача им карт
            do
            {
                countPlayers = 0;
                Console.WriteLine("Введите количество игроков от 2 до 6:");
                try
                {
                    countPlayers = Convert.ToInt32(Console.ReadLine());
                }
                catch(Exception e)
                {
                    Log.Loger.Write(e);
                    Console.WriteLine(e.Message);
                }
                if(countPlayers == 5)
                {
                    string errorMessage = "36 карт на 5 поровну не делятся";
                    Log.Loger.Write(errorMessage);
                    Console.WriteLine(errorMessage);
                }
            } while((countPlayers > 6 || countPlayers < 2) || countPlayers == 5);
            for(int i = 0; i < countPlayers; i++)
            {
                listPlayers.Add(new Player());
                listPlayers[i].ListCards.AddRange(koloda.Razdacha(countPlayers));
            }
            #endregion
            #region Игра
            int winner = 0;
            do
            {
                int count = 0;
                while(listPlayers[winner].CountPlayerCards != 36 && count != 100)
                {
                    Console.Clear();
                    List<Cards> Table = new List<Cards>(countPlayers);
                    for(int i = 0; i < countPlayers; i++)
                    {
                        if(listPlayers[i].CountPlayerCards != 0)
                        {
                            Table.Add(listPlayers[i].ListCards[0]);
                            listPlayers[i].ListCards.RemoveAt(0);
                        }
                        else
                        {
                            Cards card = new Cards();
                            Table.Add(card);
                        }
                    }
                    for(int i = 0; i < countPlayers; i++)
                    {
                        if(listPlayers[i].CountPlayerCards != 0)
                        {
                            Console.WriteLine("{0} игрок {1} карт: ", i + 1, listPlayers[i].CountPlayerCards);
                            listPlayers[i].ShowPlayerCards();
                            Console.WriteLine();
                        }
                    }
                    Console.WriteLine("\nКарты на столе:");
                    for(int i = 0; i < Table.Count; i++)
                    {
                        if(Table[i].typesCard != 0)
                        {
                            Console.WriteLine("{0} {1}\t", Table[i].typesCard, Table[i].typesMast);
                        }
                    }
                    for(int i = countPlayers - 1; i >= 0; i--)
                    {
                        if(Table[i].typesCard != 0)
                        {
                            if(Table[i].typesCard >= Table[winner].typesCard)
                            {
                                winner = i;
                            }
                        }
                    }
                    Console.WriteLine("Победил игрок № {0}\n", winner + 1);
                    for(int i = 0; i < Table.Count; i++)
                    {
                        if(Table[i].typesCard != 0)
                        {
                            listPlayers[winner].ListCards.Add(Table[i]);
                        }
                    }
                    count++;
                }
                Console.ReadLine();
                //Loger
            } while(listPlayers[winner].CountPlayerCards != 36);
            #endregion
            #region Победа
            Console.WriteLine("Игрок № {0} - ПОБЕДИТЕЛЬ!!!", winner + 1);
            Console.ReadLine();
            #endregion
        }