Description du laboratoire

Dans ce labo vous allez faire une première expérience de code avec des classes en codant un jeu du pendu tout d’abord relativement simple (et entièrement dans la console) avant de le compléter par une version graphique utilisant les mêmes classes.


Donnée du projet

  Labo 7 - Jeu du pendu (418,8 KiB, 944 hits)

Fichiers à télécharger

  Input.java (2,2 KiB, 2 251 hits)

  fungraphics-v1.5.6.jar (71,0 KiB, 2 707 hits)

  Dialogs.java (1,8 KiB, 1 002 hits)

Une solution possible du laboratoire :

  Hangman lab - Solution (2,7 KiB, 85 hits)

Lab extension

Pour celles et ceux qui ont déjà programmé ou toutes les personnes intéressées, voici deux extensions possibles du labo à l’aide des fichiers

  french_common_words.csv (13,3 KiB, 463 hits)

  french_dictionary.txt (2,2 MiB, 9 705 hits)

Ce sont deux dictionnaires, l’un contenant les 600 mots les plus fréquents de la langue française et l’autre contenant > 200’000 mots du français. Vous pouvez grâce à ces deux dictionnaires réaliser les fonctionnalités suivantes :

  • Faire un jeu complet qui choisit automatiquement un mot à faire deviner dans la liste des 600 avec un niveau difficulté dépendant de la longueur du mot.
  • Faire une aide de jeu dynamique qui permet de donner des conseils sur les mots grâce au dictionnaire complet. Par exemple, si les lettres trouvées sont ‘l*p*n*’ les suggestions suivantes doivent être proposées : « lapant, lapent, lapine, lapins, lapons, lopins, lupins ».
  • Afficher les lettres déjà jouées.
  • Animer le pendu.

Afin de charger les fichiers, vous pouvez utiliser le code suivant :

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;

public String[] loadList(String filePath) {
  String[] wordList;
  try {
    BufferedReader bf = new BufferedReader(new FileReader(filePath));
    ArrayList < String > al = new ArrayList < String > ();
    while (bf.ready()) {
      String[] c = bf.readLine().split(";");
      al.add(c[0]);
    }
    wordList = al.stream().toArray(String[]::new);
    System.out.println("[Dictionary loaded with " + wordList.length + " words]");
    bf.close();
    return wordList;
  } catch(Exception e) {
    e.printStackTrace();
    return null;
  }
}

 

Un exemple de cette version du jeu est disponible – sans l’animation – ici :

  hangman_extended.jar (574,8 KiB, 801 hits)

Vous pouvez exécuter directement ce fichier sur Windows et MacOS. Pour Linux, faites clic droit et « Exécuter avec Java VM« .