SOLUTION TASK 5.01: Baking a Cake
public class MyKaraIO extends KaraIO {
public void act() {
drawRectangle(21, 4);
stop();
}
public void drawRectangle(int width, int height) {
int i = 0;
while (i < height) {
putLeaves(width);
turnAround();
multiMove(width);
// Go to next line.
turnRight();
move();
turnRight();
i = i + 1;
}
}
public void leaves(int count) {
int i = 0;
while (i < count) {
putLeaf();
move();
i = i + 1;
}
}
public void multiMove(int steps) {
int i = 0;
while (i < steps) {
move();
i = i + 1;
}
}
public void turnAround() {
turnLeft();
turnLeft();
}
}
SOLUTION TASK 5.02: Candles on Cake
public class MyKaraIO extends KaraIO {
public void act() {
drawRectangle(21, 4);
drawCandles(10);
stop();
}
public void drawCandles(int count) {
int i = 0;
while (i < count) {
move();
turnLeft();
putLeaves(3);
turnAround();
multiMove(3);
turnLeft();
move();
i = i + 1;
}
}
public void drawRectangle(int width, int height) {
// ...
}
public void putLeaves(int count) {
// ...
}
public void multiMove(int steps) {
// ...
}
public void turnAround() {
// ...
}
}
SOLUTION TASK 5.03: Candles for Age
public class MyKaraIO extends KaraIO {
public void act() {
drawRectangle(21, 4);
int age = intInput("How old is your grandmother?");
drawCandles(age / 10);
stop();
}
public void drawCandles(int count) {
// ...
}
public void drawRectangle(int width, int height) {
// ...
}
public void putLeaves(int count) {
// ...
}
public void multiMove(int steps) {
// ...
}
public void turnAround() {
// ...
}
}
SOLUTION TASK 5.04: Layered Cake
public class MyKaraIO extends KaraIO {
public void act() {
int age = intInput("How old is your grandmother?");
drawLayers(age / 10 - 5);
stop();
}
public void drawLayers(int layers) {
int currentWidth = 21;
int i = 0;
while (i < layers) {
drawRectangle(currentWidth, 2);
move();
move();
currentWidth = currentWidth - 4;
i = i + 1;
}
}
public void drawRectangle(int width, int height) {
// ...
}
public void putLeaves(int count) {
// ...
}
public void multiMove(int steps) {
// ...
}
public void turnAround() {
// ...
}
}