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

zephir666 Messages postés 107 Date d'inscription   Statut Membre Dernière intervention   -  
zephir666 Messages postés 107 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

2 réponses

barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Bonjour,

Ca doit être faisable, à coups de variables et de fonctions, ce qu'il faut éviter c'est de mettre des GOTO.
0
zephir666 Messages postés 107 Date d'inscription   Statut Membre Dernière intervention   10
 
pour qu'elle raison ?

je commence tous juste et j'ai des goto un peux partout ^^"

je fonctionne par "chapitre" ou chaque choix ramène grâce a un goto a une nouvelle interaction/lieux/autre ^^'

je rajoute des variable au fur est a mesure comme par exemple si le joueur a fait tel action (mettons il a pris le parchemin sous la table) sur le chapitre qui suis je commence le chapitre pars une variable style

set /a parchemin=1


plus tard pour une discussion ou autre action qui nécessite un "passif" précis je pourrai récupérais cette variable si elle est égale a 1 c'est que l'action précédente et faite donc on poursuis sinon cela redirige vers un autre msg en fonction de la situation peux être une réponse différente d'un interlocuteur, une impossibilité d'avancée ou de faire tel ou tel action, voir même pour quoi pas une "réaction" différente...

faire tous sa sans goto ... en batch je pense que ça va être très dure mdr

je pensais justement rajoutez encore une variable au nom du label d'"où le joueur a quitter la parti la seul complexité c'est qu'a l’ouverture il faudrait que le batch "lise" le fichier texte correspondant au sauvegarde et récupéré les variable au nom du joueur si il y en a..

j'imagine bien la complexité mais je suis sur que c'est possible encore faut'il trouver comment...
0
zephir666 Messages postés 107 Date d'inscription   Statut Membre Dernière intervention   10
 
pour vous donnée une idée voici un petit bout au hasard de ce a quoi ça va ressembler :


: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
0
zephir666 Messages postés 107 Date d'inscription   Statut Membre Dernière intervention   10
 
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
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925 > zephir666 Messages postés 107 Date d'inscription   Statut Membre Dernière intervention  
 
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.
0
zephir666 Messages postés 107 Date d'inscription   Statut Membre Dernière intervention   10 > barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention  
 
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)
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Slt, alors tu as réussi à avancer un peu ?

0
zephir666 Messages postés 107 Date d'inscription   Statut Membre Dernière intervention   10
 
salut salut non toujours pas pour ce qui est de la sauvegarde lol
0