/// <summary> /// Plants new bomb on map /// </summary> /// <param name="bomb"></param> public void Plant(Bomb bomb) { if (Bombs.FirstOrDefault(x => x.Position.X == bomb.Position.X && x.Position.Y == bomb.Position.Y) == null) { Fields[bomb.Position.X, bomb.Position.Y].Bomb = bomb; Bombs.Add(bomb); } }
private void WindowKeyPressed(object sender, KeyEventArgs e) { if (e.Code == Keyboard.Key.F3) { DisplayDebug = !DisplayDebug; } if (e.Code == Keyboard.Key.Space && PlayerOne.CanDropBomb) { Bombs.Add(PlayerOne.DropBomb(GameTime.TotalTimeElapsed)); } PlayerOne.KeyUpControls(e); }
public void AddBomb(Side side, int src, int dst, int remaining) { if (side == Side.MyOwn) { Bombs.Add(new Bomb { Side = side, Dst = dst, Remaining = remaining, Src = src }); } }
private void BombShoot() { lock (Lasers) { BombSound.Play(); BombCounter++; var bomb = new Bomb { Shape = { Position = Center } }; bomb.CurrentVelocity = AimDirectionNormal * bomb.MaxVelocity; Bombs.Add(bomb); } }
/// <summary> /// Placing bombs on the map /// </summary> public void PlaceBomb(Map Map) { if (NumberOfBombs > Bombs.Count) { if (!Map.Tiles[Key].ContainsBomb) { Map.Tiles[Key].ContainsBomb = true; Map.Tiles[Key].WhoPlaced = this; Bomb nova = new Bomb(Map.Tiles[Key].Rectangle.Location, ExplosionRadius); Bombs.Add(Key, nova); Map.placedBombs.Add(Key, nova); } } }
private void CreateBoard() { var rnd = new Random(); for (var i = 0; i < 20; i++) { for (var j = 0; j < 20; j++) { var rand = rnd.Next(25) + 1; string text; switch (rand) { case 1: text = "1"; break; case 2: text = "2"; break; case 3: text = "3"; break; case 4: text = "4"; break; case 5: text = "5"; break; default: text = ""; break; } var x = rnd.Next(Width - 80); var y = rnd.Next(Height - 50); Bombs.Add(new Bomb { BombId = text, BombCanvasLeft = x, BombCanvasTop = y, }); } } }
public int SetBombs() { int checker = 0; for (int i = 0; i < MyWindow.mapa.Grid.Count; i++) { for (int j = 0; j < MyWindow.mapa.Grid[i].Count; j++) { if (MyWindow.mapa.Grid[i][j].WybranaBomba == true) { Bombs.Add(MyWindow.mapa.Grid[i][j]);//agregacja MyWindow.mapa.Grid[i][j].WybranaBomba = false; checker += 1; } } } return(checker); }
public void Start(Texture2D bomb_texture, GameTime gametime, SpriteBatch spritebatch) { if (Teachers.Count != 0) { int randx = random.Next(832, 4928); spawn += (float)gametime.ElapsedGameTime.TotalSeconds; if (spawn >= 1) { spawn = 0; if (Bombs.Count() < 30) { Bombs.Add(new BombQuestion(bomb_texture, new Vector2(randx, 0), spritebatch)); } } } else { Bombs.Clear(); } }
public void AddBomb(Bomb bomb) { Bombs.Add(bomb); CellDict[bomb.pos].Bomb = bomb; }
public void GenerateBombs() { foreach (Bomb bomb in Bombs) { if (!(GameMap.MapUnits[bomb.UnitPosition.Row, bomb.UnitPosition.Column] is Snake)) { GameMap.RemoveUnit(bomb.UnitPosition); } } Bombs.Clear(); Random random = new Random(); int aux = random.Next(100); if (aux < 60) // place one Bomb { bool canPut = false; while (!canPut) { Random rdRow = new Random(); Random rdColumn = new Random(); int auxRow = rdRow.Next(GameMap.NumberOfRows); int auxColumn = rdColumn.Next(GameMap.NumberOfColumns); if (GameMap.MapUnits[auxRow, auxColumn] == null && (((auxRow - SnakeParts[0].UnitPosition.Row) < -2) || ((auxRow - SnakeParts[0].UnitPosition.Row) > 2) || ((auxColumn - SnakeParts[0].UnitPosition.Column) < -2) || ((auxColumn - SnakeParts[0].UnitPosition.Column) > 2))) { GameMap.AddUnit(new Bomb(new Position(auxRow, auxColumn))); Bombs.Add(new Bomb(new Position(auxRow, auxColumn))); canPut = true; } } } else // place two bombs { bool canPut = false; while (!canPut) { Random rdRow1 = new Random(); Random rdColumn1 = new Random(); Random rdRow2 = new Random(); Random rdColumn2 = new Random(); int auxRow1 = rdRow1.Next(GameMap.NumberOfRows); int auxColumn1 = rdColumn1.Next(GameMap.NumberOfColumns); int auxRow2 = rdRow2.Next(GameMap.NumberOfRows); int auxColumn2 = rdColumn2.Next(GameMap.NumberOfColumns); if ((auxRow1 != auxRow2 || auxColumn1 != auxColumn2) && GameMap.MapUnits[auxRow1, auxColumn1] == null && GameMap.MapUnits[auxRow2, auxColumn2] == null && (((auxRow1 - SnakeParts[0].UnitPosition.Row) < -2) || ((auxRow1 - SnakeParts[0].UnitPosition.Row) > 2) || ((auxColumn1 - SnakeParts[0].UnitPosition.Column) < -2) || ((auxColumn1 - SnakeParts[0].UnitPosition.Column) > 2)) && (((auxRow2 - SnakeParts[0].UnitPosition.Row) < -2) || ((auxRow2 - SnakeParts[0].UnitPosition.Row) > 2) || ((auxColumn2 - SnakeParts[0].UnitPosition.Column) < -2) || ((auxColumn2 - SnakeParts[0].UnitPosition.Column) > 2))) { GameMap.AddUnit(new Bomb(new Position(auxRow1, auxColumn1))); Bombs.Add(new Bomb(new Position(auxRow1, auxColumn1))); GameMap.AddUnit(new Bomb(new Position(auxRow2, auxColumn2))); Bombs.Add(new Bomb(new Position(auxRow2, auxColumn2))); canPut = true; } } } }
private void Run() { string[] inputs; inputs = Console.ReadLine().Split(' '); int width = int.Parse(inputs[0]); int height = int.Parse(inputs[1]); MyID = int.Parse(inputs[2]); var boxes = new List <Coordinate>(); Robot myRobot = new Robot(); var myBombs = new List <Bomb>(); char[,] board = new char[HEIGHT, WIDTH]; // game loop while (true) { boxes.Clear(); myBombs.Clear(); Bombs.Clear(); Log("Board:"); for (int i = 0; i < height; i++) { string row = Console.ReadLine(); Log(row); for (int j = 0; j < width; j++) { board[i, j] = row[j]; if (row[j].Equals(EMPTY_BOX) || row[j].Equals(RANGE_BOX) || row[j].Equals(BOMB_BOX)) { boxes.Add(new Coordinate(j, i)); } } } Log(""); int entities = int.Parse(Console.ReadLine()); Log($"Entities: {entities}"); Log("entityType owner x y param1 param2"); for (int i = 0; i < entities; i++) { inputs = Console.ReadLine().Split(' '); int entityType = int.Parse(inputs[0]); // player: 0, bomb: 1 int owner = int.Parse(inputs[1]); int x = int.Parse(inputs[2]); int y = int.Parse(inputs[3]); int param1 = int.Parse(inputs[4]); // num. of bombs, num. of rounds int param2 = int.Parse(inputs[5]); // explosion range Log($"{entityType} {owner} {x} {y} {param1} {param2}"); switch (entityType) { case 0: // player if (owner == MyID) { // owner, x, y, num. of bombs, explosion range myRobot.X = x; myRobot.Y = y; myRobot.AvailableBombs = param1; myRobot.BombRange = param2; } break; case 1: // bomb var bomb = new Bomb(x, y, param1, param2); if (owner == MyID) { // owner, x, y, num. of rounds to explode, explosion range myBombs.Add(bomb); } Bombs.Add(bomb); break; } } int[,] scoreBoard = GetScoreBoard(board, myRobot.BombRange); PrintScoreBoard(scoreBoard); Dictionary <int, List <Coordinate> > scoredDict = GetScoreDictionary(scoreBoard); int closestDist = 0; Coordinate closestBox = null; List <Coordinate> places; for (int score = 4; score > 0; score--) { if (!scoredDict.TryGetValue(score, out places)) { continue; } foreach (Coordinate place in places) { int tempDist = place.GetDistance(myRobot); if (closestBox == null || closestDist > tempDist) { closestDist = tempDist; closestBox = place; } } if (closestBox != null) { break; } } Log($"Closest: {closestBox.X}, {closestBox.Y}"); if (closestBox == null) { Console.WriteLine($"MOVE {myRobot.X} {myRobot.Y}"); } else if (closestDist == 0 && myRobot.AvailableBombs > 0) { Console.WriteLine($"BOMB {closestBox.X} {closestBox.Y}"); } else { Console.WriteLine($"MOVE {closestBox.X} {closestBox.Y}"); } } }
public void AddBomb(Bomb bomb) { Bombs.Add(bomb); }