Projet ISN

AEFE 2015

Damier magique

Lycée Claudel d’Ottawa

Auteurs : Patrick Boissière, Yvan Ferrot et Ernesto Ramos

du 24 avril au 17 mai 2015. 

  •  On considère un damier rectangulaire de taille n par m et de cases blanches.
  •  La sélection d’une case change sa couleur ainsi que les cases voisines horizontales et verticales.
  • Le but du jeu est de passer d’un damier initialement blanc à un damier de couleur bleue.
  • Le programme devra mesurer la performance du joueur en comptant le nombre de coups et le pourcentage de cases bleues.

Présentation du jeu

Créer une version logicielle du jeu du « damier magique »

Damier blanc

Case 3x4 selectionnée

Case 1x4 selectionnée

YF : - Interface graphique du jeu

       - Mesurer le temps de jeu

       - Exporter le jeu dans javaprog

 

 

gggggggg

▀ ▀ ▀ ▀ ▀

 ▀  ▀

▀ ▀ ▀ ▀

 ▀ ▀ ▀

ER : - Écriture dans un fichier

       - Tableau score en mode console 

       - Jeu en mode console

 

PB : - Jeu en mode graphique

        - Insertion de boîtes de dialogue

        - Insertion de fenêtres graphiques

        - Insertion de champs de texte

Finaliser   le   jeu   en   mode   console   et   graphique

Score texte

_ _ _ _

_ _ _ _

Score graphique

_ _ _ _

_ _ _ _

Valider score

Nouveau damier

Terminer

 

Damier

Gestion du projet

Difficultés rencontrées

Interface graphique. Réalisation du damier

Utilisation de la proglet codagePixels

  • accès à des outils de représentations graphiques 
  • manipuler une image de résolution variable
  • procédures hline (lignes horizontales) et vline (lignes verticales)
  • fonction rect pour colorier une des cases de ce damier 
  • Impossibilité de créer en javascool une nouvelle proglet contenant à la fois codagePixels et javaprog
  • Impossibilité de faire communiquer les variables du runnable vers le programme principal 

Solution proposée

  • Importer les fonctions de la proglet codagePixels dans le programme compilé sous javaProg
  • Utiliser les classes pour les passer en méthode

Évolution

Avec proglet codage pixels

Avec importation de fonctions

Greffe du jeu & premier livrable

Fichier des scores

Imperfections constatées  (corrigées ultérieurement) :

  • Classement avec fusion des résultats de scores pour un damier nxp et pxn
  • Classement avec complétion des scores < 10 
  • Limitation du jeu à un damier 9x9 (score avec au maximum deux chiffres)
  • Tableau est en mode string 

Ce module demande le nom du joueur, le nombre de colonnes et de lignes et crée un tableau avec quelques cases vides

Le programme calcule le nombre de cases noires, affiche le résultat et l'enregistre sur un fichier score (1), lit le contenu du fichier et le modifie après triage (2)

(1)                    (2)

Programmation Objet

Greffe du fichier des scores

et deuxième livrable

Difficultés

  1. Environnement de programmation de javascool non optimal pour :
    • l'absence de mode recherche
    • le reformatage du code, l'absence d'auto-complétion 
    • Python, dont l’écriture est identé nous semble plus aisé à relire
  2. Les pistes de recherche pour améliorer la production
    • Positionnement des diverses fenêtres lors de l’exécution
    • Une autre gestion du score
  3. La gestion du tableau en mode string, qui rend difficile l’actualisation des données numériques comme la tentative d’intégrer un temps de calcul
     
  4. La difficulté de gestion de l’affichage graphique
     
  5. Entre java et javascool, la définition des permissions (public, private) qui rend la documentation java parfois difficilement transférable sur javascool

Conclusion

  • Nous aurions dû davantage prendre en considération la gestion du temps et l’interface graphique utilisant javascool.
     
  • Très bonne expérience d'un travail collaboratif  
     
  • Cette réalisation nous a permis d’approfondir la gestion d'événement du type "clics de souris", la connaissance d’un langage objet, la manipulation de fichiers.
     
  • Nous envisageons de reprendre ce projet en Python afin  de comparer les deux langages sur les points précis qui nous ont posés des difficultés
     
  • Notre production en javascool/java (de la proglet embarqué jusqu’à la réalisation) semble accessible à des élèves jusqu'au premier livrable, c'est à dire en restant bien dans l'environnement des proglets.
  • Pour trouver des projets à supports ludiques originaux, le site MAth.en.Jeans semble prometteur.

Copy of deck

By Patrick BOISSIÈRE