Practice Questions: Using an API (Reference)
Consider the Plane class below:
public class Plane
{
//returns true only if there is an enemy immediately ahead
//(same row, next column)
public boolean isEnemyAhead()
//moves the plane up one row
public void up()
//moves the plane down one row
public void down()
//moves the plane forward one column
public void forward()
//drops one bomb on an enemy immediately below (same column)
public void dropBomb()
//returns true only if this plane has more bombs left to drop
public boolean hasMoreBombs()
}
The plane is initially in the top left space of a rectangular region
(of unknown size), as shown in the example below. The plane always
faces to the right. There is exactly one enemy in each column but the
first one. No enemies appear in the top row. The plane is carrying
exactly enough bombs to drop one on each enemy.
| plane | | | | |
| | | | | enemy |
| | enemy | | | |
| | | | enemy | |
| | | | | |
| | | enemy | | |
Write the method bombAllEnemies in the Plane
class. The plane should never go outside of the designated region,
and it should never move into the same space as an enemy. Whenever an
enemy is destroyed, that space becomes empty. As always, you are
encouraged to break the problem down into appropriate helper
methods.
public void bombAllEnemies()
Consider the CookieJar class below:
public class CookieJar
{
public CookieJar() { ... }
public boolean isEmpty() { ... }
public void addCookie(Cookie cookie) { ... }
public Cookie removeCookie() { ... }
}
Using only the methods listed above, implement the
countCookies method below, which should return the number of
cookies in the given CookieJar. You may remove cookies from
the jar, as long as you put them all back before you return.
public static int countCookies(CookieJar jar)