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)renvoie1(utilisateur),-1(ordinateur) ou0(égalité).- Une boucle de partie qui rejoue tant que l’utilisateur le souhaite.
Étapes
- Représenter les choix par des entiers (1, 2, 3).
lireChoixUtilisateur(Scanner sc)→ un entier entre 1 et 3, validation incluse.tirerChoixOrdinateur()avecRandom.determinerVainqueur(u, o)→ la règle du jeu, isolée.- 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 ».