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

Fermé
zephir666 Messages postés 108 Date d'inscription dimanche 26 mai 2013 Statut Membre Dernière intervention 23 décembre 2021 - Modifié le 20 juil. 2019 à 20:55
zephir666 Messages postés 108 Date d'inscription dimanche 26 mai 2013 Statut Membre Dernière intervention 23 décembre 2021 - 28 juil. 2019 à 03:47
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 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 909
21 juil. 2019 à 10:27
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 108 Date d'inscription dimanche 26 mai 2013 Statut Membre Dernière intervention 23 décembre 2021 10
21 juil. 2019 à 19:06
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 108 Date d'inscription dimanche 26 mai 2013 Statut Membre Dernière intervention 23 décembre 2021 10
21 juil. 2019 à 19:11
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 108 Date d'inscription dimanche 26 mai 2013 Statut Membre Dernière intervention 23 décembre 2021 10
21 juil. 2019 à 19:16
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 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 909 > zephir666 Messages postés 108 Date d'inscription dimanche 26 mai 2013 Statut Membre Dernière intervention 23 décembre 2021
21 juil. 2019 à 19:27
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 108 Date d'inscription dimanche 26 mai 2013 Statut Membre Dernière intervention 23 décembre 2021 10 > barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024
21 juil. 2019 à 19:41
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 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 909
27 juil. 2019 à 12:13
Slt, alors tu as réussi à avancer un peu ?

0
zephir666 Messages postés 108 Date d'inscription dimanche 26 mai 2013 Statut Membre Dernière intervention 23 décembre 2021 10
28 juil. 2019 à 03:47
salut salut non toujours pas pour ce qui est de la sauvegarde lol
0