Carnet de bord du projet de Cerise et Mathilde
Le projet
- Pourquoi ce projet?
Ce projet a été choisi au hasard, nous avons cherché des idées de projet que nous avons trouvé sur internet. Nous avons de suite été intéressé par le jeu du pendu. C’est un jeu connu de tous, aussi bien par les adultes que par les plus jeunes, nous le trouvions donc intéressant à réaliser.
De plus, il possède plusieurs algorithmes sur lesquels nous devions réfléchir. Ce jeu n’est pas simple à réaliser pour des débutantes comme nous, mais nous voulions nous confronter à ces différentes difficultés.
Pour ce projet, nous nous sommes inspirées du code d’un jeu du pendu mais qui était en langage JAVA. Nous l’avons donc décortiqué pour essayer de le comprendre afin de pouvoir retranscrire quelques lignes de code en langage Processing. Cela n’a pas été facile, nous avons rencontré de nombreuses difficultés.
- Les enjeux du projet:
Tout d’abord, ce projet est un projet réalisé pour le bac, il représente donc un enjeu
important. Nous avons pris ce projet très au sérieux car nous voulions avoir un projet
bien fait et bien fini a présenter.
L’autre enjeu de ce projet était de pouvoir maitriser le langage processing afin de
comprendre ce que nous faisions.
Le troisième enjeux était de pouvoir travailler en équipe et de mener a bien notre
projet.
Le but visée?
Le but principal de ce projet est de pouvoir créer un code sur le logiciel processing
capable de faire fonctionner le jeu du pendu, c’est à dire qu’un mot soit choisi
aléatoirement parmi le dictionnaire de mots que nous avons crée, puis que
l’utilisateur puisse saisir une lettre dans le textfield avec son clavier.
Ensuite, l’utilisateur clique sur le bouton « valider », si la lettre est juste elle apparaît
dans le label « Mot affiché », elle remplace un « _ » et se situe à la bonne place.
En revanche, si la lettre est fausse, elle se place dans le label « Lettres fausses » et
une partie du dessin apparaît.
L’autre but, moins important, est de créer une interface intéressante qui soit facile à
comprendre et agréable à regarder.
Les moyens mis en oeuvre:
Pour ce projet, nous utilisons le langage processing, avec G4P qui nous sert à
créer l’interface et à la faire évoluer. Grâce à cela nous pouvons créer notre fenêtre
et l’interface de notre jeu comme nous le souhaitons. Grâce à Processing nous
pouvons créer le code qui nous servira à faire fonctionner notre jeu. Nous n’utilisons
pas de matériel particulier, nous avons juste besoin d’un ordinateur où est installé le
logiciel Processing, en rajoutant l’installation de G4P.
Les idées sur lesquelles nous nous sommes appuyées
Pour ce projet, nous nous sommes appuyées, sur un code de pendu en
langage JAVA que nous avons trouvé sur internet. Il nous a permis de
comprendre le fonctionnement de ce jeu. Il nous a inspiré, pour notre code en
langage processing.
Nous avons aussi regardé les exemples de Processing. De plus nous avons
cherché sur le site processing des formules/des codes pouvant nous aider
pour notre projet.
Enfin, nous avons navigué sur internet à la recherche de quelques idées, pour
trouver notre algorithme.
Répartition des taches:
|
Taches |
Planning |
Nom |
|
Trouver comment faire un dictionnaire |
16 Janvier 2015 |
Mathilde |
|
Compte rendu de chaque semaine |
Toutes les semaines |
Cerise |
|
Creation du dessin du pendu |
23 Janvier 2015 |
Mathilde et Cerise |
|
Code pour saisir une lettre |
30 Janvier 2015 |
Mathilde |
|
Faire apparaitre le mot aléatoirement |
30 Janvier 2015 |
Cerise |
|
Dessiner l'interface graphique sur processing? |
6 Fevrier 2015 |
Cerise et Mathilde |
|
Trouver les boucles « for » |
7 février 2015 |
Cerise et Mathilde |
|
Faire apparaitre les lettres fausses |
9 février 2015 |
Mathilde |
|
Faire apparaitre les lettres justes |
12 février 2015 |
Cerise |
|
faire apparaitre le dessin quand la lettre est fausse |
13 Février 2015 |
Mathilde et Cerise |
La plupart du temps nous avons travaillé ensemble, en faisant beaucoup de chose à deux, car cela était plus constructif et nous permettait d’avancer plus vite sur notre projet.
- Notre démarche:
Dans un premier temps, nous avons cherché notre projet, nous voulions créer un jeu ludique auquel tout le monde a déjà joué au moins une fois dans sa vie. Le jeu du pendu nous a inspiré.
Après avoir choisi notre jeu, nous avons cherché sur internet différents jeux du pendu pour étudier leurs codes. Nous en avons trouvé un sur lequel nous nous sommes basées pour comprendre le fonctionnement du jeu. Puis nous avons imaginé sur papier notre interface du jeu et nous avons créé le dessin du pendu sur processing.
Avant de commencer la réalisation du jeu, nous avons établi le fonctionnement général du jeu en fixant nos objectifs chaque semaine. Nous avons d’abord crée l’interface du jeu grâce a G4P. Puis nous avons réfléchi a la partie algorithmique du pendu afin de pouvoir faire fonctionner notre jeu correctement.
Enfin lorsque nous avons fini notre code et que notre jeu fonctionner, nous avons remodelé notre interface.
- Notre travail:
Notre travail le plus important a été de trouver la partie algorithmique de notre jeu. Nous avons du trouver comment coder les principales fonctions de notre code sur processing et comprendre à quoi servait chacune d’entres elles. Nous avons du faire preuve de logique et de patience pour pouvoir avancer dans notre travail de codage.
Role est principe de fonctionnements des fonctions
void setup () : Cette fonction est une méthode qui ne s’exécute qu’une seule fois et ne prend en compte aucun paramètre. Dans cette méthode est compris la création d’un tableau nommé dictionnaire dans lequel une liste de mots a été crée. Ces mots seront ceux que l’utilisateur devra deviner. Le rôle général de la fonction est d’afficher le mot à trouver qui sera ensuite choisi aléatoirement par l’ordinateur dans le dictionnaire. Et ce grâce à la fonction random. Ce mot sera affiché dans la console et non dans la fenêtre de sorte à ce que l’utilisateur ne puisse pas le voir.
void draw () : Cette fonction est une méthode qui s’exécute en boucle tant que le programme fonctionne. Dans cette méthode, chaque lettre fausse donné par l’utilisateur déclenche l’apparition d’un trait du dessin. Ainsi, si il y a plus de 9 lettres fausses proposées avant que le mot ne soit découvert alors le pendu sera entièrement dessiné et le joueur aura perdu la partie.
boolean () : Cette fonction sert à attribuer si la lettre saisie par l’utilisateur est juste ou fausse. De plus un boolean est un type de variable ne pouvant être que vrai ou faux.
Ce sont les principales fonctions que nous avons utilisé pour la réalisation de notre code.
Difficultés rencontrées
Au cours de la réalisation de notre projet, nous nous sommes rendues compte que la partie algorithmique nous posait de nombreux problèmes.
Nous avons durant quelques semaines travaillé sur différentes choses qui ne nous ont menés a rien. Nous avons donc du tout recommencer pour arriver a avoir un jeu fonctionnel.
Pour débuter l’algorithme du jeu, la difficulté était de savoir par où commencer et quelles fonctions et variables utiliser. Nous avions des objectifs à réaliser pour faire notre code mais, n’ayant pas assez de connaissances informatiques, nous ne savions pas comment retranscrire le but visé en algorithme.
Après avoir compris la partie algorithmique, nous avons pu constater qu’il nous avait manqué certaines compétences sur le langage Processing pour pouvoir construire notre code du jeu du pendu.
Bilan et perspectives
Les développements possibles de notre projet pour l’améliorer:
-
- Le mot « victoire » ou « défaite » s’affiche a la fin de la partie.
- Une interface plus interactive.
- Le nombre de jeu est compté et est présent dans l’interface.
- Le score est présent dans l’interface.
- La tête du pendu a deux yeux, une bouche et un nez.
- Le travail en équipe:
Ce projet nous a apporté beaucoup de connaissances sur le langage processing.
Nous avons découvert petit a petit ce que signifiait coder. Nous avons fait beaucoup
de recherches pour arriver a trouver l’algorithmique de notre jeu. Le fait d’être a deux
sur ce projet nous a permis de nous soutenir lorsque nous étions démotivées et
découragées et de trouver ensemble des solutions. Nous étions motivées a l’idée
de réussir à créer un jeu nous même et de le comprendre.
Tout au long de la création de ce projet, nous avons découvert de nouvelles
fonctions, qui nous ont permis de réaliser notre jeu. Ce fut un travail intéressant qui a
demandé beaucoup de recherches et d’investigations de notre part.
Vendredi 13 fevrier 2015

Pour cette séance d'ISN, notre but était de programmer pour les différents mots du dictionnaire si la lettre rentrée par l'utilisateur dans le mot est correcte ou fausse. Par exemple si la lettre saisie par l'utilisateur est 'a' et que le mot à deviner est "Cheval" alors l'ordinateur saura que la lettre est juste et elle s'affichera dans le mot. D'ailleurs notre prochain objectif est que la lettre juste s'affiche à la bonne place dans le mot.
Aidées par notre professeur d'ISN, nous avons utilisé les variables String et char puis la méthode charAt(). Dans un premier temps, nous avons commencé par un des mots de notre dictionnaire qui est cheval. Ainsi avec la variable char, le premier caractère noté c1 renvoie à l'indice 0 du mot cheval soit la lettre 'c' et ainsi de suite pour tous les caractères du mot.
println(c1 +""+c2+""+c3+""+c4+""+c5+""+c6+""); permet de faire afficher dans la console les 6 caractères du mot cheval.
Dans un second temps, nous nous sommes servi de la condition if sur le modèle : if ( boolean : vrai ou faux) {action si vrai;} else {action si faux;}. Supposons que la lettre de l'utilisateur saisie est 'c', si elle équivaut au caractère O du mot alors "vrai" s'affiche dans la console, autrement "faux" s'affiche dans la console. Grâce à cette condition, nous pouvons définir si chaque lettre du mot est correcte ou non dans le mot cheval.

Problèmes rencontrés: Comprendre la partie codée et savoir à quoi servait chaque ligne. Et comment continuer notre code de sorte à ce qu'au lieu que les informations qui s'affichent dans la console, elles s'affichent dans la partie de la fenêtre souhaitée ?
Jeudi 29 janvier 2015

Vendredi 16 janvier 2015Nous avons commencé la création de notre code. Tout d'abord nous avons chercher à creer le dessin de notre pendu, pour cela nous avons regardé les exemples de processing et nous avons trouvé un code qui premettait de creer des lignes et des ellipses, nous nous en sommes inspirées. Ce qui fut difficile etait de trouver les bonnes coordonnées pour chaque ligne. Nous avons réussir à comprendre que line(x1,y1,x2,y2) soit les coordonnées (x,y) du point 1 et du point 2. Du coup nous avons testées des valeurs aléatoirement dans un premier temps pour nous permettre de comprendre. En faite l'axe x est placé en abcisse et en haut de l'écran et l'axe y est placé en ordonnés et dans la direction du bas. Donc le coin en haut à gauche correspond au point (0;0). Nous avons également utiliser la ligne de code de l'ellipse pour faire la tête du personnage. La fonction ellipse est écrite : ellipse(x,y,width,height) avec les coordonnées x,y et la largeur et hauteur.
Ensuite nous avons crée l'interface de notre projet grace a G4P. Pour la zone "Lettre saisie" nous avons utiliser un "text field" et pour les autres zones comme le score ou le mot affiché nous avons utilisé des "landers".
Puis nous avons inséré le code du dessin du pendu au code géneral de notre projet pour qu'il puisse apparaitre dans l'interface. Lorsque nous lançons le code, nous obtenons pour le moment, une fenetre avec le dessin du pendu et les differentes zones de saisie.
Vendredi 09 janvier 2015
Nous avons essayer de comprendre le fonctionnement de G4P en regardant quelques exemples dans Processing.
On a regardé et lu la première partie du code java script pour essayait de comprendre comment il fonctionnait, dans le but de pouvoir l'écrire en langage processing.
Puis nous nous sommes familiarisées avec G4P et vu toutes ses fonctionnalités pour nous permettre de créer notre interface. Nous avons rencontré quelques problèmes pour comprendre son fonctionnement.
-
Tout d'abord, nous avons découvert que nous ne pouvions pas ecrire une variable avec un espace ou des caractères spécifiques.
-
On ne sait pas comment arriver à dessiner le pendu, on ne sait pas comment faire les traits.
-
On a trouvé comment créer un bouton, mais on ne sait pas encore s'il va pouvoir nous servir.
-
Timer ?
Le vendredi 5 décembre 2014
On a commencé par imaginer notre l'interface de notre jeu du pendu.
On a tapé « jeu du pendu » sur internet et nous avons trouvé une page html qui contenait le code source de la page en java script, on va donc s'en inspirer pour notre projet car il se rapproche de ce que l'on souhaite faire.
Exemple d'interface du jeu du pendu. https://musibiol.net/biologie/jeux/pendu/pendu-t.htm
Notre interface imaginée : (sur feuille)

Le code java scipt : view-source:musibiol.net/biologie/jeux/pendu/pendu-t.htm
On a établit le fonctionnement général du jeu :
L'utilisateur saisit la lettre (avec le clavier de l'ordinateur) dans la zone de saisie, si la lettre est fausse elle va apparaître dans la zone des lettres fausses déjà saisie de plus une partie du dessin du pendu apparaît en même temps a droite de l’écran, par contre si la lettre est juste elle sera mise a la bonne place dans la zone du mot affiché.
On pense faire apparaître une zone ou sera exposé le nombre de jeu et une autre avec le score.
Enfin une la partie terminée si on gagne le mot « victoire » apparaît au centre de l'interface et si on perd le mot « défaite » apparaît aussi au centre de l'interface.
