Release v3.5
Updated test suite
This commit is contained in:
@@ -348,7 +348,7 @@ public interface IFacade {
|
|||||||
* - Students working alone on the project must not override this method.
|
* - Students working alone on the project must not override this method.
|
||||||
*/
|
*/
|
||||||
default public boolean canFall(Worm worm) throws MustNotImplementException {
|
default public boolean canFall(Worm worm) throws MustNotImplementException {
|
||||||
throw new MustNotImplementException();
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -387,7 +387,7 @@ public interface IFacade {
|
|||||||
/**
|
/**
|
||||||
* Make the given worm eat a portion of food.
|
* Make the given worm eat a portion of food.
|
||||||
*/
|
*/
|
||||||
void eat(Worm worm) throws ModelException;
|
void eat(Worm worm);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Have the give worm fire a projectile.
|
* Have the give worm fire a projectile.
|
||||||
@@ -552,7 +552,7 @@ public interface IFacade {
|
|||||||
* - Students working alone on the project must not override this method.
|
* - Students working alone on the project must not override this method.
|
||||||
*/
|
*/
|
||||||
default Team getTeam(Worm worm) throws ModelException {
|
default Team getTeam(Worm worm) throws ModelException {
|
||||||
throw new MustNotImplementException();
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -32,8 +32,8 @@ import worms.util.MustNotImplementException;
|
|||||||
* <p>
|
* <p>
|
||||||
* You should declare your class as follows:<code><pre>
|
* You should declare your class as follows:<code><pre>
|
||||||
* public class ProgramFactory implements IProgramFactory<MyExpression, MyStatement, MyProc, Program>
|
* public class ProgramFactory implements IProgramFactory<MyExpression, MyStatement, MyProc, Program>
|
||||||
* </pre></code> where MyExpression, MyStatement, MyProc, and Program are your classes
|
* </pre></code> where MyExpression, MyStatement and MyProc are your classes
|
||||||
* for representing expressions, statements, procedure definitions, and programs,
|
* for representing expressions, statements and procedure definitions,
|
||||||
* respectively.
|
* respectively.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
@@ -90,7 +90,10 @@ public interface IProgramFactory<E, S, P, Program> {
|
|||||||
* @param body
|
* @param body
|
||||||
* The body of the procedure.
|
* The body of the procedure.
|
||||||
*/
|
*/
|
||||||
public P createProcedureDefinition(String procedureName, S body, SourceLocation sourceLocation);
|
public default P createProcedureDefinition(String procedureName, S body, SourceLocation sourceLocation)
|
||||||
|
throws ModelException, MustNotImplementException {
|
||||||
|
throw new MustNotImplementException();
|
||||||
|
}
|
||||||
|
|
||||||
/* STATEMENTS */
|
/* STATEMENTS */
|
||||||
|
|
||||||
|
@@ -12,7 +12,7 @@ import org.junit.*;
|
|||||||
import worms.facade.Facade;
|
import worms.facade.Facade;
|
||||||
import worms.facade.IFacade;
|
import worms.facade.IFacade;
|
||||||
import worms.internal.gui.game.IActionHandler;
|
import worms.internal.gui.game.IActionHandler;
|
||||||
import worms.programs.ProgramFactory;
|
import worms.programs.IProgramFactory;
|
||||||
import worms.programs.ProgramParser;
|
import worms.programs.ProgramParser;
|
||||||
import worms.util.*;
|
import worms.util.*;
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ public class Part3_FullFacadeTest {
|
|||||||
|
|
||||||
private final static IFacade facade = new Facade();
|
private final static IFacade facade = new Facade();
|
||||||
private final static IActionHandler actionHandler = new SimpleActionHandler(facade);
|
private final static IActionHandler actionHandler = new SimpleActionHandler(facade);
|
||||||
private final static ProgramFactory programFactory = new ProgramFactory();
|
private final static IProgramFactory<?, ?, ?, ? extends Program> programFactory = facade.createProgramFactory();
|
||||||
|
|
||||||
private static final double[] FIXTURE_LOCATION = new double[] { 3.0, -7.0 };
|
private static final double[] FIXTURE_LOCATION = new double[] { 3.0, -7.0 };
|
||||||
private static final double FIXTURE_RADIUS = 0.30;
|
private static final double FIXTURE_RADIUS = 0.30;
|
||||||
@@ -236,20 +236,16 @@ public class Part3_FullFacadeTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void terminateWorld_WorldWithTeams() {
|
public void terminateWorld_WorldWithTeams() {
|
||||||
System.out.println(max_score);
|
|
||||||
max_score += 2;
|
max_score += 2;
|
||||||
try {
|
try {
|
||||||
facade.createTeam(theWorld, "TeamA");
|
facade.createTeam(theWorld, "TeamA");
|
||||||
System.out.println("team created");
|
|
||||||
facade.createTeam(theWorld, "TeamB");
|
facade.createTeam(theWorld, "TeamB");
|
||||||
facade.terminate(theWorld);
|
facade.terminate(theWorld);
|
||||||
assertEquals(0, facade.getAllTeams(theWorld).size());
|
assertEquals(0, facade.getAllTeams(theWorld).size());
|
||||||
score += 2;
|
score += 2;
|
||||||
} catch (MustNotImplementException exc) {
|
} catch (MustNotImplementException exc) {
|
||||||
System.out.println("Executing catcher");
|
|
||||||
max_score -= 2;
|
max_score -= 2;
|
||||||
}
|
}
|
||||||
System.out.println(max_score);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -1261,9 +1257,9 @@ public class Part3_FullFacadeTest {
|
|||||||
@Test
|
@Test
|
||||||
public void decreaseActionPoints_DeltaTooLarge() {
|
public void decreaseActionPoints_DeltaTooLarge() {
|
||||||
max_score += 1;
|
max_score += 1;
|
||||||
long oldNbActionPoints = facade.getNbActionPoints(fixtureWorm);
|
|
||||||
facade.decreaseNbActionPoints(fixtureWorm, Integer.MAX_VALUE);
|
facade.decreaseNbActionPoints(fixtureWorm, Integer.MAX_VALUE);
|
||||||
assertEquals(oldNbActionPoints, facade.getNbActionPoints(fixtureWorm));
|
assertTrue(0 <= facade.getNbActionPoints(fixtureWorm));
|
||||||
|
assertTrue(facade.getNbActionPoints(fixtureWorm) <= facade.getMaxNbActionPoints(fixtureWorm));
|
||||||
score += 1;
|
score += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1274,7 +1270,8 @@ public class Part3_FullFacadeTest {
|
|||||||
long maxNbActionPoints = facade.getMaxNbActionPoints(fixtureWorm);
|
long maxNbActionPoints = facade.getMaxNbActionPoints(fixtureWorm);
|
||||||
long delta = oldNbActionPoints - maxNbActionPoints - 10;
|
long delta = oldNbActionPoints - maxNbActionPoints - 10;
|
||||||
facade.decreaseNbActionPoints(fixtureWorm, delta);
|
facade.decreaseNbActionPoints(fixtureWorm, delta);
|
||||||
assertEquals(oldNbActionPoints, facade.getNbActionPoints(fixtureWorm));
|
assertTrue(0 <= facade.getNbActionPoints(fixtureWorm));
|
||||||
|
assertTrue(facade.getNbActionPoints(fixtureWorm) <= facade.getMaxNbActionPoints(fixtureWorm));
|
||||||
score += 1;
|
score += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1565,9 +1562,9 @@ public class Part3_FullFacadeTest {
|
|||||||
assertEquals(expectedLocation[0] - facade.getRadius(theWorm) * 0.1 / 2.0, newLocation[0],
|
assertEquals(expectedLocation[0] - facade.getRadius(theWorm) * 0.1 / 2.0, newLocation[0],
|
||||||
facade.getRadius(theWorm) * 0.12 / 2.0);
|
facade.getRadius(theWorm) * 0.12 / 2.0);
|
||||||
assertEquals(expectedLocation[1] - facade.getRadius(theWorm) * 0.1 / 2.0, newLocation[1],
|
assertEquals(expectedLocation[1] - facade.getRadius(theWorm) * 0.1 / 2.0, newLocation[1],
|
||||||
facade.getRadius(theWorm) * 0.12 / 2.0);
|
facade.getRadius(theWorm) );
|
||||||
assertTrue((facade.getNbActionPoints(theWorm) >= oldNbActionPoints - 5)
|
assertTrue((facade.getNbActionPoints(theWorm) >= oldNbActionPoints - 5)
|
||||||
&& (facade.getNbActionPoints(theWorm) <= oldNbActionPoints - 3));
|
&& (facade.getNbActionPoints(theWorm) <= oldNbActionPoints - 1));
|
||||||
score += 15;
|
score += 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1585,7 +1582,7 @@ public class Part3_FullFacadeTest {
|
|||||||
{ true, true, true, true, false, true, true, true, true, false },
|
{ true, true, true, true, false, true, true, true, true, false },
|
||||||
{ true, true, true, true, true, true, true, true, true, false }, };
|
{ true, true, true, true, true, true, true, true, true, false }, };
|
||||||
World otherWorld = facade.createWorld(10.0, 10.0, map10x10);
|
World otherWorld = facade.createWorld(10.0, 10.0, map10x10);
|
||||||
Worm theWorm = facade.createWorm(otherWorld, new double[] { 7.0, 5.0 }, PI, 2.0, "Worm", null);
|
Worm theWorm = facade.createWorm(otherWorld, new double[] { 6.85, 5.0 }, PI, 2.0, "Worm", null);
|
||||||
long oldNbActionPoints = facade.getNbActionPoints(theWorm);
|
long oldNbActionPoints = facade.getNbActionPoints(theWorm);
|
||||||
facade.move(theWorm);
|
facade.move(theWorm);
|
||||||
double[] newLocation = facade.getLocation(theWorm);
|
double[] newLocation = facade.getLocation(theWorm);
|
||||||
@@ -1593,8 +1590,8 @@ public class Part3_FullFacadeTest {
|
|||||||
assertTrue(facade.isAdjacent(otherWorld, newLocation, 2.0));
|
assertTrue(facade.isAdjacent(otherWorld, newLocation, 2.0));
|
||||||
double distanceToEdge = Math.sqrt(Math.pow(newLocation[0] - 5.0, 2.0) + Math.pow(newLocation[1] - 2.0, 2.0));
|
double distanceToEdge = Math.sqrt(Math.pow(newLocation[0] - 5.0, 2.0) + Math.pow(newLocation[1] - 2.0, 2.0));
|
||||||
assertEquals(2.1, distanceToEdge, 0.2);
|
assertEquals(2.1, distanceToEdge, 0.2);
|
||||||
assertTrue((facade.getNbActionPoints(theWorm) >= oldNbActionPoints - 5)
|
assertTrue((facade.getNbActionPoints(theWorm) >= oldNbActionPoints - 7)
|
||||||
&& (facade.getNbActionPoints(theWorm) <= oldNbActionPoints - 3));
|
&& (facade.getNbActionPoints(theWorm) <= oldNbActionPoints - 5));
|
||||||
score += 15;
|
score += 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1612,7 +1609,7 @@ public class Part3_FullFacadeTest {
|
|||||||
{ true, true, true, true, false, true, true, true, true, false },
|
{ true, true, true, true, false, true, true, true, true, false },
|
||||||
{ true, true, true, true, true, true, true, true, true, false }, };
|
{ true, true, true, true, true, true, true, true, true, false }, };
|
||||||
World otherWorld = facade.createWorld(10.0, 10.0, map10x10);
|
World otherWorld = facade.createWorld(10.0, 10.0, map10x10);
|
||||||
Worm theWorm = facade.createWorm(otherWorld, new double[] { 7.0, 5.0 }, PI, 2.0, "Worm", null);
|
Worm theWorm = facade.createWorm(otherWorld, new double[] { 6.85, 5.0 }, PI, 2.0, "Worm", null);
|
||||||
long oldNbActionPoints = facade.getNbActionPoints(theWorm);
|
long oldNbActionPoints = facade.getNbActionPoints(theWorm);
|
||||||
facade.move(theWorm);
|
facade.move(theWorm);
|
||||||
double[] newLocation = facade.getLocation(theWorm);
|
double[] newLocation = facade.getLocation(theWorm);
|
||||||
@@ -1623,8 +1620,8 @@ public class Part3_FullFacadeTest {
|
|||||||
Math.sqrt(Math.pow(newLocation[0] - 5.0, 2.0) + Math.pow(newLocation[1] - 2.0, 2.0)),
|
Math.sqrt(Math.pow(newLocation[0] - 5.0, 2.0) + Math.pow(newLocation[1] - 2.0, 2.0)),
|
||||||
Math.sqrt(Math.pow(newLocation[0] - 5.0, 2.0) + Math.pow(newLocation[1] - 8.0, 2.0)));
|
Math.sqrt(Math.pow(newLocation[0] - 5.0, 2.0) + Math.pow(newLocation[1] - 8.0, 2.0)));
|
||||||
assertEquals(2.1, distanceToEdge, 0.2);
|
assertEquals(2.1, distanceToEdge, 0.2);
|
||||||
assertTrue((facade.getNbActionPoints(theWorm) >= oldNbActionPoints - 5)
|
assertTrue((facade.getNbActionPoints(theWorm) >= oldNbActionPoints - 7)
|
||||||
&& (facade.getNbActionPoints(theWorm) <= oldNbActionPoints - 3));
|
&& (facade.getNbActionPoints(theWorm) <= oldNbActionPoints - 5));
|
||||||
score += 15;
|
score += 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1741,10 +1738,8 @@ public class Part3_FullFacadeTest {
|
|||||||
World otherWorld = facade.createWorld(10.0, 10.0, map10x10);
|
World otherWorld = facade.createWorld(10.0, 10.0, map10x10);
|
||||||
Worm theWorm = facade.createWorm(otherWorld, new double[] { 4.5, 7.375 }, 3 * PI / 2.0, 0.6, "Worm", null);
|
Worm theWorm = facade.createWorm(otherWorld, new double[] { 4.5, 7.375 }, 3 * PI / 2.0, 0.6, "Worm", null);
|
||||||
facade.move(theWorm);
|
facade.move(theWorm);
|
||||||
System.out.println(facade.getLocation(theWorm)[1]);
|
|
||||||
try {
|
try {
|
||||||
BigInteger oldNbHitPoints = facade.getNbHitPoints(theWorm);
|
BigInteger oldNbHitPoints = facade.getNbHitPoints(theWorm);
|
||||||
System.out.println("Number of hit points: " + oldNbHitPoints);
|
|
||||||
facade.fall(theWorm);
|
facade.fall(theWorm);
|
||||||
double[] newLocation = facade.getLocation(theWorm);
|
double[] newLocation = facade.getLocation(theWorm);
|
||||||
assertTrue(facade.isAdjacent(otherWorld, newLocation, facade.getRadius(theWorm)));
|
assertTrue(facade.isAdjacent(otherWorld, newLocation, facade.getRadius(theWorm)));
|
||||||
@@ -1929,10 +1924,8 @@ public class Part3_FullFacadeTest {
|
|||||||
double worm_radius = 1.5;
|
double worm_radius = 1.5;
|
||||||
Worm theWorm = facade.createWorm(theWorld, worm_location, worm_orientation, worm_radius, "Worm", null);
|
Worm theWorm = facade.createWorm(theWorld, worm_location, worm_orientation, worm_radius, "Worm", null);
|
||||||
double jumpTime = facade.getJumpTime(theWorm, 0.01);
|
double jumpTime = facade.getJumpTime(theWorm, 0.01);
|
||||||
System.out.println(jumpTime);
|
|
||||||
assertEquals(0.5, jumpTime, 0.2);
|
assertEquals(0.5, jumpTime, 0.2);
|
||||||
double[] locationAfterJump = facade.getJumpStep(theWorm, jumpTime);
|
double[] locationAfterJump = facade.getJumpStep(theWorm, jumpTime);
|
||||||
System.out.println(getDistance(worm_location, locationAfterJump));
|
|
||||||
assertTrue(facade.isAdjacent(theWorld, locationAfterJump, worm_radius));
|
assertTrue(facade.isAdjacent(theWorld, locationAfterJump, worm_radius));
|
||||||
score += 14;
|
score += 14;
|
||||||
}
|
}
|
||||||
@@ -1982,7 +1975,7 @@ public class Part3_FullFacadeTest {
|
|||||||
@Test
|
@Test
|
||||||
public void jump_ReachingImpassableTerrain() {
|
public void jump_ReachingImpassableTerrain() {
|
||||||
max_score += 9;
|
max_score += 9;
|
||||||
double[] worm_location = new double[] { 7.5, 6.5 };
|
double[] worm_location = new double[] { 7.5, 6.3 };
|
||||||
double worm_orientation = 3 * PI / 4.0;
|
double worm_orientation = 3 * PI / 4.0;
|
||||||
double worm_radius = 1.5;
|
double worm_radius = 1.5;
|
||||||
Worm theWorm = facade.createWorm(theWorld, worm_location, worm_orientation, worm_radius, "Worm", null);
|
Worm theWorm = facade.createWorm(theWorld, worm_location, worm_orientation, worm_radius, "Worm", null);
|
||||||
@@ -2020,7 +2013,7 @@ public class Part3_FullFacadeTest {
|
|||||||
long newNbHitPoints_worm1 = facade.getNbHitPoints(worm1).longValue();
|
long newNbHitPoints_worm1 = facade.getNbHitPoints(worm1).longValue();
|
||||||
assertTrue((newNbHitPoints_TheWorm < oldNbHitPoints_TheWorm) ^ (newNbHitPoints_worm1 < oldNbHitPoints_worm1));
|
assertTrue((newNbHitPoints_TheWorm < oldNbHitPoints_TheWorm) ^ (newNbHitPoints_worm1 < oldNbHitPoints_worm1));
|
||||||
assertTrue((newNbHitPoints_TheWorm == 0) || (newNbHitPoints_TheWorm >= oldNbHitPoints_TheWorm - 5));
|
assertTrue((newNbHitPoints_TheWorm == 0) || (newNbHitPoints_TheWorm >= oldNbHitPoints_TheWorm - 5));
|
||||||
assertTrue((newNbHitPoints_worm1 == 0) || (newNbHitPoints_worm1 >= oldNbHitPoints_TheWorm - 40));
|
assertTrue((newNbHitPoints_worm1 == 0) || (newNbHitPoints_worm1 >= oldNbHitPoints_worm1 - 40));
|
||||||
score += 11;
|
score += 11;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2474,9 +2467,9 @@ public class Part3_FullFacadeTest {
|
|||||||
facade.createWorm(theWorld, new double[] { 7.5, 7.5 }, 0.0, 1.5, "Other", null);
|
facade.createWorm(theWorld, new double[] { 7.5, 7.5 }, 0.0, 1.5, "Other", null);
|
||||||
Projectile projectile = facade.fire(theWorm);
|
Projectile projectile = facade.fire(theWorm);
|
||||||
double jumpTime = facade.getJumpTime(projectile, 0.00001);
|
double jumpTime = facade.getJumpTime(projectile, 0.00001);
|
||||||
assertTrue((Math.abs(jumpTime - 0.08) < 0.01) || (Math.abs(jumpTime - 0.53) < 0.01));
|
assertTrue((Math.abs(jumpTime - 0.08) < 0.05) || (Math.abs(jumpTime - 0.53) < 0.4));
|
||||||
double[] locationAfterJump = facade.getJumpStep(projectile, jumpTime);
|
double[] locationAfterJump = facade.getJumpStep(projectile, jumpTime);
|
||||||
assertTrue(locationAfterJump[1] >= 6.0 - facade.getRadius(projectile));
|
assertTrue(locationAfterJump[1] >= 5.9 - facade.getRadius(projectile));
|
||||||
score += 8;
|
score += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2490,7 +2483,6 @@ public class Part3_FullFacadeTest {
|
|||||||
try {
|
try {
|
||||||
Projectile projectile = facade.fire(theWorm);
|
Projectile projectile = facade.fire(theWorm);
|
||||||
double jumpTime = facade.getJumpTime(projectile, 0.00001);
|
double jumpTime = facade.getJumpTime(projectile, 0.00001);
|
||||||
System.out.println(jumpTime);
|
|
||||||
assertTrue(jumpTime >= 0.0);
|
assertTrue(jumpTime >= 0.0);
|
||||||
score += 6;
|
score += 6;
|
||||||
} catch (ModelException exc) {
|
} catch (ModelException exc) {
|
||||||
@@ -2528,7 +2520,7 @@ public class Part3_FullFacadeTest {
|
|||||||
Projectile projectile = facade.fire(theWorm);
|
Projectile projectile = facade.fire(theWorm);
|
||||||
facade.jump(projectile, 0.00001);
|
facade.jump(projectile, 0.00001);
|
||||||
assertTrue(oldNbHitPoints1.compareTo(facade.getNbHitPoints(hittedWorm1)) > 0);
|
assertTrue(oldNbHitPoints1.compareTo(facade.getNbHitPoints(hittedWorm1)) > 0);
|
||||||
assertTrue(oldNbHitPoints2.compareTo(facade.getNbHitPoints(hittedWorm2)) > 0);
|
assertTrue(oldNbHitPoints2.compareTo(facade.getNbHitPoints(hittedWorm2)) >= 0);
|
||||||
assertTrue(facade.isTerminated(projectile));
|
assertTrue(facade.isTerminated(projectile));
|
||||||
score += 6;
|
score += 6;
|
||||||
}
|
}
|
||||||
@@ -2543,7 +2535,8 @@ public class Part3_FullFacadeTest {
|
|||||||
try {
|
try {
|
||||||
Projectile projectile = facade.fire(theWorm);
|
Projectile projectile = facade.fire(theWorm);
|
||||||
facade.jump(projectile, 0.0001);
|
facade.jump(projectile, 0.0001);
|
||||||
fail();
|
assertFalse(facade.getAllItems(theWorld).contains(projectile));
|
||||||
|
score += 4;
|
||||||
} catch (ModelException exc) {
|
} catch (ModelException exc) {
|
||||||
score += 4;
|
score += 4;
|
||||||
}
|
}
|
||||||
@@ -3290,9 +3283,9 @@ public class Part3_FullFacadeTest {
|
|||||||
max_score += 10;
|
max_score += 10;
|
||||||
Worm worm1 = facade.createWorm(theWorld, new double[] { 2.0, 7.5 }, 0.0, 1.5, "WormA", theTeam);
|
Worm worm1 = facade.createWorm(theWorld, new double[] { 2.0, 7.5 }, 0.0, 1.5, "WormA", theTeam);
|
||||||
String code = "def p: print 4.0; p := 7.0;";
|
String code = "def p: print 4.0; p := 7.0;";
|
||||||
Program program = ProgramParser.parseProgramFromString(code, programFactory);
|
|
||||||
facade.loadProgramOnWorm(worm1, program, actionHandler);
|
|
||||||
try {
|
try {
|
||||||
|
Program program = ProgramParser.parseProgramFromString(code, programFactory);
|
||||||
|
facade.loadProgramOnWorm(worm1, program, actionHandler);
|
||||||
facade.executeProgram(worm1);
|
facade.executeProgram(worm1);
|
||||||
fail();
|
fail();
|
||||||
} catch (ModelException exc) {
|
} catch (ModelException exc) {
|
||||||
@@ -3480,6 +3473,7 @@ public class Part3_FullFacadeTest {
|
|||||||
public void testEatStatement_NotEnoughActionPoints() throws ModelException {
|
public void testEatStatement_NotEnoughActionPoints() throws ModelException {
|
||||||
max_score += 4;
|
max_score += 4;
|
||||||
Worm worm1 = facade.createWorm(theWorld, new double[] { 7.5, 5.5 }, 7 * PI / 12.0, 1.5, "WormA", theTeam);
|
Worm worm1 = facade.createWorm(theWorld, new double[] { 7.5, 5.5 }, 7 * PI / 12.0, 1.5, "WormA", theTeam);
|
||||||
|
facade.createFood(theWorld, new double[] { 8.795, 5.5 });
|
||||||
String code = "eat; ";
|
String code = "eat; ";
|
||||||
Program program = ProgramParser.parseProgramFromString(code, programFactory);
|
Program program = ProgramParser.parseProgramFromString(code, programFactory);
|
||||||
facade.loadProgramOnWorm(worm1, program, actionHandler);
|
facade.loadProgramOnWorm(worm1, program, actionHandler);
|
||||||
|
Reference in New Issue
Block a user