créer le projet
cargo new plus_moins
on obtient cela : dans le projet plus_moins
➜ plus_moins git:(master) ✗ tree
.
├── Cargo.lock
├── Cargo.toml
└── src
└── main.rs
1 directory, 3 files
➜ plus_moins git:(master) ✗
Cargo.toml
[package]
name = "plus_moins"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
rand = "0.9.2"
/src/main.rs
use rand::Rng;
use std::io;
fn main() {
println!("🎯 JEU DU PLUS OU MOINS 🎯");
println!("Devinez le nombre entre 1 et 100 !");
//let nombre_secret = rand::thread_rng().gen_range(1..=100);
//let mut tentatives = 0;
// Utilisez les nouvelles fonctions
let nombre_secret = rand::rng().random_range(1..=100);
let mut tentatives = 0;
loop {
println!("\nEntrez votre proposition :");
let mut supposition = String::new();
io::stdin()
.read_line(&mut supposition)
.expect("Échec de la lecture de la ligne");
// Conversion en nombre
let supposition: u32 = match supposition.trim().parse() {
Ok(num) => num,
Err(_) => {
println!("❌ Veuillez entrer un nombre valide !");
continue;
}
};
tentatives += 1;
// Comparaison
match supposition.cmp(&nombre_secret) {
std::cmp::Ordering::Less => println!("📈 PLUS ! ({} < ?)", supposition),
std::cmp::Ordering::Greater => println!("📉 MOINS ! ({} > ?)", supposition),
std::cmp::Ordering::Equal => {
println!("🎉 BRAVO ! Vous avez trouvé en {} tentative(s) !", tentatives);
println!("✨ Le nombre était bien {} !", nombre_secret);
break;
}
}
// Indice supplémentaire après quelques tentatives
if tentatives == 5 {
let parite = if nombre_secret % 2 == 0 { "pair" } else { "impair" };
println!("💡 Indice : le nombre est {} !", parite);
}
}
println!("\nMerci d'avoir joué ! 👋");
}
cargo build cargo run
