Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Jeu des Prénoms
Auteur Message
Répondre en citant
Message Jeu des Prénoms 
Bonjour à tous. Nouveau petit jeu assez simple créé par moi avec Notepad++ OS Windows 10 64 bits.

Code:
@echo off
CHCP 65001 >nul
Title Jeu des Prénoms
mode 60,3 &color 1e
:: La casse ne compte pas et vous pouvez écrire toutes les lettres accentuées que vous voulez.
:: La Police de la console doit être : True Type, Consolas ou Lucida Console, Taille 16 ou 18.
:: L'édition se fait avec Notepad ++ avec un encodage en UTF 8 (sans BOM). Le Bloc-Note est à proscrire.

cls
echo. &echo        Le jeu consiste à écrire un maximun de Prénoms  &Timeout /t 3 >nul
echo. &echo          sans se répéter, sinon la partie se termine. &Timeout /t 3 >nul
echo. &echo           Inscrit un Prénom puis appuis sur "Entrée" &Timeout /t 3 >nul

md Tmpname

:Name
cls &echo. &set /p name=·          Le Prénom :

if /i not exist Tmpname\%name%.txt goto Suit
if /i  exist Tmpname\%name%.txt goto Fin

:Suit
echo >Tmpname\%name%.txt %name%
cls &echo. &echo                 Bonjour %name%, et à bientôt... &Timeout /t 2 >nul
cls &echo. &echo                        Au suivant ! &Timeout /t 2 >nul &goto Name

:Fin
cls &echo. &echo         Ah ! C'est encore toi, la partie est finie. &Timeout /t 5 >nul
del Tmpname /f /q &rd Tmpname /s/q &Exit


Les commentaires sont les bienvenue.



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Jeu des Prénoms 
Ca marche pas Sad




______________________________________________________
Je ne suis pas ce que je suis. Mais si j'étais ce que je suis alors je ne serais pas ce que je suis actuellement (vous avez 2 heures).

Python : 90%
Batch : 65%
AutoIt : 20%

Site : http://lavapower.890m.com
Visiter le site web du posteur
Répondre en citant
Message Jeu des Prénoms 
Tu peux faire comme ceci:
Code:

@echo off
CHCP 65001 >nul
del Noms.txt
Title Jeu des Prénoms
mode 60,3 &color 1e
:: La casse ne compte pas et vous pouvez écrire toutes les lettres accentuées que vous voulez.
:: La Police de la console doit être : True Type, Consolas ou Lucida Console, Taille 16 ou 18.
:: L'édition se fait avec Notepad ++ avec un encodage en UTF 8 (sans BOM). Le Bloc-Note est à proscrire.

cls
echo. &echo        Le jeu consiste à écrire un maximun de Prénoms  &Timeout /t 3 >nul
echo. &echo          sans se répéter, sinon la partie se termine. &Timeout /t 3 >nul
echo. &echo           Inscrit un Prénom puis appuis sur "Entrée" &Timeout /t 3 >nul


:Name
cls &echo. &set /p name=·          Le Prénom :

for /f %%N in ('type Noms.txt ^| find /i "%name%-"') do goto Fin
echo %name%- >>Noms.txt
cls &echo. &echo                 Bonjour %name%, et à bientôt... &Timeout /t 2 >nul
cls &echo. &echo                        Au suivant ! &Timeout /t 2 >nul &goto Name

:Fin
cls &echo. &echo         Ah ! C'est encore toi, la partie est finie. &Timeout /t 5 >nul
del Noms.txt
Exit

ça raccourcit le code et évite de créer des dossiers et plein de fichiers Wink

Par contre ton CHCP ne passe pas sous Windows 8.1 Confused


LavaPower a écrit:
Ca marche pas Sad

Vire le CHCP




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message Jeu des Prénoms 
Hugo7 a écrit:

LavaPower a écrit:
Ca marche pas Sad

Vire le CHCP


Merci !

Le mieux serait d'avoir une base de prénom et de vérifié si ce prénom existe mais ça à l'air chaud ?




______________________________________________________
Je ne suis pas ce que je suis. Mais si j'étais ce que je suis alors je ne serais pas ce que je suis actuellement (vous avez 2 heures).

Python : 90%
Batch : 65%
AutoIt : 20%

Site : http://lavapower.890m.com
Visiter le site web du posteur
Répondre en citant
Message Jeu des Prénoms 
Non, pas forcément, tu as juste à imiter mon système de "type ^| find"!
Code:

set ok=0
for /f %%V in ('type Prénoms.db | find /i "%name%"') do set ok=1
if %ok%==1 goto ok
if %ok%==0 (
echo Le prénom %name% n'existe pas.
goto début
)

Pas la peine de mettre game over si on met un prénom qui n'existe pas...

Et on pour trouver des listes toutes faites des prénoms connus, mais si tu met dans un seul fichier tous les noms du monde, il risque d'être très gros, des Go et des Go...




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message Jeu des Prénoms 
Citation:
Non, pas forcément, tu as juste à imiter mon système de "type ^| find"!


Pour être vraiment credible il faut faire une comparaison litterale de chaque nom.

Car si tu recherches alex et que alexandre existe dans ta base il sera reconnu comme existant, alors qu'il ne l'est pas forcement.

Personnellement j'opterais pour la création dynamique de varibables qui évite la création de fichier et ça simplifie magnifiquement le code
et c'est environ 1000x plus rapide Laughing :

Un exemple pour que vous compreniez :

Code:

@echo off&cls
::Réinitialisation de la base de variable (pour oublier les noms si l'on rejoue)
for /f "tokens=2 delims==" %%a in ('set #') do set "#%%a="

::Une liste des noms déjà joués
set "$Liste=vide"

:Name
color 7&cls&echo %$liste%
echo. &set /p name=·          Le Prénom : || (color c7 & cls & echo Vous devez entrer un pr‚nom !!! & timeout /nobreak 2 >nul  & goto:Name)

if defined #%name% goto:fin

set "#%name%=%name%"
set $Liste=%$Liste:vide=% %name%
goto:Name

:fin
cls
echo %name% existe !!!! Perdue !!!
pause



Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Correction et remerciements. 
LavaPower a écrit:
Ca marche pas Sad


Erico22 a écrit:
Bonjour et Merci pour vos réponses.

Ca marche pas : Pourquoi ? Il faut exécuter CMD si le batch ne s'ouvre pas. Cliquer sur la barre supérieure de la Console, virer la police Raster et choisir se qui est inscrit en haut de mon batch :: La Police de la console doit être : True Type, Consolas ou Lucida Console, Taille 16 ou 18.

Pourquoi CHCP 65001 >nul : Après cette légère contrainte au niveau de la console on a la possibilité d'écrire toutes les lettres accentuées, de créer des tableaux avec bordure double et simple à l'intérieur.


Merci à Hugo 7 et à Sachadee pour leurs supers codes. J'étudie cela et continue à fignoler le jeu.



Dernière édition par Erico22 le Dim 25 Oct 2015 - 15:05; édité 1 fois
Répondre en citant
Message Jeu des Prénoms 
sachadee a écrit:

Car si tu recherches alex et que alexandre existe dans ta base il sera reconnu comme existant, alors qu'il ne l'est pas forcement.

J'y avais pensé, remarque le petit "-" après %name% dans le code que j'ai proposé (premier commentaire du topic) Okay




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message Jeu des Prénoms 
Code:
J'y avais pensé, remarque le petit "-" après %name% dans le code que j'ai proposé (premier commentaire du topic) Okay


J'avais pas vu effectivement. Okay

Mais mets un autre caractère que "-" sinon on revient au même problème avec

marie et marie-claire Mort de Rire.

Reste que néanmoins la technique que je propose est à mon avis un peu plus adaptée.

Wink




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Jeu des Prénoms 
Hugo7 a écrit:
sachadee a écrit:

Car si tu recherches alex et que alexandre existe dans ta base il sera reconnu comme existant, alors qu'il ne l'est pas forcement.

J'y avais pensé, remarque le petit "-" après %name% dans le code que j'ai proposé (premier commentaire du topic) Okay

J'ai modifié %name%- suite à votre discution. Apostrophes avant et après '%name%'. J'ai essayé avec Marie Pierre puis Marie puis Pierre, c'est bon.

Suite : Je change le jeu des prénoms pour le jeu des Pays. 195 Pays au monde avec capitales et continents. les Apostrophes servent de delims.

Le code nickel. Merci bien Hugo7. Voilà le résultat.

Code:
@echo off
CHCP 65001 >nul
Title Jeu des Prénoms
mode 60,3 &color 1e
:: Merci à Hugo 7 pour sa ligne de code : for /f %%N in ('type Noms.txt ^| find /i "%name%-"') do goto Fin
:: Si le batch ne s'exécute pas ouvrez la console CMD.exe et changer de police. Avec CHCP 65001, la Police
:: de la console doit être : Consolas ou Lucida Console, ou tout autre police True Type, [Pas Raster].
:: L'édition se fait avec Notepad ++ avec un encodage en UTF 8 ou UTF 8 (sans BOM). Le Bloc-Note est à proscrire.
:: La casse ne compte pas et vous pouvez écrire toutes les lettres accentuées que vous voulez.
cls
echo.&echo        Le jeu consiste à écrire un maximun de Prénoms  &Timeout /t 2 >nul
echo.&echo         sans se répéter, sinon la partie se termine. &Timeout /t 2 >nul
echo.&echo         Écrivez un Prénom puis appuyez sur "Entrée". &Timeout /t 2 >nul
:Debut
del Noms.txt
set /a nbct = 0
set /a nbcj = 1
:Name
cls &echo. &set /p name=·          Le Prénom :
for /f %%N in ('type Noms.txt ^| find /i "'%name%'"') do goto Fin
cls
set /a nbct = nbct + 1
set /a nbcj = nbcj + 1
echo >>Noms.txt    Coup %nbct%    '%name%'
cls &echo.&echo              Bonjour %name%, et à bientôt... &Timeout /t 1 >nul
cls &echo.&echo                   Au suivant ! %nbcj%ème coup. &Timeout /t 1 >nul &goto Name
:Fin
cls &echo.&echo        Ah ! C'est encore toi, la partie est terminée. &Timeout /t 5 >nul
echo >>Noms.txt Après %nbct% Prénoms vous avez répété
echo >>Noms.txt "%name%"  et vous avez perdu.
Start Noms.txt
cls &echo. &set /p choix=·      Que voulez faire ? Rejouer 1 ou Quitter 2 :
if %choix%==1  goto Debut
if %choix%==2  goto Exit
:Exit
del Noms.txt &Exit




Dernière édition par Erico22 le Mar 10 Nov 2015 - 15:09; édité 1 fois
Répondre en citant
Message Jeu des Prénoms 
sachadee a écrit:
Code:
J'y avais pensé, remarque le petit "-" après %name% dans le code que j'ai proposé (premier commentaire du topic) Okay


J'avais pas vu effectivement. Okay

Mais mets un autre caractère que "-" sinon on revient au même problème avec

marie et marie-claire Mort de Rire.

Reste que néanmoins la technique que je propose est à mon avis un peu plus adaptée.

Wink


Merci Sachadee pour le code mais il y a des erreurs.
1/ La ligne pour réinitialiser les variables s'écrit :
Code:
for /f "tokens=2 delims==" %%a in ('set #') do set "#%%a="
for /f "tokens=2 delims==" %%a in ('set #') do set "#%%a"=

et si on fait cela le batch se ferme. Et ça fonctionne sans mais impossible de rejouer sans fermer.
2/ Pour les noms composés avec espace mettre "" autour de %name%.
Code:
if defined #"%name%" goto Fin
set "#"%name%"=!%name%!"


Code:
@echo off
CHCP 65001 >  nul
Title Jeu des Prénoms
mode 60, 3 &color 1b
:: Merci à Sachadee pour son aide.
:: Si le batch ne s'exécute pas ouvrez la console CMD.exe et changer de police. Avec CHCP 65001, la Police
:: de la console doit être : Consolas ou Lucida Console, ou tout autre police True Type, [Pas Raster].
:: L'édition se fait avec Notepad ++ avec un encodage en UTF 8 ou UTF 8 (sans BOM). Le Bloc-Note est à proscrire.
:: La casse ne compte pas et vous pouvez écrire toutes les lettres accentuées que vous voulez.
cls &echo. &echo                 - - - Jeu des Prénoms - - -       &Timeout /t 3 /nobreak > nul &goto Choix
:Choix
cls &echo. &set /p choix=·  Voulez-vous Jouer [1] ou voir les règles du jeu [2] ?
if not %choix%=='' set choix=%choix:~0,1%
if %choix%==1 goto Debut
if %choix%==2 goto regles
echo. &echo               %choix% n'est pas valide, tapez 1 ou 2.  &Timeout /t 2 /nobreak > nul &goto Choix
Pause > nul
:regles
cls
echo.&echo         Jeu de mémoire qui consiste à trouver et à      &Timeout /t 3 /nobreak > nul
echo.&echo        écrire un maximun de Prénoms sans se répéter,    &Timeout /t 3 /nobreak > nul
echo.&echo           - - - sinon la partie se termine. - - -       &Timeout /t 3 /nobreak > nul
echo.&echo      Imposez-vous une règle pour les Prénoms-Composés : &Timeout /t 3 /nobreak > nul
echo.&echo               - - - Avec ou sans tirets - - -           &Timeout /t 3 /nobreak > nul
echo.&echo         Écrivez un Prénom puis appuyez sur "Entrée".    &Timeout /t 3 /nobreak > nul
:Debut
set =
del Prénoms.txt
::Une liste vide pour stocker les noms joués.
set "$Liste=vide"
echo >>Prénoms.txt  Liste des Prénoms joués :
set /a nbct = 0
set /a nbcj = 1
:Name
cls
:: echo %$liste% & REM Pour voir la liste enlever :: au début de la ligne.
set /a nbct = nbct + 1
set /a nbcj = nbcj + 1
echo. &set /p name=·               Le Prénom : || goto Name
if defined #"%name%" goto Fin
set "#"%name%"=!%name%!"
set $Liste=%$Liste:vide=% %name%
echo >>Prénoms.txt    Prénom %nbct%   %name%
cls & echo.&echo                   Au suivant ! %nbcj%ème coup. &Timeout /t 2 /nobreak > nul &goto Name
:Fin
cls & echo.&echo   %name% existe déjà !!! Partie perdue en %nbct% coups !!!
echo >>Prénoms.txt "%name%"   existe déjà
echo >>Prénoms.txt  Partie perdue en %nbct% coups.
Start Prénoms.txt
timeout /t 10 /nobreak > nul
del Prénoms.txt &exit


Mais encore merci, ça fait chercher et apprendre.
Je pense qu'il faut 2 Zones de mémoire : 1 pour exécuter le batch, 2 pour mémoriser la liste.
je vais voir ce que je trouve.



Répondre en citant
Message Jeu des Prénoms 
Effectivement c'est comme ça que l'on apprend !

Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Jeu des Prénoms 
bof




______________________________________________________
The batch is not a simple language of invite of command or interpreter, it is a program of execution of codes pushed


Visiter le site web du posteur Skype
Message Jeu des Prénoms 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch