Esempio n. 1
0
        private void OnTankDestroyed(object sender, EventArgs e)
        {
            var destroyedTank = sender as Tank;

            destroyedTank.Unsubscribe();
            destroyedTank.CheckPosition -= Field.GetCheckPositionListener();
            destroyedTank.Shot          -= OnShot;
            destroyedTank.Destroyed     -= OnTankDestroyed;

            foreach (var playerTank in Tanks)
            {
                if (playerTank != destroyedTank)
                {
                    playerTank.CheckPosition    -= destroyedTank.GetCheckPositionListener();
                    destroyedTank.CheckPosition -= playerTank.GetCheckPositionListener();
                }
            }
            Tanks.Remove(destroyedTank);

            foreach (var compTank in Field.CompsManager.Tanks)
            {
                compTank.CheckPosition -= destroyedTank.GetCheckPositionListener();
            }

            AliveTanks--;
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            Random rand = new Random();

            Tanks[] WIN = new Tanks[5];
            Tanks[] T34 = new Tanks[5];
            for (int i = 0; i < T34.Length; i++)
            {
                WIN[i] = new Tanks();
            }
            for (int i = 0; i < T34.Length; i++)
            {
                T34[i] = new Tanks("T34", rand.Next(0, 100), rand.Next(0, 100), rand.Next(0, 100));
            }

            Tanks[] Pantera = new Tanks[5];

            for (int i = 0; i < T34.Length; i++)
            {
                Pantera[i] = new Tanks("pantera", rand.Next(0, 100), rand.Next(0, 100), rand.Next(0, 100));
            }
            for (int i = 0; i < 5; i++)
            {
                T34[i].Show();
                Pantera[i].Show();;
                WIN[i] = T34[i] * Pantera[i];
                Console.WriteLine();
                Console.WriteLine($"В {i + 1} схватке победил");
                WIN[i].Show();
                Console.WriteLine();
                Console.WriteLine();
            }
            Console.ReadLine();
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,Country,Class,Tier,TankName,HitPoints,ROF,AimTime,Accuracy,AvgPenetration,AvgDamage,Dpm,HullArmor,TurretArmor,ImgSrc")] Tanks tanks)
        {
            if (id != tanks.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(tanks);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TanksExists(tanks.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(tanks));
        }
Esempio n. 4
0
        public void Update(GameTime gameTime, bool pCanPlay)
        {
            if (Tanks.Count > 0)
            {
                IndexTank = (byte)(IndexTank % Tanks.Count);
                Tank CurrentTank = Tanks[IndexTank];

                Control.Update(pCanPlay);

                // Sélectionne le tank suivant
                if (Control.OnPressedN && pCanPlay && !CurrentTank.Action.BlockAction)
                {
                    CurrentTank.IsControlled = false;
                    IndexTank++;
                }

                // Si le joueur peut jouer (si c'est son tour) gère les entrées claviers.
                CurrentTank = Tanks[IndexTank];
                CurrentTank.IsControlled = pCanPlay;
                CurrentTank.Space        = Control.IsDownSpace;
                CurrentTank.Left         = Control.IsDownLeft;
                CurrentTank.Right        = Control.IsDownRight;
                CurrentTank.Up           = Control.IsDownUp;
                CurrentTank.Down         = Control.IsDownDown;

                Tanks.RemoveAll(t => t.Remove);
                if (Tanks.Count == 0)
                {
                    Remove = true;
                }
            }
        }
Esempio n. 5
0
        public ActionResult Create(Tanks tanks, HttpPostedFileBase upload)
        {
            if (ModelState.IsValid)
            {
                if (upload != null)
                {
                    // формируем имя файла
                    string fileName = tanks.TankID.ToString() + System.IO.Path.GetExtension(upload.FileName);
                    // сохраняем файл в папку Images в проекте
                    upload.SaveAs(Server.MapPath("~/Images/" + fileName));
                    tanks.TankPicture = fileName;
                    db.Tanks.Add(tanks);
                    db.SaveChanges();
                    int id = tanks.TankID;
                    return(RedirectToAction("Edit", new { id = tanks.TankID }));
                }


                db.Tanks.Add(tanks);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(tanks));
        }
Esempio n. 6
0
        /// <summary>
        /// Calculate performance metrics on the player
        /// </summary>
        /// <param name="wn8ExpectedValues"></param>
        public void CalculatePerformance(Wn8ExpectedValues wn8ExpectedValues)
        {
            if (Tanks.Length == 0)
            {
                return;
            }

            // Only tanks that I know about
            Tanks = Tanks.Where(t => wn8ExpectedValues.Exists(t.TankId) && t.All.Battles > 0).ToArray();

            if (Tanks.Length == 0)
            {
                return;
            }

            Battles = Tanks.Sum(t => t.All.Battles);
            WinRate = Tanks.Sum(t => t.All.Wins) * 1.0 / Battles;
            AvgTier = Tanks.Sum(t => wn8ExpectedValues[t.TankId].Tier * t.All.Battles) * 1.0 / Battles;
            Wn8     = wn8ExpectedValues.CalculateWn8(Tanks.ToDictionary(t => t.TankId, t => (TankPlayerWn8Statistics)t.All));

            Tier10Tanks = Tanks.Where(t => wn8ExpectedValues[t.TankId].Tier == 10).ToArray();

            if (Tier10Tanks.Length == 0)
            {
                return;
            }

            Tier10Battles      = Tier10Tanks.Sum(t => t.All.Battles);
            Tier10WinRate      = Tier10Tanks.Sum(t => t.All.Wins) * 1.0 / Tier10Battles;
            Tier10Wn8          = wn8ExpectedValues.CalculateWn8(Tier10Tanks.ToDictionary(t => t.TankId, t => (TankPlayerWn8Statistics)t.All));
            Tier10DirectDamage = Tier10Tanks.Sum(t => t.All.DamageDealt) * 1.0 / Tier10Battles;
        }
Esempio n. 7
0
 public State(Spies spy, Infantry inf, Tanks tank, Jets jet, Bombers bomb, Sams sam, Ships ship)
 {
     this.Spy          = spy;
     this.Inf          = inf;
     this.Tank         = tank;
     this.Jet          = jet;
     this.Bomb         = bomb;
     this.Sam          = sam;
     this.Ship         = ship;
     this.UserAttPwr   = this.Inf.InfAttPwr + this.Tank.TankAttPwr + this.Jet.JetAttPwr + this.Bomb.BombAttPwr + this.Ship.ShipAttPwr;
     this.UserGADefPwr = this.Inf.InfAttPwr + this.Tank.TankAttPwr;
     this.UserARDefPwr = this.Jet.JetAttPwr + this.Sam.SamAttPwr;
     this.UserAADefPwr = this.Ship.ShipAttPwr;
     this.UserDefPwr   = this.Inf.InfAttPwr + this.Tank.TankAttPwr + this.Sam.SamAttPwr + this.Ship.ShipAttPwr;
     this.UserGbAttPwr = (this.Spy.SpyUserPwr * this.Spy.SpyCount) + (this.Jet.JetUserPwr * this.Jet.JetCount) + (this.Bomb.BombUserPwr * this.Bomb.BombCount);
     this.userGbDefPwr = (this.Inf.InfUserPwr * this.Inf.InfCount) + (this.Tank.TankUserPwr * this.Tank.TankCount) + (this.Sam.SamUserPwr * this.Sam.SamCount) + (this.Ship.ShipUserPwr * this.Ship.ShipCount);
     if (this.UserGbAttPwr > this.userGbDefPwr)
     {
         this.GbProtection = "No";
     }
     else
     {
         this.GbProtection = "Yes";
     }
     this.Readiness = 0;
 }
Esempio n. 8
0
        private void CreateTanks()
        {
            int x, y;

            //единоразовое создание охотника под индеком 0
            if (Tanks.Count == 0)
            {
                Tanks.Add(new Hunter(size, r.Next(7) * 40, r.Next(7) * 40));
            }

            while (Tanks.Count < tanksAmount)
            {
                x = r.Next(7) * 40;
                y = r.Next(7) * 40;
                bool quit = false;

                foreach (Tank t in Tanks)
                {
                    if (x == t.X && y == t.Y || Pl.X == x && Pl.Y == y)
                    {
                        quit = true;
                    }
                }
                if (quit)
                {
                    continue;
                }

                Tanks.Add(new Tank(size, x, y));
            }
        }
Esempio n. 9
0
    static void Main()
    {
        /* старая конструкция
        Tanks KV = new Tanks(); //создаем объект класса Tanks и заполняем поля
        KV.nameTank = "КВ";
        KV.healtPoint = 986; // 15 shoot from Tiger
        KV.damage = 94.28;
        KV.shootinMin = 7.34; //sim 8.2

        Tanks Tiger;
        Tiger = new Tanks(); //создаем объект класса Tanks и заполняем поля
        Tiger.nameTank = "Тигр";
        Tiger.healtPoint = 1200; // 13 shoot from KV
        Tiger.damage = 68.57;
        Tiger.shootinMin = 6.67; //sim 8.9
         * */

        /*объект с конструктором*/
        Tanks KV = new Tanks("КВ", 986, 94.28, 7.34); //создаем объект класса Tanks и заполняем поля
        Tanks Tiger = new Tanks("Тигр", 1200, 68.57, 6.67); //создаем объект класса Tanks и заполняем поля

        Console.WriteLine("Танк:\t\tHP:\t\tУрон:\t\tВыст/мин.:\tПерезарядка:\n");
        Console.WriteLine("{0}\t\t{1}\t\t{2}\t\t{3}\t\t{4:#.#}", KV.nameTank, KV.healtPoint, KV.damage, KV.shootinMin, KV.reloadTime);
        Console.WriteLine("{0}\t\t{1}\t\t{2}\t\t{3}\t\t{4:#.#}", Tiger.nameTank, Tiger.healtPoint, Tiger.damage, Tiger.shootinMin, Tiger.reloadTime);
        Console.WriteLine();

        Console.WriteLine("Танк {0} уничтожит танк {1} за {2} выстрелов за {3:####.#} сек.", KV.nameTank, Tiger.nameTank, KV.KillShoot(Tiger.healtPoint), KV.KillTime(Tiger.healtPoint));
        Console.WriteLine("Танк {0} уничтожит танк {1} за {2} выстрелов за {3:####.#} сек.", Tiger.nameTank, KV.nameTank, Tiger.KillShoot(KV.healtPoint), Tiger.KillTime(KV.healtPoint));
        Console.ForegroundColor = ConsoleColor.Red;
        Console.WriteLine("Танк {0} ПОБЕДИЛ!!!", (Tiger.KillTime(KV.healtPoint) > KV.KillTime(Tiger.healtPoint)) ? KV.nameTank : Tiger.nameTank);
        Console.ResetColor();
        Console.WriteLine();
    }
Esempio n. 10
0
        private void CreateTank(int percent)
        {
            if (Tanks.Count < tankCount && rnd.Next(100) <= percent)
            {
                int x    = rnd.Next(view.MapWidth - BlockSize);
                int y    = rnd.Next(view.MapHeight - BlockSize);
                var tank = new TankViewModel(x, y, 16, 16, (Direction)rnd.Next(4));

                if (Player != null)
                {
                    if (Walls.Find(wall => IsCollision(wall, tank)) == null &&
                        IsCollision(Player, tank) == false &&
                        Tanks.Find(tnk => tnk != tank ? IsCollision(tnk, tank) : false) == null)
                    {
                        Tanks.Add(tank);
                    }
                }
                else
                {
                    if (Walls.Find(wall => IsCollision(wall, tank)) == null &&
                        IsCollision(reservePlayer, tank) == false &&
                        Tanks.Find(tnk => tnk != tank ? IsCollision(tnk, tank) : false) == null)
                    {
                        Tanks.Add(tank);
                    }
                }
            }
        }
Esempio n. 11
0
        public ActionResult DeleteConfirmed(int id)
        {
            Tanks tanks = db.Tanks.Find(id);

            db.Tanks.Remove(tanks);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Esempio n. 12
0
 private void InitializeTanks()
 {
     _tanks = new Tanks();
     foreach (var component in SingletonConfiguration.Instance.Components)
     {
         _tanks.Add(TankFactory.CreateTank(component));
     }
 }
 public void DistributeFuelConsumption(double liters)
 {
     foreach (Tank tank in Tanks.Where(tank => !tank.IsEmpty()))
     {
         tank.Consume(liters);
         return;
     }
 }
Esempio n. 14
0
        public ActionResult DeleteConfirmed(int id)
        {
            //Удаление заданной записи из таблицы Tanks
            Tanks tanks = db.Tanks.Find(id);

            db.Tanks.Remove(tanks);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Esempio n. 15
0
 private void RotateTank(float percent)
 {
     Tanks.ForEach(tank =>
     {
         if (rnd.Next(100) < percent)
         {
             tank.ChangeDirection((Direction)rnd.Next(4));
         }
     });
 }
Esempio n. 16
0
 public IActionResult OnGet(int TankId)
 {
     tank = new Tanks();
     tank = tankData.GetById(TankId);
     if (tank == null)
     {
         return(RedirectToPage("./NotFound"));
     }
     return(Page());
 }
        public void Created()
        {
            var @event = new PetrolStationCreated(
                id: Id,
                name: Name,
                tanks: Tanks.Select(x => x.ToContract()).ToList(),
                nozzles: Nozzles.Select(x => x.ToContract()).ToList());

            EventsToSend.Enqueue(@event);
        }
Esempio n. 18
0
        public static bool IsMainTank(this GameObject unit)
        {
            var gameObject = unit as Character;

            return(gameObject != null &&
                   Tanks.Contains(gameObject.CurrentJob) &&
                   (gameObject.BeingTargetedBy(Core.Me.CurrentTarget) ||
                    gameObject.BeingTargetedBy(gameObject.TargetGameObject) ||
                    PartyManager.AllMembers.Where(r => r != null).Select(r => r.BattleCharacter).Where(r => Tanks.Contains(r.CurrentJob)).Count() == 1));
        }
Esempio n. 19
0
        public async Task <IActionResult> Create([Bind("Id,Country,Class,Tier,TankName,HitPoints,ROF,AimTime,Accuracy,AvgPenetration,AvgDamage,Dpm,HullArmor,TurretArmor,ImgSrc")] Tanks tanks)
        {
            if (ModelState.IsValid)
            {
                _context.Add(tanks);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(tanks));
        }
Esempio n. 20
0
 public void FillLists(Tanks tank)
 {
     if (tank.TankType.Equals("T34"))
     {
         team1.Add(tank);
     }
     else
     {
         team2.Add(tank);
     }
 }
Esempio n. 21
0
 public static TankData FindTankData(Tanks myTank)
 {
     for (int i = 0; i < tanks.Count; i++)
     {
         if (tanks[i].tank == myTank)
         {
             return(tanks[i].tankData);
         }
     }
     return(null);
 }
 private void frmTanks_Load(System.Object sender, System.EventArgs e)
 {
     tank1            = new Tanks(12, 124);
     tank2            = new Tanks(52, 234);
     pctTankTwo.Image = Properties.Resources.GreenTankUp;
     pctTank1.Image   = Properties.Resources.SovietTankUp;
     Bullet1Direction = dirStop;
     Bullet2Direction = dirStop;
     Bullet1          = new PictureBox();
     Bullet2          = new PictureBox();
 }
Esempio n. 23
0
 public TankButton FindTankButton(Tanks myTank)
 {
     for (int i = 0; i < tankButtons.Count; i++)
     {
         if (tankButtons[i].tank == myTank)
         {
             return(tankButtons[i].tankButton);
         }
     }
     return(null);
 }
Esempio n. 24
0
        public ActionResult Create([Bind(Include = "TankID,TankType,TankVolume,TankWeight,TankMaterial")] Tanks tanks)
        {
            if (ModelState.IsValid)
            {
                db.Tanks.Add(tanks);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(tanks));
        }
Esempio n. 25
0
        public Tank SpawnTank(string tankName)
        {
            if (Tanks.Count > MaxTanks || Tanks.ContainsKey(tankName))
            {
                return(null);
            }
            tankName = $"{Id}_{tankName}";
            var newTank = new Tank(this, tankName);

            Tanks.Add(tankName, newTank);
            return(newTank);
        }
Esempio n. 26
0
        public ActionResult Edit([Bind(Include = "TankID,TankType,TankVolume,TankWeight,TankMaterial")] Tanks tanks)
        {
            ViewBag.Title = "Емкости";

            if (ModelState.IsValid)
            {
                db.Entry(tanks).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(tanks));
        }
Esempio n. 27
0
        // GET: Tanks/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Tanks tanks = db.Tanks.Find(id);

            if (tanks == null)
            {
                return(HttpNotFound());
            }
            return(View(tanks));
        }
Esempio n. 28
0
 public void SetNewGameTanksParameters(int players)
 {
     Tanks.Clear();
     Tanks.Add(P1Tank);
     AliveTanks = 1;
     if (players == 2)
     {
         Tanks.Add(P2Tank);
         AliveTanks = 2;
     }
     foreach (var tank in Tanks)
     {
         tank.SetNewGameParameters();
     }
 }
Esempio n. 29
0
        // GET: Tanks/Delete/5
        public ActionResult Delete(int?id)
        {
            ViewBag.Title = "Емкости";

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Tanks tanks = db.Tanks.Find(id);

            if (tanks == null)
            {
                return(HttpNotFound());
            }
            return(View(tanks));
        }
Esempio n. 30
0
 public override string ToString()
 {
     return(new System.Text.StringBuilder(0x200)
            .AppendLine(" Network")
            .Append("  Nodes      : ").Append(_nodes.Count).AppendLine()
            .Append("  Links      : ").Append(_links.Count).AppendLine()
            .Append("  Pattern    : ").Append(_patterns.Count).AppendLine()
            .Append("  Curves     : ").Append(_curves.Count).AppendLine()
            .Append("  Controls   : ").Append(_controls.Count).AppendLine()
            .Append("  Labels     : ").Append(_labels.Count).AppendLine()
            .Append("  Rules      : ").Append(_rules.Count).AppendLine()
            .Append("  Tanks      : ").Append(Tanks.Count()).AppendLine()
            .Append("  Reservoirs : ").Append(Reservoirs.Count()).AppendLine()
            .Append("  Pumps      : ").Append(Pumps.Count()).AppendLine()
            .Append("  Valves     : ").Append(Valves.Count()).AppendLine()
            .ToString());
 }
Esempio n. 31
0
        public FluidTank AddTank(String id, int transmitPin, int receivePin, int capacity, int minDistance = JSN_SR04T.MIN_DISTANCE, int maxDistance = JSN_SR04T.MAX_DISTANCE)
        {
            FluidTank ft = new FluidTank(transmitPin, receivePin, id);

            ft.Capacity    = capacity;
            ft.MinDistance = minDistance;
            ft.MaxDistance = maxDistance;
            ft.Offset      = 3;

            ft.SampleInterval = SampleInterval;
            ft.SampleSize     = SampleSize;

            Tanks.Add(ft);
            AddDevice(ft);

            return(ft);
        }