Can anybody check my code? Code is between 77 to 89. can i use if else to increase the score.
you should have reasonable scores for splitting asteroid and removing the last piece, respectively. For example, there should be a higher score for removing the last piece of an asteroid, comparing to splitting an asteroid into smaller pieces.
import greenfoot.*; /** * A rock in space. * * @author Poul Henriksen * @author Michael Kölling */ public class Asteroid extends SmoothMover { /** Size of this asteroid */ private int size; /** When the stability reaches 0 the asteroid will explode */ private int stability; /** * Create an asteroid with default size and random direction of movement. */ public Asteroid() { this(50); } /** * Create an asteroid with a given size and random direction of movement. */ public Asteroid(int size) { super(new Vector(Greenfoot.getRandomNumber(360), 2)); setSize(size); } /** * Create an asteroid with a given size and direction of movement. */ public Asteroid(int size, Vector velocity) { super(velocity); setSize(size); } public void act() { move(); } /** * Set the size of this asteroid. Note that stability is directly * related to size. Smaller asteroids are less stable. */ public void setSize(int size) { stability = size; this.size = size; GreenfootImage image = getImage(); image.scale(size, size); } /** * Return the current stability of this asteroid. (If it goes down to * zero, it breaks up.) */ public int getStability() { return stability; } /** * Hit this asteroid dealing the given amount of damage. */ public void hit(int damage) { Space space =(Space)getWorld(); stability = stability - damage; if (stability <= 0) { breakUp(); } if(size>=size/2){ space.updateScore(15); } else if (size<=size/2){ space.updateScore(25); } else{ space.updateScore(10); } } /** * Break up this asteroid. If we are still big enough, this will create two * smaller asteroids. If we are small already, just disappear. */ private void breakUp() { Greenfoot.playSound("Explosion.wav"); if (size <= 16) { getWorld().removeObject(this); } else { int r = getVelocity().getDirection() + Greenfoot.getRandomNumber(45); double l = getVelocity().getLength(); Vector speed1 = new Vector(r + 60, l * 1.2); Vector speed2 = new Vector(r - 60, l * 1.2); Asteroid a1 = new Asteroid(size/2, speed1); Asteroid a2 = new Asteroid(size/2, speed2); getWorld().addObject(a1, getX(), getY()); getWorld().addObject(a2, getX(), getY()); a1.move(); a2.move(); getWorld().removeObject(this); } } }