public int fightAgainst(SunburnShip enemy) {
        int roundCount = 1;
        
        Logger logger = Logger.getLogger(SunburnShip.class.getName());
        
        while(!isDestroyed() && !enemy.isDestroyed() && drivesLeft() && enemy.drivesLeft()) {
            if(roundCount > 100) {
                logger.info("100 rounds played, calling it a draw");
                return 0;
            }
             
            logger.info("Round #" + roundCount);
            
            int ownHits = fireWeapons(range);
            int enemyHits = enemy.fireWeapons(enemy.getRange());
            
            logger.info("I got " + ownHits + " hits against his " + enemyHits);
            
            takeHits(enemyHits);
            enemy.takeHits(ownHits);
            
            logger.info("Me: " + getCurrentState());
            logger.info("Him: " + enemy.getCurrentState());
            
            
            
            moveWithDrives();
            enemy.moveWithDrives();
            
            logger.info("My current range: " + getRange());
            logger.info("His current range: " + enemy.getRange());
            
            roundCount++;
        }   
        
        if(wonAgainst(enemy)) {
            logger.info("I win!");
            return 1;
        } else if(lostAgainst(enemy)) {
            logger.info("I lose!");
            return -1;
        } else if(drewAgainst(enemy)) {
            logger.info("Stalemate.");
            return 0;
        }
        
        return 0;
    }