Version sans JavaScript, en lecture seule : les ateliers, les quiz et l’exécution du code n’y sont pas. Version complète · Catalogue · Se connecter

Séquence

Pierre-papier-ciseaux

Socle

Papier bat pierre, pierre bat ciseaux, ciseaux bat papier. On code les choix par des entiers : 1 = pierre, 2 = papier, 3 = ciseaux.

Objectifs : Constantes, switch, hasard, boucle de partie.

Fonctionnalités

  • nomDuChoix(int choix) renvoie "pierre", "papier" ou "ciseaux".
  • determinerVainqueur(int utilisateur, int ordinateur) renvoie 1 (utilisateur), -1 (ordinateur) ou 0 (égalité).
  • Une boucle de partie qui rejoue tant que l’utilisateur le souhaite.

Étapes

  1. Représenter les choix par des entiers (1, 2, 3).
  2. lireChoixUtilisateur(Scanner sc) → un entier entre 1 et 3, validation incluse.
  3. tirerChoixOrdinateur() avec Random.
  4. determinerVainqueur(u, o) → la règle du jeu, isolée.
  5. La boucle : jouer une manche, afficher le résultat, proposer de rejouer.

Critères : Entrées robustes, logique de victoire correcte, code lisible.

Ici, un atelier : on y écrit et on y exécute du code. Il demande JavaScript.

Code de départ

Jeu.java

import java.util.Random;
import java.util.Scanner;

public class Jeu {

    public static String nomDuChoix(int choix) {
        // TODO : 1 = pierre, 2 = papier, 3 = ciseaux
        return "";
    }

    public static int tirerChoixOrdinateur() {
        // TODO : un entier entre 1 et 3
        return 1;
    }

    public static int lireChoixUtilisateur(Scanner sc) {
        // TODO : lire un entier entre 1 et 3, en redemandant si besoin
        return 1;
    }

    public static int determinerVainqueur(int utilisateur, int ordinateur) {
        // TODO : 1 = l'utilisateur gagne, -1 = l'ordinateur gagne, 0 = egalite
        return 0;
    }
}

Exercices.java

import java.util.Scanner;

public class Exercices {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int utilisateur = Jeu.lireChoixUtilisateur(sc);
        int ordinateur = Jeu.tirerChoixOrdinateur();
        System.out.println("Vous : " + Jeu.nomDuChoix(utilisateur));
        System.out.println("Ordi : " + Jeu.nomDuChoix(ordinateur));
        System.out.println("Resultat : " + Jeu.determinerVainqueur(utilisateur, ordinateur));
        sc.close();
    }
}

Le socle se valide dans l’atelier, qui demande JavaScript.

Indice 1

Astuce arithmétique : avec 1, 2, 3, l’utilisateur gagne exactement quand (u - o + 3) % 3 == 1. Si ça vous paraît obscur, écrivez les neuf cas à la main d’abord, les vérifications les testent tous.

Extensions

  • Score cumulatif (premier à 3 victoires).
  • Variante « pierre-papier-ciseaux-lézard-Spock ».