Example #1
0
 public WeaponController(Weapon first, Weapon second)
 {
     primaryWeapon = first;
     sideArm = second;
 }
        static void Main(string[] args)
        {
            ConsoleKeyInfo key_info;
            Weapon gun = new Weapon();
            int t1, t2;
            int p;
            Bullet tmpB = new Bullet();
            string tmp;
            Regex rxNums = new Regex(@"^\d+$");
            Console.WriteLine("Нажмите s для добавления пули по-умолчанию\n\tp для добавления пули с параметром\n\th для выстрела\n\tq для заряда\n\tk для сложения пуль\n\tw для заряда нескольких\n\ti для выстрела нескольких");
            do
            {
                key_info = Console.ReadKey(true);

                if (key_info.Key != ConsoleKey.S && key_info.Key != ConsoleKey.P && key_info.Key != ConsoleKey.Q && key_info.Key != ConsoleKey.H && key_info.Key != ConsoleKey.Escape && key_info.Key != ConsoleKey.F && key_info.Key != ConsoleKey.K && key_info.Key != ConsoleKey.W && key_info.Key != ConsoleKey.I)
                {
                    Console.SetCursorPosition(0, Console.CursorTop - 1);
                }
                if (key_info.Key == ConsoleKey.S)
                {
                    //tmpB.SetPower(1);
                    Weapon.AddBullet(1);
                }
                if (key_info.Key == ConsoleKey.P)
                {
                    do
                    {
                        Console.WriteLine("Введите мощьность от 1 до 5:\t");
                        tmp = Console.ReadLine();
                        if (rxNums.IsMatch(tmp))
                        {
                            p = int.Parse(tmp);
                            if(p > 0 && p < 6){
                                //tmpB.SetPower(p);
                                Weapon.AddBullet(p);
                                break;
                            }
                        }
                        else
                        {
                            Console.SetCursorPosition(0, Console.CursorTop - 1);
                            Console.WriteLine("                               ");
                            Console.SetCursorPosition(0, Console.CursorTop - 2);
                        }
                    } while (true);
                }
                if (key_info.Key == ConsoleKey.H)
                {
                    gun--;
                }
                if (key_info.Key == ConsoleKey.Q)
                {
                    gun++;
                }
                if (key_info.Key == ConsoleKey.K)
                {
                    Weapon.PrintStock();
                    Console.WriteLine("Выбирете два номера");
                    #region do
                    do
                    {
                        tmp = Console.ReadLine();
                        if (rxNums.IsMatch(tmp))
                        {
                            t1 = int.Parse(tmp);
                            if (t1 > 0 && t1 <= Weapon.GetCountStock())
                            {
                                do
                                {
                                    tmp = Console.ReadLine();
                                    if (rxNums.IsMatch(tmp))
                                    {
                                        t2 = int.Parse(tmp);
                                        if (t2 > 0 && t2 <= Weapon.GetCountStock() && t2 != t1)
                                        {
                                            break;
                                        }
                                        else
                                        {
                                            Console.SetCursorPosition(0, Console.CursorTop - 1);
                                            Console.WriteLine("                               ");
                                            Console.SetCursorPosition(0, Console.CursorTop - 1);
                                        }
                                    }
                                    else
                                    {
                                        Console.SetCursorPosition(0, Console.CursorTop - 1);
                                        Console.WriteLine("                               ");
                                        Console.SetCursorPosition(0, Console.CursorTop - 1);
                                    }
                                } while (true);
                                break;
                            }
                            else
                            {
                                Console.SetCursorPosition(0, Console.CursorTop - 1);
                                Console.WriteLine("                               ");
                                Console.SetCursorPosition(0, Console.CursorTop - 1);
                            }
                        }
                        else
                        {
                            Console.SetCursorPosition(0, Console.CursorTop - 1);
                            Console.WriteLine("                               ");
                            Console.SetCursorPosition(0, Console.CursorTop - 1);
                        }
                    } while (true);
                    #endregion
                    Weapon.ConcatBullet(t1, t2);
                }
                if (key_info.Key == ConsoleKey.W)
                {
                    Console.WriteLine("Введите кол-во зарядов:\t");
                    tmp = Console.ReadLine();
                    if (rxNums.IsMatch(tmp))
                    {
                        p = int.Parse(tmp);
                        gun += p;
                    }
                }
                if (key_info.Key == ConsoleKey.I)
                {
                    do
                    {
                        Console.WriteLine("Введите кол-во выстрелов от 1 до 7:\t");
                        tmp = Console.ReadLine();
                        if (rxNums.IsMatch(tmp))
                        {
                            p = int.Parse(tmp);
                            if (p > 0 && p < 8)
                            {
                                gun -= p;
                                break;
                            }
                        }
                        else
                        {
                            Console.SetCursorPosition(0, Console.CursorTop - 1);
                            Console.WriteLine("                               ");
                            Console.SetCursorPosition(0, Console.CursorTop - 2);
                        }
                    } while (true);
                }
                Console.WriteLine("Дальше");
            } while (key_info.Key != ConsoleKey.Escape);
        }
        static void Main(string[] args)
        {
            Weapon[] Tools = new Weapon[10];

            Tools[0] = Knife.Instance("knife");
            Tools[1] = HandGun.Instance("Пистоль", 7, 70, 100);
            Tools[2] = Assault.Instance("Автомат", 30, 100, 300);
            Tools[3] = Knife.Instance("knife");
            Tools[4] = HandGun.Instance("Пистоль", 10, 70, 100);
            Tools[5] = Assault.Instance("Автомат", 30, 100, 300);
            Tools[6] = Grenade_1.Instance("Граната 1", 80, 20);
            Tools[7] = Grenade_2.Instance("Граната 2", 40, 20);
            Tools[8] = Grenade_1.Instance("Граната 1", 80, 20);
            Tools[9] = Grenade_2.Instance("Граната 2", 40, 20);

            for (int i = 0; i < 10; i++)
            {
                if(Tools[i]!=null)
                    Tools[i].Reload(10);
            }

            for (int i = 0; i < 10; i++)
            {
                if (Tools[i] != null)
                    Tools[i].Shot(0);
            }
            Console.ReadLine();
            //Tools[7].Reload(10);
            //Tools[7].Shot(5);
        }
        static void Main(string[] args)
        {
            ConsoleKeyInfo key_info;
            Weapon         gun = new Weapon();
            int            t1, t2;
            int            p;
            Bullet         tmpB = new Bullet();
            string         tmp;
            Regex          rxNums = new Regex(@"^\d+$");

            Console.WriteLine("Нажмите s для добавления пули по-умолчанию\n\tp для добавления пули с параметром\n\th для выстрела\n\tq для заряда\n\tk для сложения пуль\n\tw для заряда нескольких\n\ti для выстрела нескольких");
            do
            {
                key_info = Console.ReadKey(true);

                if (key_info.Key != ConsoleKey.S && key_info.Key != ConsoleKey.P && key_info.Key != ConsoleKey.Q && key_info.Key != ConsoleKey.H && key_info.Key != ConsoleKey.Escape && key_info.Key != ConsoleKey.F && key_info.Key != ConsoleKey.K && key_info.Key != ConsoleKey.W && key_info.Key != ConsoleKey.I)
                {
                    Console.SetCursorPosition(0, Console.CursorTop - 1);
                }
                if (key_info.Key == ConsoleKey.S)
                {
                    //tmpB.SetPower(1);
                    Weapon.AddBullet(1);
                }
                if (key_info.Key == ConsoleKey.P)
                {
                    do
                    {
                        Console.WriteLine("Введите мощьность от 1 до 5:\t");
                        tmp = Console.ReadLine();
                        if (rxNums.IsMatch(tmp))
                        {
                            p = int.Parse(tmp);
                            if (p > 0 && p < 6)
                            {
                                //tmpB.SetPower(p);
                                Weapon.AddBullet(p);
                                break;
                            }
                        }
                        else
                        {
                            Console.SetCursorPosition(0, Console.CursorTop - 1);
                            Console.WriteLine("                               ");
                            Console.SetCursorPosition(0, Console.CursorTop - 2);
                        }
                    } while (true);
                }
                if (key_info.Key == ConsoleKey.H)
                {
                    gun--;
                }
                if (key_info.Key == ConsoleKey.Q)
                {
                    gun++;
                }
                if (key_info.Key == ConsoleKey.K)
                {
                    Weapon.PrintStock();
                    Console.WriteLine("Выбирете два номера");
                    #region do
                    do
                    {
                        tmp = Console.ReadLine();
                        if (rxNums.IsMatch(tmp))
                        {
                            t1 = int.Parse(tmp);
                            if (t1 > 0 && t1 <= Weapon.GetCountStock())
                            {
                                do
                                {
                                    tmp = Console.ReadLine();
                                    if (rxNums.IsMatch(tmp))
                                    {
                                        t2 = int.Parse(tmp);
                                        if (t2 > 0 && t2 <= Weapon.GetCountStock() && t2 != t1)
                                        {
                                            break;
                                        }
                                        else
                                        {
                                            Console.SetCursorPosition(0, Console.CursorTop - 1);
                                            Console.WriteLine("                               ");
                                            Console.SetCursorPosition(0, Console.CursorTop - 1);
                                        }
                                    }
                                    else
                                    {
                                        Console.SetCursorPosition(0, Console.CursorTop - 1);
                                        Console.WriteLine("                               ");
                                        Console.SetCursorPosition(0, Console.CursorTop - 1);
                                    }
                                } while (true);
                                break;
                            }
                            else
                            {
                                Console.SetCursorPosition(0, Console.CursorTop - 1);
                                Console.WriteLine("                               ");
                                Console.SetCursorPosition(0, Console.CursorTop - 1);
                            }
                        }
                        else
                        {
                            Console.SetCursorPosition(0, Console.CursorTop - 1);
                            Console.WriteLine("                               ");
                            Console.SetCursorPosition(0, Console.CursorTop - 1);
                        }
                    } while (true);
                    #endregion
                    Weapon.ConcatBullet(t1, t2);
                }
                if (key_info.Key == ConsoleKey.W)
                {
                    Console.WriteLine("Введите кол-во зарядов:\t");
                    tmp = Console.ReadLine();
                    if (rxNums.IsMatch(tmp))
                    {
                        p    = int.Parse(tmp);
                        gun += p;
                    }
                }
                if (key_info.Key == ConsoleKey.I)
                {
                    do
                    {
                        Console.WriteLine("Введите кол-во выстрелов от 1 до 7:\t");
                        tmp = Console.ReadLine();
                        if (rxNums.IsMatch(tmp))
                        {
                            p = int.Parse(tmp);
                            if (p > 0 && p < 8)
                            {
                                gun -= p;
                                break;
                            }
                        }
                        else
                        {
                            Console.SetCursorPosition(0, Console.CursorTop - 1);
                            Console.WriteLine("                               ");
                            Console.SetCursorPosition(0, Console.CursorTop - 2);
                        }
                    } while (true);
                }
                Console.WriteLine("Дальше");
            } while (key_info.Key != ConsoleKey.Escape);
        }