🐉

⚡ Exercices JavaScript - Dresseur Pokémon ⚡

Devenez le meilleur dresseur Pokémon en maîtrisant JavaScript !

🎯 Exercice 1: Profil du Dresseur

Mission : Créez votre profil de dresseur Pokémon avec JavaScript !

Déclarez les variables suivantes pour votre dresseur :

  • let nom = "Sacha"
  • let niveau = 25
  • let badges = 3
  • let pokeDollars = 1500
  • const region = "Kanto"

Affichez une carte de dresseur complète avec console.log() de manière organisée.

0%
📝 Code JavaScript - Carte Dresseur
🏆 Résultats du Dresseur
Cliquez sur "Lancer" pour créer votre profil...
🎓 Conseil du Professeur Chen
🎓 Conseil 1 : Commencez par déclarer chaque variable avec le bon type (let, const) et les bonnes valeurs de dresseur. N'oubliez pas les guillemets pour les chaînes de caractères !
🎓 Conseil 2 : Utilisez console.log() pour afficher votre carte. Combinez texte et variables : console.log("Dresseur:", nom)
🏆 Badge Maître :
let nom = "Sacha";
let niveau = 25;
let badges = 3;
let pokeDollars = 1500;
const region = "Kanto";

console.log("=== CARTE DRESSEUR ===");
console.log("Nom:", nom);
console.log("Niveau:", niveau);
console.log("Badges:", badges);
console.log("PokéDollars:", pokeDollars);

⚔️ Exercice 2: Système de Combat

Mission : Développez un système de combat Pokémon avec les affinités de types !

Créez une fonction calculerDegats(typeAttaque, typeDefense, puissanceBase) qui :

  • Prend le type d'attaque, type de défense, et puissance de base
  • Applique les multiplicateurs :
    • Feu vs Plante = x2 dégâts (super efficace)
    • Eau vs Feu = x2 dégâts (super efficace)
    • Plante vs Eau = x2 dégâts (super efficace)
    • Électrik vs Eau = x2 dégâts (super efficace)
    • Même type = x0.5 dégâts (peu efficace)
    • Autres = x1 dégât (normal)
  • Retourne les dégâts finaux avec un message explicatif
0%
📝 Code JavaScript - Combat Pokémon
⚔️ Résultats de Combat
Cliquez sur "Lancer" pour simuler des combats...
🎓 Conseil du Champion d'Arène
🎓 Conseil 1 : Utilisez if/else ou switch pour détecter les affinités de types. Pensez aux multiplicateurs : x2, x0.5, x1.
🎓 Conseil 2 : Structure : if (typeAttaque === "Feu" && typeDefense === "Plante") { return puissanceBase * 2; }
🏆 Badge Maître :
function calculerDegats(typeAttaque, typeDefense, puissanceBase) {
  let multiplicateur = 1;
  if ((typeAttaque === "Feu" && typeDefense === "Plante") ||
      (typeAttaque === "Eau" && typeDefense === "Feu") ||
      (typeAttaque === "Plante" && typeDefense === "Eau") ||
      (typeAttaque === "Électrik" && typeDefense === "Eau")) {
    multiplicateur = 2;
  } else if (typeAttaque === typeDefense) {
    multiplicateur = 0.5;
  }
  return puissanceBase * multiplicateur;
}

🎣 Exercice 3: Safari Pokémon

Mission : Explorez le Parc Safari et capturez des Pokémon sauvages !

Créez une simulation de capture où :

  • Vous commencez avec 0 Pokémon capturés
  • Vous explorez 10 zones du Safari
  • Chaque zone a une chance de contenir 0 à 2 Pokémon (utilisez Math.floor(Math.random() * 3))
  • Pour chaque Pokémon rencontré, vous avez 70% de chance de le capturer
  • Affichez les résultats de chaque zone
  • Si vous capturez 8 Pokémon ou plus, vous obtenez un Pokémon rare !
0%
📝 Code JavaScript - Exploration Safari
🎯 Rapport Safari
Cliquez sur "Lancer" pour commencer l'exploration...
🎓 Conseil du Garde Safari
🎓 Conseil 1 : Dans la boucle, générez d'abord le nombre de Pokémon avec Math.floor(Math.random() * 3), puis utilisez une autre boucle pour tester chaque capture.
🎓 Conseil 2 : Pour tester 70% de chance : if (Math.random() < 0.7) { captures++; }. Affichez les résultats de chaque zone !
🏆 Badge Maître :
for (let i = 0; i < zones.length; i++) {
  const zone = zones[i];
  const pokemonRencontres = Math.floor(Math.random() * 3);
  let pokemonCaptures = 0;
  for (let j = 0; j < pokemonRencontres; j++) {
    if (Math.random() < 0.7) {
      pokemonCaptures++;
    }
  }
  captures += pokemonCaptures;
  console.log(`🌲 ${zone}: ${pokemonCaptures}/${pokemonRencontres} capturés`);
}

🏥 Exercice 4: Centre Pokémon

Mission : Créez un système de soins et d'évolution au Centre Pokémon !

Développez les fonctions suivantes :

  • soigner(pv) : restaure les PV au maximum (100)
  • booster(niveau) : augmente le niveau de 5
  • evoluer(experience) : double l'expérience
  • utiliserService(service, valeur) : utilise le service approprié

La fonction principale doit gérer : "soin", "boost", "evolution".

0%
📝 Code JavaScript - Services Pokémon
🏥 Services Centre Pokémon
Cliquez sur "Lancer" pour tester les services...
🎓 Conseil de l'Infirmière Joëlle
🎓 Conseil 1 : Chaque fonction spécialisée fait un calcul simple : soigner() restaure à 100, booster() ajoute +5, evoluer() double (*2). La fonction principale doit choisir.
🎓 Conseil 2 : Utilisez switch(service) ou des if/else dans utiliserService() pour appeler soigner(), booster(), ou evoluer().
🏆 Badge Maître :
function soigner(pv) { return 100; }
function booster(niveau) { return niveau + 5; }
function evoluer(experience) { return experience * 2; }

function utiliserService(service, valeur) {
  switch(service) {
    case "soin": return soigner(valeur);
    case "boost": return booster(valeur);
    case "evolution": return evoluer(valeur);
    default: return "Service inconnu";
  }
}

📚 Exercice 5: Pokédex National

Mission : Créez une base de données complète des Pokémon !

Créez un tableau d'objets pour chaque Pokémon contenant :

  • nom (ex: "Pikachu", "Dracaufeu", "Tortank")
  • type (ex: "Électrik", "Feu/Vol", "Eau")
  • niveau (niveau de puissance de 1 à 100)
  • legendaire (booléen - Pokémon légendaire ?)

Créez au moins 3 Pokémon, puis :

  • Affichez tous les Pokémon avec leurs caractéristiques
  • Calculez le niveau moyen avec reduce()
  • Filtrez uniquement les Pokémon légendaires avec filter()
0%
📝 Code JavaScript - Base Pokédex
📖 Données Pokédex
Cliquez sur "Lancer" pour consulter le Pokédex...
🎓 Conseil du Professeur Chen
🎓 Conseil 1 : Ajoutez d'abord 2 autres Pokémon avec des valeurs différentes (ex: "Dracaufeu" type Feu niveau 50 légendaire false, "Mew" type Psy niveau 80 légendaire true). Variez les propriétés !
🎓 Conseil 2 : forEach() parcourt, reduce() accumule (total += pokemon.niveau), filter() sélectionne (pokemon.legendaire === true). N'oubliez pas de diviser pour la moyenne !
🏆 Badge Maître :
// Ajoutez ces Pokémon au tableau :
{ nom: 'Dracaufeu', type: 'Feu/Vol', niveau: 50, legendaire: false },
{ nom: 'Mew', type: 'Psy', niveau: 80, legendaire: true }

pokedex.forEach(pokemon => console.log(`⚡ ${pokemon.nom}: Niveau ${pokemon.niveau}`));
const niveauMoyen = pokedex.reduce((total, pokemon) => total + pokemon.niveau, 0) / pokedex.length;
const pokemonLegendaires = pokedex.filter(pokemon => pokemon.legendaire);