### Question:
Bomberman extends RoundField<Player> implements Field { @Override public List<Bomb> bombs() { return bombs; } Bomberman(GameSettings settings); GameSettings settings(); @Override List<PerkOnBoard> perks(); PerkOnBoard pickPerk(Point pt); @Override Dice dice(); @Override int size(); @Override void cleanStuff(); @Override void tickField(); @Override List<Bomb> bombs(); @Override List<Bomb> bombs(Hero hero); @Override List<Blast> blasts(); @Override void drop(Bomb bomb); @Override void remove(Bomb bomb); @Override void remove(Wall wall); @Override Walls walls(); @Override boolean isBarrier(Point pt, boolean isForHero); @Override List<Hero> heroes(boolean activeAliveOnly); void newGame(Player player); BoardReader reader(); static final boolean ACTIVE_ALIVE; static final boolean ALL; }### Answer:
@Test public void shouldNoChangeOriginalBombsWhenUseBoardApiButTimersSynchronized() { canDropBombs(2); hero.act(); hero.right(); field.tick(); hero.act(); hero.right(); field.tick(); List<Bomb> bombs1 = field.bombs(); List<Bomb> bombs2 = field.bombs(); List<Bomb> bombs3 = field.bombs(); assertSame(bombs1, bombs2); assertSame(bombs2, bombs3); assertSame(bombs3, bombs1); Bomb bomb11 = bombs1.get(0); Bomb bomb12 = bombs2.get(0); Bomb bomb13 = bombs3.get(0); assertSame(bomb11, bomb12); assertSame(bomb12, bomb13); assertSame(bomb13, bomb11); Bomb bomb21 = bombs1.get(1); Bomb bomb22 = bombs2.get(1); Bomb bomb23 = bombs3.get(1); assertSame(bomb21, bomb22); assertSame(bomb22, bomb23); assertSame(bomb23, bomb21); field.tick(); field.tick(); assertFalse(bomb11.isExploded()); assertFalse(bomb12.isExploded()); assertFalse(bomb13.isExploded()); field.tick(); assertTrue(bomb11.isExploded()); assertTrue(bomb12.isExploded()); assertTrue(bomb13.isExploded()); assertFalse(bomb21.isExploded()); assertFalse(bomb22.isExploded()); assertFalse(bomb23.isExploded()); field.tick(); assertTrue(bomb21.isExploded()); assertTrue(bomb22.isExploded()); assertTrue(bomb23.isExploded()); }