Aller au contenu principal

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 ArrayList pour 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";
info

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);
}
attention

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


Comment déclare-t-on une variable entière valant 100 en Java ?


Quelle méthode permet d'ajouter un élément dans une ArrayList ?


Comment affiche-t-on du texte dans la console en Java ?


Quelle classe permet de lire la saisie au clavier en Java ?


Comment obtient-on la taille d'une ArrayList nommée `liste` ?


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".


Bonne pratique - Préférer le diamant <> vide

Depuis 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.


Bonne pratique - Fermer le Scanner

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 "- ".


Bonne pratique - Boucle for-each plutôt que for classique

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.


Bonne pratique - Décomposer en méthodes

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.

📌 Une solution