1) Révisions Java
Bienvenue dans ce projet fil rouge : vous allez construire un jeu RPG en console, séance après séance. À la fin, vous aurez un jeu complet avec des personnages, des combats et une base de données.
Avant de plonger dans la Programmation Orientée Objet, cette première séance révise les fondamentaux Java dont vous aurez besoin tout au long du projet.
Objectifs de la séance
- Déclarer des variables avec les types
int,String,boolean - Écrire et appeler des méthodes statiques
- Utiliser
ArrayListpour stocker une liste de personnages - Lire une saisie clavier avec
Scanner - Afficher des informations dans la console
Notions théoriques
Variables et types primitifs
En Java, chaque variable doit avoir un type déclaré explicitement. Les types les plus courants sont :
int: un nombre entier (ex : points de vie, force)double: un nombre décimal (ex : multiplicateur de dégâts)boolean: vrai ou faux (ex : est-ce que le personnage est vivant ?)String: une chaîne de caractères (ex : le nom du personnage)
int pointsDeVie = 100;
double force = 15.5;
boolean estVivant = true;
String nom = "Aragorn";
En Java, les types primitifs (int, double, boolean) commencent par une minuscule. String commence par une majuscule car c'est une classe, pas un type primitif.
Méthodes statiques
Une méthode statique appartient à la classe, pas à un objet. On l'appelle directement avec le nom de la classe. C'est pratique pour regrouper des fonctions utilitaires.
public class JeuUtils {
public static void afficherBienvenue() {
System.out.println("Bienvenue dans le Jeu RPG !");
}
public static int calculerDegats(int force) {
return force * 2;
}
}
Pour appeler une méthode statique :
JeuUtils.afficherBienvenue();
int degats = JeuUtils.calculerDegats(10);
ArrayList
ArrayList est une liste dynamique : contrairement aux tableaux ([]), sa taille s'adapte automatiquement quand on ajoute ou supprime des éléments.
import java.util.ArrayList;
ArrayList<String> noms = new ArrayList<>();
noms.add("Aragorn");
noms.add("Gandalf");
noms.add("Legolas");
System.out.println(noms.size()); // affiche 3
System.out.println(noms.get(0)); // affiche Aragorn
for (String nom : noms) {
System.out.println(nom);
}
N'oubliez pas l'import import java.util.ArrayList; en haut du fichier, sinon Java ne reconnaît pas ArrayList.
Scanner — lire la saisie clavier
La classe Scanner permet de lire ce que l'utilisateur tape au clavier.
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
System.out.print("Entrez votre nom : ");
String nomSaisi = scanner.nextLine();
System.out.println("Bonjour, " + nomSaisi + " !");
scanner.close();
Exemple pratique
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
ArrayList<String> nomsPersonnages = new ArrayList<>();
nomsPersonnages.add("Aragorn");
nomsPersonnages.add("Gandalf");
nomsPersonnages.add("Legolas");
Scanner scanner = new Scanner(System.in);
System.out.print("Entrez le nom de votre personnage : ");
String nouveauNom = scanner.nextLine();
nomsPersonnages.add(nouveauNom);
System.out.println("=== Liste des personnages ===");
for (String nom : nomsPersonnages) {
System.out.println("- " + nom);
}
System.out.println("Total : " + nomsPersonnages.size() + " personnages");
scanner.close();
}
}
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Vous allez créer le point d'entrée du jeu RPG : une classe Main qui gère une liste de personnages et permet à l'utilisateur d'en ajouter un.
Étape 1 — Créer et remplir la liste de personnages
Créez une ArrayList<String> nommée nomsPersonnages et ajoutez trois noms par défaut : "Aragorn", "Gandalf" et "Legolas".
<> videDepuis Java 7, vous pouvez écrire new ArrayList<>() sans répéter le type entre les chevrons. Java le déduit automatiquement depuis la déclaration. C'est plus concis et aussi lisible.
Étape 2 — Lire le nom saisi par l'utilisateur
Ajoutez un Scanner pour lire le nom que l'utilisateur veut donner à son personnage, puis ajoutez ce nom dans la liste.
Après avoir fini de lire les entrées, appelez scanner.close(). Cela libère la ressource système associée au clavier. Omettre cette fermeture peut provoquer des avertissements et des fuites de ressources dans les applications longues.
Étape 3 — Afficher tous les personnages avec une boucle
Parcourez la liste et affichez chaque nom avec le préfixe "- ".
Quand vous parcourez simplement une liste sans besoin de l'index, préférez la boucle for-each. Elle est plus lisible et évite les erreurs d'index hors limites (ArrayIndexOutOfBoundsException).
Étape 4 — Afficher le total avec une méthode statique
Créez une méthode statique afficherTotal(int nombre) qui affiche le nombre de personnages, et appelez-la depuis main.
Même pour de petits programmes, habituez-vous à extraire des blocs de code dans des méthodes nommées. Cela rend le code plus lisible et facilitera grandement la refactorisation quand le projet grandira.