Outils pour utilisateurs

Outils du site


admin:attaquecode

Voici un exemple de code PHP pour implémenter le système de Facteur de Chance (FC) que tu as décrit :

### Code PHP pour le Facteur de Chance (FC) :

```php <?php function lancerDe($nombreDeFaces) {

  return rand(1, $nombreDeFaces);

}

function calculerFC($niveauAttaquant, $niveauDefenseur) {

  $differenceNiveau = $niveauAttaquant - $niveauDefenseur;
  $lanceesAttaquant = [];
  $lanceesDefenseur = [];
  
  if ($differenceNiveau <= -5) {
      // L'attaquant a 5 niveaux de moins ou plus
      $lanceesAttaquant[] = lancerDe(20);
      $lanceesAttaquant[] = lancerDe(20);
      $lanceesDefenseur[] = lancerDe(20);
  } elseif ($differenceNiveau >= 5) {
      // L'attaquant a 5 niveaux de plus ou plus
      $lanceesAttaquant[] = lancerDe(20);
      $lanceesDefenseur[] = lancerDe(20);
      $lanceesDefenseur[] = lancerDe(20);
  } else {
      // Égalité ou différence de niveau < 5
      $lanceesAttaquant[] = lancerDe(20);
      $lanceesDefenseur[] = lancerDe(20);
  }
  // On garde le meilleur des lancés pour l'attaquant et le défenseur
  $meilleurLanceAttaquant = max($lanceesAttaquant);
  $meilleurLanceDefenseur = max($lanceesDefenseur);
  
  // Détermination du FC selon le résultat du dé
  $FC = 1.0;  // Valeur par défaut
  if ($meilleurLanceAttaquant == 20) {
      $FC = 1.5;  // Coup critique
  } elseif ($meilleurLanceAttaquant == 1) {
      $FC = 0.5;  // Échec critique
  } else {
      // Calcul intermédiaire du FC basé sur le résultat du dé
      $FC = 0.5 + (($meilleurLanceAttaquant - 1) / 19) * (1.5 - 0.5);
  }
  // Retourne le FC calculé et les résultats des dés pour information
  return [
      'FC' => $FC,
      'meilleurLanceAttaquant' => $meilleurLanceAttaquant,
      'meilleurLanceDefenseur' => $meilleurLanceDefenseur
  ];

}

// Exemple d'utilisation $niveauAttaquant = 10; $niveauDefenseur = 15;

$resultat = calculerFC($niveauAttaquant, $niveauDefenseur); echo “Facteur de Chance (FC) : ” . $resultat['FC'] . “\n”; echo “Meilleur lancé de l'attaquant : ” . $resultat['meilleurLanceAttaquant'] . “\n”; echo “Meilleur lancé du défenseur : ” . $resultat['meilleurLanceDefenseur'] . “\n”; ?> ```

### Explication du Code :

1. Lancer de Dé :

  1. `lancerDe($nombreDeFaces)` génère un nombre aléatoire entre 1 et le nombre de faces du dé, ici un d20.

2. Calcul du Facteur de Chance (FC) :

  1. Selon la différence de niveau, l'attaquant ou le défenseur peut effectuer deux lancés et garder le meilleur.
  2. Si l'attaquant a 5 niveaux de moins ou plus, il lance deux dés et garde le meilleur, tandis que le défenseur n’en lance qu’un.
  3. Si l'attaquant a 5 niveaux de plus ou plus, le défenseur lance deux dés et garde le meilleur, tandis que l'attaquant n’en lance qu’un.
  4. Si la différence de niveau est inférieure à 5 (dans les deux sens), chaque partie lance un dé.

3. Détermination du FC :

  1. Coup critique (20) : FC = 1.5.
  2. Échec critique (1) : FC = 0.5.
  3. Résultats intermédiaires : Le FC est calculé de manière proportionnelle au résultat du meilleur lancé, entre 0.5 et 1.5.

4. Résultats :

  1. Le code affiche le FC calculé, ainsi que le meilleur lancé pour l'attaquant et le défenseur.

Ce système introduit une dimension stratégique et aléatoire dans le combat, tout en respectant les conditions spécifiées pour le calcul du FC.

admin/attaquecode.txt · Dernière modification : de fabrice