public class Facade
extends java.lang.Object
implements asteroids.part3.facade.IFacade
Constructor and Description |
---|
Facade() |
Modifier and Type | Method and Description |
---|---|
void |
addAsteroidToWorld(World world,
Asteroid asteroid)
Add
asteroid to world . |
void |
addBulletToWorld(World world,
Bullet bullet)
Add
bullet to world . |
void |
addPlanetoidToWorld(World world,
Planetoid planetoid)
Add
planetoid to world . |
void |
addShipToWorld(World world,
Ship ship)
Add
ship to world . |
Asteroid |
createAsteroid(double x,
double y,
double xVelocity,
double yVelocity,
double radius)
ASTEROID: Basic methods
|
Bullet |
createBullet(double x,
double y,
double velocityX,
double velocityY,
double radius)
BULLET: Basic methods
|
Planetoid |
createPlanetoid(double x,
double y,
double xVelocity,
double yVelocity,
double radius,
double totalTraveledDistance)
PLANETOID: Basic methods
|
asteroids.part3.programs.IProgramFactory<?,?,?,? extends Program> |
createProgramFactory()
Creates a new program factory.
|
Ship |
createShip()
SHIP: Basic methods
|
Ship |
createShip(double positionX,
double positionY,
double velocityX,
double velocityY,
double radius,
double angle)
This method is deprecated; you should not implement nor use it.
|
Ship |
createShip(double x,
double y,
double xVelocity,
double yVelocity,
double radius,
double direction,
double mass)
Create a new non-null ship with the given position, velocity, radius,
direction and mass.
|
World |
createWorld(double width,
double height)
WORLD: Basic methods
|
void |
evolve(World world,
double dt,
asteroids.part2.CollisionListener collisionListener)
Advance
world by dt |
java.util.List<java.lang.Object> |
executeProgram(Ship ship,
double dt)
Execute the program loaded on the given ship during the given period of
time.
|
void |
fireBullet(Ship ship)
ship fires a bullet. |
double |
getAsteroidMass(Asteroid asteroid)
Return the mass of
asteroid . |
double[] |
getAsteroidPosition(Asteroid asteroid)
Return the position of
asteroid as an array containing the
x-coordinate, followed by the y-coordinate. |
double |
getAsteroidRadius(Asteroid asteroid)
Return the radius of
asteroid . |
double[] |
getAsteroidVelocity(Asteroid asteroid)
Return the velocity of
asteroid as an array containing the
velocity along the X-axis, followed by the velocity along the Y-axis. |
World |
getAsteroidWorld(Asteroid asteroid)
Return the world in which
asteroid is positioned. |
double |
getBulletMass(Bullet bullet)
Return the mass of
bullet . |
double[] |
getBulletPosition(Bullet bullet)
Return the position of
ship as an array containing the
x-coordinate, followed by the y-coordinate. |
double |
getBulletRadius(Bullet bullet)
Return the radius of
bullet . |
Ship |
getBulletShip(Bullet bullet)
Return the ship in which
bullet is positioned. |
java.util.Set<? extends Bullet> |
getBulletsOnShip(Ship ship)
SHIP: Methods related to loaded bullets
|
Ship |
getBulletSource(Bullet bullet)
Return the ship that fired
bullet . |
double[] |
getBulletVelocity(Bullet bullet)
Return the velocity of
ship as an array containing the
velocity along the X-axis, followed by the velocity along the Y-axis. |
World |
getBulletWorld(Bullet bullet)
Return the world in which
bullet is positioned. |
double[] |
getCollisionPosition(Ship ship1,
Ship ship2)
Return the first position where
ship1 and ship2
collide, or null if they never collide. |
double |
getDistanceBetween(Ship ship1,
Ship ship2)
Return the distance between
ship1 and ship2 . |
java.util.Set<? extends java.lang.Object> |
getEntities(World world)
Return a set of all the entities in the given world.
|
java.lang.Object |
getEntityAt(World world,
double x,
double y)
Return the entity at the given
position in the given
world . |
int |
getNbBulletsOnShip(Ship ship)
Return the number of bullets loaded on
ship . |
int |
getNbStudentsInTeam()
ADMINISTRATIVE STUFF
|
double |
getPlanetoidMass(Planetoid planetoid)
Return the mass of
planetoid . |
double[] |
getPlanetoidPosition(Planetoid planetoid)
Return the position of
planetoid as an array containing the
x-coordinate, followed by the y-coordinate. |
double |
getPlanetoidRadius(Planetoid planetoid)
Return the radius of
planetoid . |
double |
getPlanetoidTotalTraveledDistance(Planetoid planetoid)
Return the total traveled distance of
planetoid . |
double[] |
getPlanetoidVelocity(Planetoid planetoid)
Return the velocity of
planetoid as an array containing the
velocity along the X-axis, followed by the velocity along the Y-axis. |
World |
getPlanetoidWorld(Planetoid planetoid)
Return the world in which
planetoid is positioned. |
double[] |
getPositionCollisionBoundary(java.lang.Object object)
Return the first position at which the given entity will collide with the
boundaries of its world.
|
double[] |
getPositionCollisionEntity(java.lang.Object entity1,
java.lang.Object entity2)
Return the first position at which the first entity will collide with the
second entity.
|
double[] |
getPositionNextCollision(World world)
Return the position of the first boundary collision or entity collision
that will take place in the given world.
|
double |
getShipAcceleration(Ship ship)
Return the acceleration of
ship . |
double |
getShipMass(Ship ship)
Return the total mass of
ship (i.e., including bullets
loaded onto the ship). |
double |
getShipOrientation(Ship ship)
Return the orientation of
ship (in radians). |
double[] |
getShipPosition(Ship ship)
Return the position of
ship as an array of length 2, with the
x-coordinate at index 0 and the y-coordinate at index 1. |
Program |
getShipProgram(Ship ship)
PROGRAMS
|
double |
getShipRadius(Ship ship)
Return the radius of
ship . |
double[] |
getShipVelocity(Ship ship)
METHODS PART 1
|
World |
getShipWorld(Ship ship)
Return the world of
ship . |
double |
getTimeCollisionBoundary(java.lang.Object object)
COLLISIONS
|
double |
getTimeCollisionEntity(java.lang.Object entity1,
java.lang.Object entity2)
Return the shortest time in which the first entity will collide with the
second entity.
|
double |
getTimeNextCollision(World world)
Return the time that must pass before a boundary collision or an entity
collision will take place in the given world.
|
double |
getTimeToCollision(Ship ship1,
Ship ship2)
Return the number of seconds until the first collision between
ship1 and ship2 , or Double.POSITIVE_INFINITY if
they never collide. |
java.util.Set<? extends Asteroid> |
getWorldAsteroids(World world)
WORLD: Asteroids and planetoids
|
java.util.Set<? extends Bullet> |
getWorldBullets(World world)
Return all bullets located in
world . |
java.util.Set<? extends Planetoid> |
getWorldPlanetoids(World world)
Return all planetoids located in
world . |
java.util.Set<? extends Ship> |
getWorldShips(World world)
Return all ships located within
world . |
double[] |
getWorldSize(World world)
Return the size of
world as an array containing the width,
followed by the height. |
boolean |
isShipThrusterActive(Ship ship)
Return whether
ship 's thruster is active. |
boolean |
isTerminatedAsteroid(Asteroid asteroid)
Check whether
asteroid is terminated. |
boolean |
isTerminatedBullet(Bullet bullet)
Check whether
bullet is terminated. |
boolean |
isTerminatedPlanetoid(Planetoid planetoid)
Check whether
planetoid is terminated. |
boolean |
isTerminatedShip(Ship ship)
Check whether
ship is terminated. |
boolean |
isTerminatedWorld(World world)
Check whether
world is terminated. |
void |
loadBulletOnShip(Ship ship,
Bullet bullet)
Load
bullet on ship . |
void |
loadBulletsOnShip(Ship ship,
java.util.Collection<Bullet> bullets)
Load
bullet on ship . |
void |
loadProgramOnShip(Ship ship,
Program program)
Load the given program on the given ship.
|
void |
move(Ship ship,
double dt)
This method is deprecated; you should not implement nor use it.
|
boolean |
overlap(Ship ship1,
Ship ship2)
Check whether
ship1 and ship2 overlap. |
void |
removeAsteroidFromWorld(World world,
Asteroid asteroid)
Remove
asteroid from world . |
void |
removeBulletFromShip(Ship ship,
Bullet bullet)
Remove
ship from ship . |
void |
removeBulletFromWorld(World world,
Bullet bullet)
Remove
ship from world . |
void |
removePlanetoidFromWorld(World world,
Planetoid planetoid)
Remove
planetoid from world . |
void |
removeShipFromWorld(World world,
Ship ship)
Remove
ship from world . |
void |
setThrusterActive(Ship ship,
boolean active)
Enables or disables
ship 's thruster depending on the value
of the parameter active . |
void |
terminateAsteroid(Asteroid asteroid)
Terminate
asteroid . |
void |
terminateBullet(Bullet bullet)
Terminate
bullet . |
void |
terminatePlanetoid(Planetoid planetoid)
Terminate
planetoid . |
void |
terminateShip(Ship ship)
Terminate
ship . |
void |
terminateWorld(World world)
Terminate
world . |
void |
thrust(Ship ship,
double amount)
This method is deprecated; you should not implement nor use it.
|
void |
turn(Ship ship,
double angle)
Update the direction of
ship by adding angle
(in radians) to its current direction. |
public Ship createShip() throws asteroids.util.ModelException
createShip
in interface asteroids.part1.facade.IFacade
asteroids.util.ModelException
public Ship createShip(double positionX, double positionY, double velocityX, double velocityY, double radius, double angle) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
createShip
in interface asteroids.part1.facade.IFacade
asteroids.util.ModelException
public Ship createShip(double x, double y, double xVelocity, double yVelocity, double radius, double direction, double mass) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
asteroids.util.ModelException
public void terminateShip(Ship ship) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
ship
.asteroids.util.ModelException
public boolean isTerminatedShip(Ship ship) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
ship
is terminated.asteroids.util.ModelException
public double getShipMass(Ship ship) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
ship
(i.e., including bullets
loaded onto the ship).asteroids.util.ModelException
public World getShipWorld(Ship ship) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
ship
.asteroids.util.ModelException
public boolean isShipThrusterActive(Ship ship) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
ship
's thruster is active.asteroids.util.ModelException
public void setThrusterActive(Ship ship, boolean active) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
ship
's thruster depending on the value
of the parameter active
.asteroids.util.ModelException
public double getShipAcceleration(Ship ship) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
ship
.asteroids.util.ModelException
public void move(Ship ship, double dt) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
move
in interface asteroids.part1.facade.IFacade
asteroids.util.ModelException
public Bullet createBullet(double x, double y, double velocityX, double velocityY, double radius) throws asteroids.util.ModelException
asteroids.util.ModelException
public void terminateBullet(Bullet bullet) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
bullet
.asteroids.util.ModelException
public boolean isTerminatedBullet(Bullet bullet) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
bullet
is terminated.asteroids.util.ModelException
public double[] getBulletPosition(Bullet bullet) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
ship
as an array containing the
x-coordinate, followed by the y-coordinate.asteroids.util.ModelException
public double[] getBulletVelocity(Bullet bullet) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
ship
as an array containing the
velocity along the X-axis, followed by the velocity along the Y-axis.asteroids.util.ModelException
public double getBulletRadius(Bullet bullet) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
bullet
.asteroids.util.ModelException
public double getBulletMass(Bullet bullet) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
bullet
.asteroids.util.ModelException
public World getBulletWorld(Bullet bullet) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
bullet
is positioned.
This method must return null if a bullet is not positioned in a world, or
if it is positioned on a ship.asteroids.util.ModelException
public Ship getBulletShip(Bullet bullet) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
bullet
is positioned.
This method must return null if a bullet is not positioned on a ship.asteroids.util.ModelException
public Ship getBulletSource(Bullet bullet) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
bullet
.asteroids.util.ModelException
public World createWorld(double width, double height) throws asteroids.util.ModelException
asteroids.util.ModelException
public void terminateWorld(World world) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
world
.asteroids.util.ModelException
public boolean isTerminatedWorld(World world) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
world
is terminated.asteroids.util.ModelException
public double[] getWorldSize(World world) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
world
as an array containing the width,
followed by the height.asteroids.util.ModelException
public java.util.Set<? extends Ship> getWorldShips(World world) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
world
.asteroids.util.ModelException
public java.util.Set<? extends Bullet> getWorldBullets(World world) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
world
.asteroids.util.ModelException
public void addShipToWorld(World world, Ship ship) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
ship
to world
.asteroids.util.ModelException
public void removeShipFromWorld(World world, Ship ship) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
ship
from world
.asteroids.util.ModelException
public void addBulletToWorld(World world, Bullet bullet) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
bullet
to world
.asteroids.util.ModelException
public void removeBulletFromWorld(World world, Bullet bullet) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
ship
from world
.asteroids.util.ModelException
public java.util.Set<? extends Bullet> getBulletsOnShip(Ship ship) throws asteroids.util.ModelException
asteroids.util.ModelException
public int getNbBulletsOnShip(Ship ship) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
ship
.asteroids.util.ModelException
public void loadBulletOnShip(Ship ship, Bullet bullet) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
bullet
on ship
.asteroids.util.ModelException
public void loadBulletsOnShip(Ship ship, java.util.Collection<Bullet> bullets) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
bullet
on ship
.
For students working alone, this method must not do anything.asteroids.util.ModelException
public void removeBulletFromShip(Ship ship, Bullet bullet) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
ship
from ship
.asteroids.util.ModelException
public void fireBullet(Ship ship) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
ship
fires a bullet.asteroids.util.ModelException
public double[] getShipPosition(Ship ship) throws asteroids.util.ModelException
asteroids.part1.facade.IFacade
ship
as an array of length 2, with the
x-coordinate at index 0 and the y-coordinate at index 1.getShipPosition
in interface asteroids.part1.facade.IFacade
asteroids.util.ModelException
public double getTimeCollisionBoundary(java.lang.Object object) throws asteroids.util.ModelException
asteroids.util.ModelException
public double[] getPositionCollisionBoundary(java.lang.Object object) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
asteroids.util.ModelException
public double getTimeCollisionEntity(java.lang.Object entity1, java.lang.Object entity2) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
asteroids.util.ModelException
public double[] getPositionCollisionEntity(java.lang.Object entity1, java.lang.Object entity2) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
asteroids.util.ModelException
public double getTimeNextCollision(World world) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
asteroids.util.ModelException
public double[] getPositionNextCollision(World world) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
asteroids.util.ModelException
public void evolve(World world, double dt, asteroids.part2.CollisionListener collisionListener) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
world
by dt seconds.
To enable explosions within the UI, notify collisionListener
whenever an entity collides with a boundary or another entity during this
method. collisionListener
may be null. If
collisionListener
is null
, do not call its
notify methods.
asteroids.util.ModelException
public java.lang.Object getEntityAt(World world, double x, double y) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
position
in the given
world
.asteroids.util.ModelException
public java.util.Set<? extends java.lang.Object> getEntities(World world) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
asteroids.util.ModelException
public void thrust(Ship ship, double amount) throws asteroids.util.ModelException
asteroids.part2.facade.IFacade
thrust
in interface asteroids.part1.facade.IFacade
asteroids.util.ModelException
public double[] getShipVelocity(Ship ship) throws asteroids.util.ModelException
getShipVelocity
in interface asteroids.part1.facade.IFacade
asteroids.util.ModelException
public double getShipRadius(Ship ship) throws asteroids.util.ModelException
asteroids.part1.facade.IFacade
ship
.getShipRadius
in interface asteroids.part1.facade.IFacade
asteroids.util.ModelException
public double getShipOrientation(Ship ship) throws asteroids.util.ModelException
asteroids.part1.facade.IFacade
ship
(in radians).getShipOrientation
in interface asteroids.part1.facade.IFacade
asteroids.util.ModelException
public void turn(Ship ship, double angle) throws asteroids.util.ModelException
asteroids.part1.facade.IFacade
ship
by adding angle
(in radians) to its current direction. angle
may be
negative.turn
in interface asteroids.part1.facade.IFacade
asteroids.util.ModelException
public double getDistanceBetween(Ship ship1, Ship ship2) throws asteroids.util.ModelException
asteroids.part1.facade.IFacade
ship1
and ship2
.
The absolute value of the result of this method is the minimum distance
either ship should move such that both ships are adjacent. Note that the
result must be negative if the ships overlap. The distance between a ship
and itself is 0.getDistanceBetween
in interface asteroids.part1.facade.IFacade
asteroids.util.ModelException
public boolean overlap(Ship ship1, Ship ship2) throws asteroids.util.ModelException
asteroids.part1.facade.IFacade
ship1
and ship2
overlap. A ship
always overlaps with itself.overlap
in interface asteroids.part1.facade.IFacade
asteroids.util.ModelException
public double getTimeToCollision(Ship ship1, Ship ship2) throws asteroids.util.ModelException
asteroids.part1.facade.IFacade
ship1
and ship2
, or Double.POSITIVE_INFINITY if
they never collide. A ship never collides with itself.getTimeToCollision
in interface asteroids.part1.facade.IFacade
asteroids.util.ModelException
public double[] getCollisionPosition(Ship ship1, Ship ship2) throws asteroids.util.ModelException
asteroids.part1.facade.IFacade
ship1
and ship2
collide, or null
if they never collide. A ship never
collides with itself.
The result of this method is either null or an array of length 2, where
the element at index 0 represents the x-coordinate and the element at
index 1 represents the y-coordinate.getCollisionPosition
in interface asteroids.part1.facade.IFacade
asteroids.util.ModelException
public int getNbStudentsInTeam()
public java.util.Set<? extends Asteroid> getWorldAsteroids(World world) throws asteroids.util.ModelException
asteroids.util.ModelException
public void addAsteroidToWorld(World world, Asteroid asteroid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
asteroid
to world
.asteroids.util.ModelException
public void removeAsteroidFromWorld(World world, Asteroid asteroid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
asteroid
from world
.asteroids.util.ModelException
public java.util.Set<? extends Planetoid> getWorldPlanetoids(World world) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
world
.asteroids.util.ModelException
public void addPlanetoidToWorld(World world, Planetoid planetoid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
planetoid
to world
.asteroids.util.ModelException
public void removePlanetoidFromWorld(World world, Planetoid planetoid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
planetoid
from world
.asteroids.util.ModelException
public Asteroid createAsteroid(double x, double y, double xVelocity, double yVelocity, double radius) throws asteroids.util.ModelException
asteroids.util.ModelException
public void terminateAsteroid(Asteroid asteroid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
asteroid
.asteroids.util.ModelException
public boolean isTerminatedAsteroid(Asteroid asteroid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
asteroid
is terminated.asteroids.util.ModelException
public double[] getAsteroidPosition(Asteroid asteroid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
asteroid
as an array containing the
x-coordinate, followed by the y-coordinate.asteroids.util.ModelException
public double[] getAsteroidVelocity(Asteroid asteroid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
asteroid
as an array containing the
velocity along the X-axis, followed by the velocity along the Y-axis.asteroids.util.ModelException
public double getAsteroidRadius(Asteroid asteroid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
asteroid
.asteroids.util.ModelException
public double getAsteroidMass(Asteroid asteroid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
asteroid
.asteroids.util.ModelException
public World getAsteroidWorld(Asteroid asteroid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
asteroid
is positioned.asteroids.util.ModelException
public Planetoid createPlanetoid(double x, double y, double xVelocity, double yVelocity, double radius, double totalTraveledDistance) throws asteroids.util.ModelException
asteroids.util.ModelException
public void terminatePlanetoid(Planetoid planetoid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
planetoid
.asteroids.util.ModelException
public boolean isTerminatedPlanetoid(Planetoid planetoid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
planetoid
is terminated.asteroids.util.ModelException
public double[] getPlanetoidPosition(Planetoid planetoid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
planetoid
as an array containing the
x-coordinate, followed by the y-coordinate.asteroids.util.ModelException
public double[] getPlanetoidVelocity(Planetoid planetoid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
planetoid
as an array containing the
velocity along the X-axis, followed by the velocity along the Y-axis.asteroids.util.ModelException
public double getPlanetoidRadius(Planetoid planetoid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
planetoid
.asteroids.util.ModelException
public double getPlanetoidMass(Planetoid planetoid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
planetoid
.asteroids.util.ModelException
public double getPlanetoidTotalTraveledDistance(Planetoid planetoid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
planetoid
.asteroids.util.ModelException
public World getPlanetoidWorld(Planetoid planetoid) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
planetoid
is positioned.asteroids.util.ModelException
public Program getShipProgram(Ship ship) throws asteroids.util.ModelException
asteroids.util.ModelException
public void loadProgramOnShip(Ship ship, Program program) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
asteroids.util.ModelException
public java.util.List<java.lang.Object> executeProgram(Ship ship, double dt) throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
IFacade.evolve(World, double, asteroids.part2.CollisionListener)
method.asteroids.util.ModelException
public asteroids.part3.programs.IProgramFactory<?,?,?,? extends Program> createProgramFactory() throws asteroids.util.ModelException
asteroids.part3.facade.IFacade
asteroids.util.ModelException