Besoin d'aide pour un systeme de sauvegarde pour un jeux textuel

Fermé
Signaler
Messages postés
107
Date d'inscription
dimanche 26 mai 2013
Statut
Membre
Dernière intervention
28 juillet 2019
-
Messages postés
107
Date d'inscription
dimanche 26 mai 2013
Statut
Membre
Dernière intervention
28 juillet 2019
-
Bonjours,

je souhaite créez un jeux textuel (un peu comme "Zork"pour les connaisseur ) en .BAT.

je souhaiterais donc trouvez un moyen de faire une sorte de sauvegarde que le joueur pourra récupéré et reprendre ça partie la ou il la laissez sans avoir a tout recommencé..

ce qui veux dire récupéré toute les variable qui serrons utilisé pour indiqué qu'elle objet il a récupéré, ces actions, et également (si possible) la zone du jeux ou il a "déconnecter".

mais egalement qu'il puisse y avoir pourquoi pas plusieurs parti possible avec chacun ça sauvegarde..

je pensais essayer quelque chose comme une identification du joueur (un pseudo par exemple) et envoyée toute les variable au fur et a mesure du jeu dans un document .txt au nom du joueur,
qui a la réouverture du jeu lui proposerai de reprendre ça parti %nomdujoueur% (ou de recommencée avec un autre pseudo),
mais comment récupéré les donné des différente variable par la suite et faire en sorte de recommencé exactement au même point ( :chapitre du coups) que la fermeture précédente du jeu ?

merci pour vôtres temps et votre aide,
cordialement.

2 réponses

Messages postés
13749
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
2 décembre 2021
4 757
Bonjour,

Ca doit être faisable, à coups de variables et de fonctions, ce qu'il faut éviter c'est de mettre des GOTO.
Messages postés
13749
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
2 décembre 2021
4 757 >
Messages postés
107
Date d'inscription
dimanche 26 mai 2013
Statut
Membre
Dernière intervention
28 juillet 2019

Si tu mets des GOTO partout tu vas produire ce qu'on appelle du code "spaghetti", c'est-à-dire un truc difficilement lisible et compréhensible, et difficile à "débugger" en cas de problème.

Un .bat se lit de haut en bas, si tu fais des sauts pour un oui ou un non ça va être compliqué à suivre.

Il faudrait construire un modèle commun à tous les chapitres, puis appeler cette fonction avec les paramètres personnalisés propres à chaque chapitre.

Si tu veux que je puisse t'aider, il faudrait me fournir 2 ou 3 chapitres pour que je puisse essayer de construire un modèle.
Messages postés
107
Date d'inscription
dimanche 26 mai 2013
Statut
Membre
Dernière intervention
28 juillet 2019
13 >
Messages postés
13749
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
2 décembre 2021

je ne suis pas sur d'avoir encore suffisamment a te transmettre pour le moment..

je comprend ce que tu veux dire par "du code spaghetti" mais par rapport au rendu que j'aimerais je ne vois pas vraiment comment faire autrement c'est sur que ce n'est pas le code le plus optimisé du monde mais ça marche x) (du moins pour le moment..)

voici le "brouillons" dont je dispose (juste a partir du début du jeux sans les menu de base ni l'histoire etc):


:chap1
cls
echo.
echo -------------------------------------------------
echo ! *tot le matin devant votre dejeunee* !
echo ! !
echo ! 1-ranger son dejeunee. !
echo ! 2-laissez ca est partir rejoindre votre pere. !
echo ! 3-retourner vous couchee. !
echo ! !
echo ! !
echo -------------------------------------------------
echo.
echo.
echo.
echo.
set /p matin=

if %matin%==1 goto ranger
if %matin%==2 goto papa
if %matin%==3 goto dodo

:ranger
cls
set /a respmatin=1
echo.
echo -------------------------------------------------
echo ! *vous vous levez pour ranger puis* !
echo ! *vous apercevez un papier en boule* !
echo ! *sous la table* !
echo ! !
echo ! 1-continue a ranger et partir !
echo ! 2-jetez le papier a la poubelle !
echo ! 3-lire le papier !
echo ! !
echo -------------------------------------------------
echo.
echo.
echo.
echo.
set /p matin1=

if %matin1%==1 goto pasvue1
if %matin1%==2 goto poubelle
if %matin1%==3 goto lettre
if not exist "%matin1%" goto ranger

:dodo
set /a respmatin=0
set /a dodo=1
cls
echo.
echo -------------------------------------------------
echo ! *en retournant vous couchee* !
echo ! *vous apercevez un papier en boule* !
echo ! *sous la table* !
echo ! !
echo ! 1-allez vous couchee !
echo ! 2-lire le papier !
echo ! !
echo -------------------------------------------------
echo.
echo.
echo.
echo.
set /p dodo1=

if dodo1=1 goto sleep
if dodo1=2 goto lettre

:papa
set /a respmatin=0
set /a dodo=0
set /a pap=1
cls
echo.
echo -------------------------------------------------
echo ! *en quittant la table pour partir* !
echo ! *vous apercevez un papier en boule* !
echo ! *sous la table* !
echo ! !
echo ! 1-partir directement !
echo ! 2-lire le papier !
echo ! !
echo -------------------------------------------------
echo.
echo.
echo.
echo.
set /p parti=

if parti==1 goto sorti
if parti==2 goto lettre



c'est typiquement du spaghetti mdr mais je m'y retrouve et je ne vois pas trop comment faire autrement je pourrais faire un cadre unique et modifier le texte avec des variable etc mais je ne pourrais pas faire TOUT le jeux comme ça ..

bon je re-précise ce n'est que le brouillon "rapide" j'ai commencé hier soir et j'ai tendance a faire plusieurs truc en même temps donc j’avance tranquillement x) (j'ai fait une carte pour un support visuel, un petit "lisez-moi", quelque image/icone.. et un début d'histoire d'avant game)
Messages postés
107
Date d'inscription
dimanche 26 mai 2013
Statut
Membre
Dernière intervention
28 juillet 2019
13
plus tard si je trouve une solution de sauvegarde je rajouterais au variable comme celle du code de les placé dans un fichier de save comme par exemple pour le nom de joueur Zephir:

:ranger
cls
set /a respmatin=1>>Zephir.txt
set chapitre=Ranger>>Zephir.txt
:: c'est qu'un exemple vue que je ne suis pas encore sur de savoir comment faire surtout pour les récupéré..
echo.
echo -------------------------------------------------
echo ! *vous vous levez pour ranger puis* !
echo ! *vous apercevez un papier en boule* !
echo ! *sous la table* !
echo ! !
echo ! 1-continue a ranger et partir !
echo ! 2-jetez le papier a la poubelle !
echo ! 3-lire le papier !
echo ! !
echo -------------------------------------------------
echo.
echo.
echo.
echo.
set /p matin1=

if %matin1%==1 goto pasvue1
if %matin1%==2 goto poubelle
if %matin1%==3 goto lettre
if not exist "%matin1%" goto ranger
Messages postés
13749
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
2 décembre 2021
4 757 >
Messages postés
107
Date d'inscription
dimanche 26 mai 2013
Statut
Membre
Dernière intervention
28 juillet 2019

Je vois déjà quelques possibilités d'optimisation, je t'en ferai part en temps utile.
Messages postés
107
Date d'inscription
dimanche 26 mai 2013
Statut
Membre
Dernière intervention
28 juillet 2019
13
d'accord beh merci beaucoup pour ton aide en tous cas ^^
Messages postés
13749
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
2 décembre 2021
4 757
Slt, alors tu as réussi à avancer un peu ?

Messages postés
107
Date d'inscription
dimanche 26 mai 2013
Statut
Membre
Dernière intervention
28 juillet 2019
13
salut salut non toujours pas pour ce qui est de la sauvegarde lol