Chapitre 1: Premiers Pas

Solutions

This page contains parts that are not translated yet. If you'd like to help out please read how to contribute.

SOLUTION TÂCHE 1.02

  1. Que fait la méthode move() ?
    Kara avance d’une cellule.
  2. Placez deux Karas et faites les se faire face. De quelle méthode avez-vous besoin ?
    turnLeft() ou turnRight()
  3. Essayez les autres méthodes. Il existe deux types de méthodes. Quelles sont ces 2 types et que font-elles ?
    Les méthodes avec void: Réalise une action. Les méthodes avec un boolean: Ouvre une fenêtre qui contient le résultat attendu.

SOLUTION TÂCHE 1.03

  1. Clic droit sur l’objet Kara et appelez la méthode onLeaf(). Est-ce qu’elle retourne toujours false ? Ou y a-t-il des cas où elle retourne true ?
    Si Kara est sur une feuille, cette méthode retourne true.
  2. Ajoutez un arbre au monde. Quelle méthode invoquer pour vérifier si Kara est face à un arbre ?
    treeFront()
  3. Que se passe-t-il si vous invoyez la méthode move() de Kara method alors qu’elle fait face à un arbre ?
    Kara indique qu’elle ne peut pas avancer.

SOLUTION TÂCHE 1.04

Quelles sont les valeurs des coordonnées et de la rotation dans les situations suivantes ?

  1. x: 0, y: 0, rotation: 0

  2. x: 1, y: 2, rotation: 180


SOLUTION TÂCHE 1.05

  1. Placez un objet MyKara dans le monde. Quelle nouvelle méthode est devenue disponible ?
    act()
  2. Que fait cette méthode ?
    Move, turn right, move
  3. Que se passe-t-il si vous appuyez sur le bouton de contrôle Act de Greenfoot ?
    Même choses que ci-desus, la méthode act() est appelée
  4. Appuyez sur le bouton Run. Que se passe-t-il ? Essayez d’utiliser le potentiomètre linéaire.
    act() est appelée encore et encore jusqu'à ce le bouton pause soit cliqué.
  5. Quelle méthodes peut-on voir quand on clique droit sur MyKara puis “inherited from Kara” ? Peut-on utiliser ces méthodes ?
    Toutes les méthodes héritées peuvent être utilisées directement dans MyKara.

SOLUTION TÂCHE 1.06

public class MyKara extends Kara {
	
	public void act() {
		move();
        putLeaf();
        move();

		stop();
	}
}

SOLUTION TÂCHE 1.07

public class MyKara extends Kara {
	
	public void act() {
		move();

		turnLeft();
		move();
		turnRight();
		move();
		move();
		turnRight();
		move();
		turnLeft();

		turnLeft();
		move();
		turnRight();
		move();
		move();
		turnRight();
		move();
		turnLeft();

		move();

		turnLeft();
		move();
		turnRight();
		move();
		move();
		turnRight();
		move();
		turnLeft();

		removeLeaf();

		stop();
	}
}

Notes

  1. The comments in the code have been omitted (= the text that is in the Greenfoot editor either gray or blue). Comments in the source code are written as additional information. The comments are for people and are ignored by the computer. There are three ways to post comments in the code:
  2. With a double slash // (after the double slash the rest of the line is a comment)
  3. Longer comments over several lines are enclosed between /* and */.
  4. Comments on methods and classes are written between /** and */.
  5. The method stop() makes sure the simulation stops after the act()-Method even when the Run-button was pressed.

SOLUTION TÂCHE 1.08

public class MyKara extends Kara {
	public void act() {
		move();
		goAroundTree();
		goAroundTree();
		move();
		goAroundTree();
		removeLeaf();

		stop();
	}

	public void goAroundTree() {
		turnLeft();
		move();
		turnRight();
		move();
		move();
		turnRight();
		move();
		turnLeft();
	}
}

Notes

  1. For greater clarity and to avoid that we need to write the same code three times, we have developed a new method goAroundTree().
  2. The name of the methods here are preceded by two keywords: public void. public means that the method can be called from outside. void means that the method returns no value.
  3. Behind each method is a pair of parentheses () which means that the method gets passed no parameters. Later we will learn how to write methods with parameters.