Skip to content

Duel Cerveau

Claude edited this page Oct 12, 2026 · 1 revision

Duel Cerveau — exercices de vitesse contre un ami, en direct

Ajouté en v2.51, sur le modèle de Brain Wars.

Pour jouer

  1. Page Gym Cerveau → encart ⚔️ Duel Cerveau → Se connecter à un ami. C'est la même connexion « En direct » que pour une partie : l'un crée, l'autre rejoint, un code s'échange une seule fois. Pas de compte, pas de serveur de jeu.
  2. Lancer un duel : ton ami reçoit le défi et l'accepte ou le refuse.
  3. 3 manches, tirées parmi 5 exercices : Acuité, Réflexe, Mat, Mémoire, Anticipation. Le niveau est celui du joueur qui défie.
  4. Tableau des manches (points et secondes de chacun), puis Revanche. Le bilan victoires / défaites est gardé sur l'appareil.

Règles

  • Même position pour les deux : celui qui défie tire une graine ; pendant la génération de chaque exercice, le hasard (Math.random) est remplacé par un générateur à graine (mulberry32, graine + numéro de manche). Les deux appareils construisent exactement le même exercice.
  • Gagner une manche : le meilleur score ; à score égal (non nul), le plus rapide ; sinon manche nulle.
  • Gagner le duel : le plus de manches ; à égalité, le total des points, puis le temps total.
  • Le réseau ne compte pas : chaque appareil mesure son propre temps, du début de l'exercice à la réponse, puis l'envoie.
  • Limite de 30 s par manche ; la réponse ne compte qu'une fois (un vieux minuteur d'exercice ne peut pas la réécrire).

Technique

  • Messages DUEL:<type>:<json> sur le canal WebRTC existant, interceptés en tête de _rtcHandleMessage comme NULLE: : defi, ok, refus, occupe, res.
  • gymFinish appelle _duelSurFin, qui envoie le résultat de la manche en cours.
  • Fermer la connexion interrompt le duel proprement.
  • Tests : section 48 de tests/engine.test.js (même graine → même plateau pour les 5 exercices ; déroulé complet des 3 manches ; refus, occupation, déconnexion, défi mal formé).

Limite

Jouer contre des inconnus au hasard demanderait un serveur de mise en relation : la connexion directe actuelle suppose d'échanger un code avec quelqu'un qu'on connaît.

Clone this wiki locally