Besoin de votre avis sur un jeu .bat

Jordan Lie -  
Eudjen81 Messages postés 3 Statut Membre -
Bonjour,
Bonjour à tous,

J'ai créé il n'y a pas si longtemps un jeu en .bat, je sais que ce language n'est plus trop utlisé mais je m'ennuyais quand j'ai fait ça ^^

J'aimerai que ceux qui souhaite le télécharge, il y a un lien si dessous.

Petite précision:

- Pour le moment seul la difficulté facile est disponible (j'attend votre avis pour savoir si je continue)

- Les règles du jeu sont écrites dans un fichier txt à l'intérieur du .rar

- En ce qui concerne ce que j'attend suite à ce post se serait que certains d'entre vous me donne leur avis, ce que je pourrais améliorer dans le jeu mais aussi les bugs si jamais vous en trouvez (rien ne vous empêche d'analyser le code en faisant clic droit > modifier sur le fichier .bat)

- Le lien de téléchargement étant gratuit il faut attendre 1 minute avant de pouvoir le télécharger

- Le lien: http://www.sendbox.fr/b671306204c82101/Pyramide.rar

Voila merci beaucoup à ceux qui prendront le temps de télécharger mon petit jeu, au revoir.

4 réponses

  1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    Bonsoir,

    Voilà quelques remarques :

    - ton code n'est pas du tout optimisé, beaucoup de lignes en double, triple, quadruple, ...

    - après avoir choisi et confirmé la difficulté, si on reste appuyé sur la touche entrée, le script continue comme si de rien n'était

    0
  2. Jordan Lie
     
    Très bien je vois, as-tu des idées pour optimiser le code ? (des choses à changer etc...)

    En ce qui concerne le bug je pense qu'il n'y a pas trop de moyen pour le résoudre :/
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      Je te tiens au courant ce soir.
      0
    2. Jordan Lie
       
      D'accord merci
      0
    3. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > Jordan Lie
       
      CALL est très utile pour créer des fonctions paramétrées, ça évite les répétitions de code.

      J'avance bien mais il y a encore un peu de travail, je te dis à demain.
      0
    4. Jordan Lie
       
      Okay, je ne connaissais pas la fonction CALL, merci.
      0
    5. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > Jordan Lie
       
      Voilà où j'en suis :

      @echo off
      title %~n0
      SETLOCAL EnableExtensions EnableDelayedExpansion

      set fichier=2mememot.txt


      :Commencement

      REM Set variable de départ

      set /A score=0
      set /A erreur=0
      set "difficulte="
      CLS


      REM Menu

      echo Pyramide !
      echo Niveau de difficulte:
      echo 1: Facile (5 indices)
      echo 2: Normale (4 indices)
      echo 3: Difficile (3 indices)
      echo 4: Quitter le jeu
      echo.

      echo. > %fichier%

      Set /P difficulte= Entrez le numero de difficulte ^(1, 2 ou 3^) ou 4 pour quitter:


      REM Direction vers le niveau/exit

      if !difficulte! EQU 1 (
      set /P suretelvl=Etes-vous certain de choisir la difficulté facile ? ^(oui ou non^)
      if /i @!suretelvl!@==@oui@ (goto :facile)
      )

      if !difficulte! EQU 2 (
      set /P suretelvl= Etes-vous certain de choisir la difficulté normale ? ^(oui ou non^)
      if /i @!suretelvl!@==@oui@ (goto :normal)
      )

      if !difficulte! EQU 3 (
      set /P suretelvl= Etes-vous certain de choisir la difficulté difficile ? ^(oui ou non^)
      if /i @!suretelvl!@==@oui@ (goto :difficile)
      )

      if !difficulte! EQU 4 (
      set /P suretelvl= Etes-vous certain de vouloir quitter le jeu ? ^(oui ou non^)
      if /i @!suretelvl!@==@oui@ (goto :eof)
      )

      goto :Commencement


      REM Niveau facile

      :facile


      REM Verification du score (=5)

      :verifscore

      If !score! EQU 5 (

      CLS
      echo.
      echo Bien joue !
      echo Tu as gagne 5 points
      echo Avec !erreur! erreurs
      echo.
      echo Retour au menu principal...
      echo.
      pause
      del /F /Q %fichier%
      goto :Commencement

      )



      REM Verification si tous les mots ont été utilisés

      :veriftoutlesmots

      set gameover=1

      for %%A in (a b c d e f g h i j) do (findstr /i /c:"%%A" %fichier% || set gameover=0)

      if !gameover! EQU 1 (

      CLS
      echo.
      echo.
      echo Tu as perdu
      echo Tous les mots ont ete
      echo utilises
      echo.
      echo.
      echo Tu feras mieux
      echo La prochaine fois ^^!
      echo.
      echo Ton score: !score!
      pause
      del /F /Q %fichier%
      goto :Commencement

      )



      :nbrandomfacile

      REM Nombre aléatoire

      set /A max=10,min=1

      set /A rand=%random%
      set /A _max=(max-min)+1
      set /A mod=%rand%%%_max%
      set /A mot=!mod!+min



      REM Vérification deux mêmes mots

      :verif2mememot

      If !mot! EQU 1 (findstr /i /c:"a" %fichier% && goto :nbrandomfacile)

      If !mot! EQU 2 (findstr /i /c:"b" %fichier% && goto :nbrandomfacile)

      If !mot! EQU 3 (findstr /i /c:"c" %fichier% && goto :nbrandomfacile)

      If !mot! EQU 4 (findstr /i /c:"d" %fichier% && goto :nbrandomfacile)

      If !mot! EQU 5 (findstr /i /c:"e" %fichier% && goto :nbrandomfacile)

      If !mot! EQU 6 (findstr /i /c:"f" %fichier% && goto :nbrandomfacile)

      If !mot! EQU 7 (findstr /i /c:"g" %fichier% && goto :nbrandomfacile)

      If !mot! EQU 8 (findstr /i /c:"h" %fichier% && goto :nbrandomfacile)

      If !mot! EQU 9 (findstr /i /c:"i" %fichier% && goto :nbrandomfacile)

      If !mot! EQU 10 (findstr /i /c:"j" %fichier% && goto :nbrandomfacile)



      REM mot 1 (béton, valeur fichier externe: a)
      If !mot! EQU 1 (call :jeu Beton Matiere Solide Construction Murs Portugais a)


      REM mot 2 (légende, valeur fichier externe: b)
      If !mot! EQU 2 (call :jeu Legende Imaginaire Creatures Moyen-age Thor Dragon b)


      REM mot 3 (Micro, valeur fichier externe: c)
      If !mot! EQU 3 (call :jeu Micro Chant Amplificateur "Prise jack" Parler Skype c)


      REM mot 4 (Agenda, valeur fichier externe: d)
      If !mot! EQU 4 (call :jeu Agenda Affaire Cours Noter Travail Devoirs d)


      REM mot 5 (Ordinateur, valeur fichier externe: e)
      If !mot! EQU 5 (call :jeu Ordinateur Bureautique Informatique Clavier Souris Gaming e)


      REM mot 6 (Télévision, valeur fichier externe: f)
      If !mot! EQU 6 (call :jeu Television Divertissement Salon Ecran Regarder Dessin-anime f)


      REM mot 7 (Chat, valeur fichier externe: g)
      If !mot! EQU 7 (call :jeu Chat Animal Felin Domestique Moustache Coussinet g)


      REM mot 8 (Hamburger, valeur fichier externe: h)
      If !mot! EQU 8 (call :jeu Hamburger Nourriture Fast-food Pain Steack "Graine de tournesol" h)


      REM mot 9 (Jaune, valeur fichier externe: i)
      If !mot! EQU 9 (call :jeu Jaune Poussin Banane Eponge Couleur Soleil i)


      REM mot 10 (Voiture, valeur fichier externe: j)
      If !mot! EQU 10 (call :jeu Voiture Roule Volant Pneus Pare-brise Essuie-glace j)

      goto :veriftoutlesmots


      :normal

      echo normal

      pause
      exit /B


      :difficile

      echo difficile

      pause
      exit /B



      :jeu

      CLS
      title %~n0 - Ton score : # !score! #
      echo.
      echo.
      echo Indice 1: %~2
      echo.
      echo.
      call :check %~1 %7
      if !retour! EQU 1 (goto :eof)

      cls & echo Non ^^!
      set /A erreur+=1
      echo.
      echo.
      echo Indice 2: %~3
      echo.
      echo.
      call :check %~1 %7
      if !retour! EQU 1 (goto :eof)

      cls & echo Non ^^!
      set /A erreur+=1
      echo.
      echo.
      echo Indice 3: %~4
      echo.
      echo.
      call :check %~1 %7
      if !retour! EQU 1 (goto :eof)

      cls & echo Non ^^!
      set /A erreur+=1
      echo.
      echo.
      echo Indice 4: %~5
      echo.
      echo.
      call :check %~1 %7
      if !retour! EQU 1 (goto :eof)

      cls & echo Non ^^!
      set /A erreur+=1
      echo.
      echo.
      echo Indice 5: %~6
      echo.
      echo.
      call :check %~1 %7
      if !retour! EQU 1 (goto :eof)

      cls & echo. & echo Perdu =/
      set /A score-=1
      title %~n0 - Ton score : # !score! #
      echo.
      echo Le mot: %1
      echo. & pause
      echo %7 >> %fichier%
      Set /A erreur+=1
      CLS
      goto :verifscore

      goto :eof



      :check
      set retour=0
      set "reponse="
      set /P "reponse= Le mot ? "
      if /i @!reponse!@==@%1@ (

      cls & echo. & echo Bravo ^^! Le mot etait bien '%1'
      set /A score+=1
      echo. & pause
      echo %2 >> %fichier%
      set retour=1

      )

      goto :eof

      rem

      J'ai pas mal optimisé mais on peut toujours faire mieux.

      Je pense pouvoir réduire encore de 30%, enfin si je trouve le temps.
      0
  3. kaumune Messages postés 22605 Date d'inscription   Statut Contributeur Dernière intervention   5 159
     
    Slt

    Pourquoi le fournis-tu en .rar au lieu d'un simple .zip ?

    Ça oblige à avoir un logiciel supplémentaire (winrar, 7zip etc etc) pour l'extraire
    0
  4. Jordan Lie
     
    Salut kaumune,

    C'est var il y a 2 dossiers, un .bat et un .txt pour les règles et les précisions utiles.
    0
    1. Judge_DT Messages postés 27651 Date d'inscription   Statut Modérateur Dernière intervention   10 013
       
      Sauf que ça ne réponds pas réellement à la question : pourquoi le fournir dans un conteneur compressé en .rar (propriétaire, propre à Winrar à la base) à la place d'un conteneur en .zip, qui est nativement supporté par les versions récentes de Windows ?

      Pour décompresser une archive en RAR, il faut un logiciel... Pour ouvrir une archive en zip, les versions modernes de Windows peuvent le faire sans logiciel complémentaire...
      0
    2. Jordan Lie
       
      Ah je ne savais pas, à l'avenir je penserai à fournir mes programmes avec un fichier .zip

      Merci beaucoup
      0
      1. Eudjen81 Messages postés 3 Statut Membre > Jordan Lie
         
        Salut Jordan Lie , je vais faire une version en python du jeu le plus tôt possible et je te conseille de compiler le code avec le logiciel "Batch to exe Computer"
        Bien utile quand tu dev en batch
        0