Valeur de cette activité : 3 points
Compétence :
Compétence :
Compétence :
Turtle Graphic

A-Module 12 : ROBOTIQUE - Java : 3 points - difficulté : 2

Turtle Graphic

Turtle Graphic

Description

14 septembre 2012 : IMPORTANT : Lors de la compilation de votre programme, si vous obtenez un message d'erreur du type "An internal error occurred during: "xyz". org/eclipse/jdt/debug/core/JDIDebugModel", veuillez taper dans le terminal

sudo apt-get --reinstall install tzdata-java

Il s'agit d'un problème qui survient lors de la mise à jour du système.
Il est fortement suggéré d'utiliser le navigateur Firefox pour réaliser cette activité.

Pour installer l'environnement java sous windows, consultez le guide suivant : https://www.youtube.com/watch?v=CijsBUrIkw4
Turtle Graphic est une application java qui permet de programmer une tortue en utilisant le langage Java.

Si vous désirez produire ces activités à la maison, je vous suggère de produire les activités à partir de ce site web : http://clab2.phbern.ch/lego/legoEnglish/turtleGrafik.php en utilisant le ONLINE-EDITOR

Sources de cette activité : http://clab2.phbern.ch/lego/legoEnglish/turtleGrafik.php

Utilisez les liens :
- TUTORIELS
- EXERCICES
START ONLINE EDITOR



Cette application permet d'utiliser les éléments de programmation suivants :
  1. Les structures de boucles de répétitions : while et for
  2. les structures conditionnelles : if else et switch
  3. les méthodes et variables
  4. les évènements
  5. la récursivité
  6. les applets
  7. etc.

Vous aurez à compléter 11 séries d'exercices. 3 points seront accordés pour chacun des exercices.
Au total, 39 exercices vous sont proposés.

Si vous désirez utiliser le logiciel GEANY (non suggéré pour les débutants) (sudo apt-get install geany) , cliquez ICI



  1. Consultez au besoin la documentation disponible ICI

    Liste des défis à réaliser



    1. À partir du fichier en exemple présenté pour chacune des séries, réalisez un exercice au choix pour chacune des séries présentées sauf les exercices no 1 qui vous seront présentés par l'enseignant

      Voici les exercices pour chacune des séries :

    Méthode 1 : utilisation de l'éditeur en ligne (suggérée)

    1. Veuillez installer d'abord icedtea-7-plugin en tapant dans le terminal :
      sudo apt-get install icedtea-7-plugin

    2. Vous pouvez utiliser l'éditeur en ligne (suggéré)
      Lancez l'éditeur en ligne


    3. Sélectionnez le "Template" Turtle


    4. Écrivez votre programme afin de réaliser le défi proposé en vous servant des exemples afin de réaliser chacun des exercices. Attention, utilisez la convention de nommage suivantes (en respectant les majuscules/minuscules):

      Pour l'exercice SÉRIE 1 exercice no 1, nommez votre classe "Serie1no1"

      Pour l'exercice SÉRIE 1 exercice no 2, nommez votre classe "Serie1no2"


      Voici, pour vous aider, la solution à l'exercice Série 1 no 1 :
      // Serie1no1.java
      import ch.aplu.turtle.*;
      
      class Serie1no1
      {
        Turtle pierre = new Turtle();
      
        Serie1no1()
        {
          pierre.forward(100);
          pierre.right(120);
          pierre.forward(100);
          pierre.right(120);
          pierre.forward(100);
        }
      
        public static void main(String[] args)
        {
          new Serie1no1();
        }
      }
      
      Voici une explication en exemple de code :

      import ch.aplu.turtle.*;
      // importation de la librairie turtle

      class Serie1no1
      // création de la classe Serie1no1

      {

      Turtle pierre = new Turtle();
      // génération d'un nouvel objet nommé pierre à partir de la classe Turtle
      Color(Color.red); // règle la couleur à rouge
      Serie1no1()
      // Serie1no1() est un constructeur de la classe serie1no1. Le constructeur a TOUJOURS le même nom que le nom de la classe. {
      }


      pierre.forward(100);
      // l'objet "Turtle" nommé pierre avance de 100 unités

      pierre.right(120);
      //l'objet "Turtle" nommé pierre tourne à droite de 120 degrés

      ...

      public static void main(String[] args)
      //Chaque application Java a besoin d'une méthode "main()" qui est toujours définie avec cette structure.
      // La méthode main() est la première à être exécuter dans un programme.
      // Elle indique le début du programme.

      new Serie1no1();
      // Génération d'un nouvel objet de la classe "Serie1no1".
      // Toutes les propriétés et méthodes définies à partir de son constructeur sont exécutés automatiquement.


    5. ATTENTION - IMPORTANT :
      Renommez votre classe en utilisant notre convention de nommage et modifiez dans
      votre programme toutes les références à cette classe., exemple :



    6. Validez le fonctionnement de votre programme en utilisant le lien "Run Serie1no1" + Ouvrir avec - Sun Java 6 Web Start (javaws) + Executer

      Au besoin, utilisez l'emplacement de Sun Java 6 Web Start : /usr/lib/jvm/java-1.7.0-openjdk-i386/bin/javaws


    7. Téléchargez le fichier .jar

    8. Téléchargez le fichier .jar dans votre espace de téléchargement

    Méthode 2 : utilisation de l'éditeur Eclipse

      Pour télécharger et installer Eclipse à la maison, consultez le site http://www.eclipse.org/downloads/ et sélectionnez "Eclipse IDE for Java Developers, 149 MB" : 32 bit ou 64 bit selon votre ordinateur


    1. Lancez le logiciel Eclipse

    2. Sélectionnez le menu FILE + New Class et nommez
      votre programme selon notre convention de nommage




    3. Écrivez votre programme afin de réaliser le défi proposé en vous servant des exemples afin de réaliser chacun des exercices. Attention, utilisez la convention de nommage suivantes (en respectant les majuscules/minuscules):

      Pour l'exercice SÉRIE 1 exercice no 1, nommez votre classe "Serie1no1"

      Pour l'exercice SÉRIE 1 exercice no 2, nommez votre classe "Serie1no2"


      Voici, pour vous aider, la solution à l'exercice Série 1 no 1 :
      // Serie1no1.java
      import ch.aplu.turtle.*;
      
      class Serie1no1
      {
        Turtle pierre = new Turtle();
      
        Serie1no1()
        {
          pierre.forward(100);
          pierre.right(120);
          pierre.forward(100);
          pierre.right(120);
          pierre.forward(100);
        }
      
        public static void main(String[] args)
        {
          new Serie1no1();
        }
      }
      
      Voici une explication en exemple de code :

      import ch.aplu.turtle.*;
      // importation de la librairie turtle

      class Serie1no1
      // création de la classe Serie1no1

      {

      Turtle pierre = new Turtle();
      // génération d'un nouvel objet nommé pierre à partir de la classe Turtle
      Color(Color.red); // règle la couleur à rouge
      Serie1no1()
      // Serie1no1() est un constructeur de la classe serie1no1. Le constructeur a TOUJOURS le même nom que le nom de la classe. {
      }


      pierre.forward(100);
      // l'objet "Turtle" nommé pierre avance de 100 unités

      pierre.right(120);
      //l'objet "Turtle" nommé pierre tourne à droite de 120 degrés

      ...

      public static void main(String[] args)
      //Chaque application Java a besoin d'une méthode "main()" qui est toujours définie avec cette structure.
      // La méthode main() est la première à être exécuter dans un programme.
      // Elle indique le début du programme.

      new Serie1no1();
      // Génération d'un nouvel objet de la classe "Serie1no1".
      // Toutes les propriétés et méthodes définies à partir de son constructeur sont exécutés automatiquement.


    4. ATTENTION - IMPORTANT :
      Renommez votre classe en utilisant notre convention de nommage et modifiez dans
      votre programme toutes les références à cette classe., exemple :



    5. Compilez et validez votre programme en utilisant le menu RUN + RUN ou la touche de raccourci CTRL + F11

    6. Créez votre fichier .jar en utilisant le menu le menu FILE + EXPORT + JAVA + RUNNABLE JAR FILE + ...





    7. Lancez votre programme .jar (pour validation) en tapant dans le terminal :
      java -jar Serie1no1.jar

    8. Téléchargez le fichier .jar dans votre espace de téléchargement

    Étape finale : production de votre page à envoyer à l'enseignant



    1. Ajoutez une page à votre portfolio en affichant l'assistant HTML ainsi que la directive 84962 Voir

    2. Inscrivez dans le champ titre : Turtle Graphic Série 1 no 1

    3. Sélectionnez la section : MODULE ROBOTIQUE

    4. Sélectionnez la matière : informatique

    5. Inscrivez dans le champ no de la directive : 84962

    6. Inscrivez dans votre page le titre de niveau 1 : Turtle Graphic

    7. Indiquez le titre de l'exercice :
      Exemple : Série 1 no 1

    8. Copiez et collez le code de votre programme entre les balises <pre> et </pre>

    9. Commentez chacune des lignes (nouvelles) de votre programme en plaçant // devant chacun de vos commentaires (voir au bas de cette page pour les explications de chacune des commandes java).

    10. Ajoutez un LIEN (Jaune) vers le fichier .jar

    11. Ajoutez un LIEN vers le site des exercices : utilisez cet URL

      http://clab2.phbern.ch/lego/legoEnglish/turtleGrafik.php?inhalt_links=turtle/nav_turtleTu.inc.php&inhalt_mitte=turtle/aufgaben/aufgaben.inc.php

    12. Visualisez votre page et apportez des modifications au besoin.

    Résumé des principales commandes java spécifiquement liées à la librairie Turtle

    • .forward(100); // avance de 100 unités
    • .back(100); // recule de 100 unités
    • .right(90) ; //1 tourner à droite de 90 degrés
    • .left(90) ; // tourner à gauche de 90 degrés
    • Turtle luka = new Turtle(); // création de la tortue nommée luka dans sa propre fenêtre
    • Turtle luka = new Turtle(joe); // création de la tortue nommée luka dans la fenêtre de la tortue joe
    • .speed(10); // régler la vitesse de déplacement de la tortue à 10
    • .setPos(0, 160); // régler la position de la tortue
    • .setColor(Color.red); // régler la couleur de la tortue
    • .setPenColor(Color.red); // régler la couleur du trait
    • .penErase(); // efface
    • .setFillColor(Color.red);règle la couleur de remplissage
    • .fill(1,1);verser la couleur de remplissage au point 1,1
    • .getPos(); // obtenir la position de la tortue
    • .distance(x, y) ; // obtenir la distance entre le poitn x,y et la tortue
    • .label(text) ; // écrire un texte
    • .setFont(Font font); // régler la poilice de caractère
    • .setFontSize(size); // régler la taille de la police
    • .penUp(); // soulever le crayon
    • .penDown(); // déposer le crayon
    • hideTurtle(); //masquer la tortue
    • showTurtle(); //afficher la tortue

    Résumé des principales commandes communes au langage java

    • int i = 0; // création de la variable i et assignation de la valeur 0 à cette variable
    • i++; // incrémentation de la variable i de 1
    • for (int i = 0; i < 4; i++) //répéter avec la variable i valant 0 jusqu'à ce que la variable i soit plus petite que 4
      en utilisant une incrémentation de 1
    • while (i < 4) // répéter pendant que la variable i soit plus petite que 4
    • switch(k)
            {
              case 0:
               ...
                break;
              case 1:
               ...
                break;
              case 2:
                ...
                break;
              default:
               ...  
            }
      //L'instruction switch équivaut à une série d'instructions if .
      En de nombreuses occasions, vous aurez besoin de comparer la même variable (ou expression)
      avec un grand nombre de valeurs différentes,
      et d'exécuter différentes parties de code suivant la valeur à laquelle elle est égale.
      C'est exactement à cela que sert l'instruction switch .
    • void square(){...} // création de la méthode nommée square
    • double a = 100; //création de la variable de type double nommée a et assignation de la valeur 100 à cette variable
    • private // visible seulement dans sa propre classe
    • public //visible partout
    • protected //visible dans le même paquet et dans la sous-classe
    • import ch.aplu.turtle.*; // importation de la librairie turtle
    • class Serie1no1 // création de la classe Serie1no1
    • Serie1no1() // Serie1no1() est un constructeur de la classe serie1no1. Le
    • constructeur a TOUJOURS le même nom que le nom de la classe. { }
    • public static void main(String[] args) //Chaque application Java a besoin d'une méthode "main()" qui est toujours définie
      avec cette structure.
      // La méthode main() est la première à être exécuter dans un programme.
      // Elle indique le début du programme.
    • new Serie1no1();
      // Génération d'un nouvel objet de la classe "Serie1no1".
      // Toutes les propriétés et méthodes définies à partir de son constructeur sont
      exécutés automatiquement.
    • Les types de variables
      
      int  //entiers entre -231 et 231-1
      
      long 	//entiers entre -263 et 263-1
      
      double //nombre décimaux
      
      boolean  //valeur Vrai (true) ou Faux (false)
      
      char 	//chaîne de caractères (texte)