Doc Donjon FI (v3)

Éditeur de fictions interactives avec interpréteur

Outils pour utilisateurs

Outils du site


reference:divers:format_fichier_solution

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
reference:divers:format_fichier_solution [2024/10/05 09:04] jonathanreference:divers:format_fichier_solution [2026/06/16 21:50] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-====== Format fichier sauvegarde et fichier solution ======+====== Format des fichiers sauvegarde (.sol) ====== 
 + 
 +Donjon FI utilise un fichier ''.sol'' pour **sauvegarder** une partie en cours et la **rejouer** plus tard à l'identique. C'est aussi le format utilisé par le [[reference:debogage:mode_triche|mode triche]] pour reproduire automatiquement une séquence de commandes. 
 + 
 +====Structure générale =====
  
-Sauvegarde : 
 <code json> <code json>
 { {
-    "versionDonjon": "020100", +  "versionDonjon": "020100", 
-    "versionJeu": "1.5" +  "versionJeu": "1.5", 
-    "partie":  +  "partie":
-        "g:7245841854234", +    "g:0.25796434437940996", 
-        "c:prendre clé", +    "c:prendre clé", 
-        "r:2", +    "r:2", 
-        "c:i", +    "c:i", 
-        "c:x porte", +    "c:x porte", 
-        "c:ouvrir la porte avec la clé", +    "c:ouvrir la porte avec la clé", 
-        "c:entrer", +    "c:entrer", 
-        "c:x trou", +    "c:x trou", 
-        "d:porteRougeSeReferme", +    "d:porteRougeSeReferme", 
-        "c:manger baie", +    "c:manger baie", 
-        "g:34526256254", +    "g:0.7474848097328197", 
-        "c:x baie", +    "c:x baie", 
-        "c:p baie" +    "c:p baie" 
-    ], +  ], 
-    "scenario": "Le joueur se trouve dans le salon.\r\n\r\nSa description est \"Vos vêtements sont sales. Vous avez perdu des kilos. Il est temps de sortir d’ici !\"."+  "declenchementsFuturs": [ 
 +    "activationPiege:345" 
 +  ], 
 +  "scenario": "Le joueur se trouve dans le salon.\r\n\r\nSa description est \"Vos vêtements sont sales. \"."
 } }
 </code> </code>
 +
 +===== Types d'étapes =====
 +
 +Chaque entrée du tableau ''partie'' commence par un préfixe à une lettre :
 +
 +^ Préfixe ^ Sens                                              ^ Exemple                              ^
 +| ''c''   | **Commande** du joueur                            | ''c:prendre clé''                    |
 +| ''r''   | **Réponse** à une question du jeu (1, 2, oui…)    | ''r:2''                              |
 +| ''g''   | **Graine** aléatoire courante (PRNG)              | ''g:0.25796…''                       |
 +| ''d''   | **Déclenchement** d'une routine forcée (chrono)   | ''d:porteRougeSeReferme''            |
 +| ''d'' (avec arguments) | Routine programmée **avec arguments** — résolus au déclenchement | ''d:afficherScore avec 3''           |
 +
 +À la reprise (mode triche / replay), le moteur ré-applique chaque étape **dans l'ordre** : il pose la graine ''g'', envoie la commande ''c'' au commandeur, ou injecte la réponse ''r'' attendue, ou force le déclenchement ''d'' de la routine.
 +
 +===== Routines programmées et sauvegardes =====
 +
 +Quand une [[reference:temps:programmer_routine|routine programmée]] arrive à échéance, son déclenchement est enregistré comme une étape ''d:nomRoutine''. À la reprise, la routine est rejouée à la même place dans la chronologie, sans relancer le chronomètre temps réel.
 +
 +Si la routine a été programmée [[reference:temps:programmer_routine|avec des arguments]], l’étape encode les arguments **résolus** au moment du déclenchement, sous forme canonique : un nombre est écrit tel quel (''d:afficherScore avec 3''), un texte entre guillemets (''d:annoncer avec "bravo"''), un élément du jeu par son intitulé.
 +
 +**Cas limite** : une routine **programmée mais pas encore déclenchée** au moment de la sauvegarde n'est **pas** restaurée — le chrono en cours n'est pas reporté. Pour des scénarios qui exigent un comptage déterministe, utilisez plutôt le [[reference:debogage:magneto|magnétoscope]] ''.rec''.
 +
 +===== .sol vs .rec =====
 +
 +  * **''.sol''** (sauvegarde) — contient les étapes de la partie. Permet de reprendre le jeu. Ne stocke **pas** la sortie attendue.
 +  * **''.rec''** (enregistrement) — contient les étapes **et** la sortie attendue à chaque étape. Permet de **vérifier** qu'une modification du scénario n'a pas cassé un parcours. Voir [[reference:debogage:magneto|magnétoscope]].
 +
 +===== Voir aussi =====
 +
 +  * [[reference:debogage:mode_triche|Mode triche]] — rejouer un ''.sol'' automatiquement.
 +  * [[reference:debogage:magneto|Magnétoscope]] — rejeu pas-à-pas avec vérification de sortie (''.rec'').
 +  * [[reference:temps:programmer_routine|Programmer une routine]] — interaction des chronos avec la sauvegarde.
 +
 +{{tag>fichier_solution sauvegarde sauvegardes sol .sol rejeu rejouer replay graine prng aléatoire aleatoire mode_triche déclenchement declenchement routine format}}
 +
reference/divers/format_fichier_solution.1728111876.txt.gz · Dernière modification : (modification externe)