Commit 99b36ba0 authored by Robin Verdenal-Tallieux's avatar Robin Verdenal-Tallieux 👽
Browse files

Add option --level. correct bugs. At the end of the game, level's ask redefinded.

parent 6bb9902d
......@@ -11,10 +11,19 @@ void Help(char **options, char **description)
void Version(void)
{
wprintf(L"\n//// La version du jeu du pendu est: %ls !\n", VERSION);
wprintf(L"\n//// La version du jeu du pendu est: %ls !\n", VERSION);
}
void NewArg(char *arg, char *description, char ***liste)
{
size_t counter = 0;
while (liste[0][counter] != 0)
{
counter++;
}
liste[0][counter] = arg;
liste[1][counter] = description;
}
int main(int argc, char** argv)
{
......@@ -23,44 +32,69 @@ int main(int argc, char** argv)
perror("setlocale");
return EXIT_FAILURE;
}
// OPTIONS
char version[] = "--version";
char version_description[] = "Affiche la version";
char help[] = "--help";
char help_description[] = "Affiche l'aide";
char *description[LEN_OPTIONS];
char *options[LEN_OPTIONS];
options[0] = help;
options[1] = version;
description[0] = help_description;
description[1] = version_description;
char *description[LEN_OPTIONS] = {0};
char *options[LEN_OPTIONS] = {0};
char **arguments[2] = {options, description};
NewArg("--help", "Affiche l'aide", arguments);
NewArg("--version", "Affiche la version", arguments);
NewArg("--level", "Entrer le niveau de 0 à 3.", arguments);
char continuer = 0;
char niveau = 0;
char asTugagne = 0;
// On affiche le message de bienvenue
wprintf(WELCOME_MESSAGE);
// On vérifie s'il y a des options
// On lance le jeu
if(argc > 1)
{
if(strcmp(argv[1], options[0]) == 0)
{
Help(options, description);
return 0;
}
else if (strcmp(argv[1], options[1]) == 0)
{
Version();
return 0;
}
else if (strcmp(argv[1], options[2]) == 0)
{
niveau = argv[2][0] - 48;
}
else{
wprintf(L"\nCOMMANDE: pendu [options] [arguments].\nL'option '%s' n'est pas disponible. '--help' pour toutes les options.\n", argv[1]);
return 1;
}
}
else{
// On lance le jeu
do{
StartPendu();
wprintf(L"\nVoulez-vous rejouer (taper 0 pour quitter et 1 pour rejouer) ? ");
continuer = lireCaractere('n');
} while (continuer);
wprintf(L"Bon vent !\n");
return 0;
wprintf(L"\nQuelle difficulté voulez-vous choisir (du plus facile 0 au plus dur 3) ? ");
niveau = lireCaractere('n');
}
do{
if(continuer)
{
if(asTugagne)
{
wprintf(L"Il y a peu, vous avez gagné. Voulez vous monter en niveau (tapez 0),\nou au contraire rester ou vous êtes (tapez 1).\n");
niveau += lireCaractere('n');
}
else
{
wprintf(L"Il y a peu, vous avez perdu.\n* Voulez vous baisser votre niveau (tapez 1),\n* Ou au contraire rester ou vous êtes (tapez 0).\n");
niveau -= lireCaractere('n');
}
}
asTugagne = StartPendu(niveau);
wprintf(L"\n\n////// Rejouer? [0 = quitter, 1 rejouer] ");
continuer = lireCaractere('n');
} while (continuer);
wprintf(L"\nBon vent !\n");
return 0;
}
......@@ -7,14 +7,14 @@
#include <stddef.h>
#include <ctype.h>
#define VERSION L"0.4"
#define LEN_OPTIONS 2
#define VERSION L"0.5"
#define LEN_OPTIONS 3
#define WELCOME_MESSAGE L"Bienvenue dans le jeu du pendu !\n\n"\
L"Les règles:\n\t- Les caractères spéciaux comme 'é', 'à' ou 'ç'... sont convertis vers leur équivalent 'e', 'a', 'c'."\
L"\n\t- N'entrez donc que des lettres de l'alphabet."\
L"\n\t- Les mots composés avec '-' sont bannis."\
L"\n\t- Bon jeu !\n"
char StartPendu(void);
char StartPendu(char niveau);
wchar_t lireCaractere(char type);
project('Pendu', 'c', version : '0.4')
project('Pendu', 'c', version : '0.5')
# Language
lang = run_command('echo', '$LANG')
......
#include "functions.h"
char StartPendu(void)
char StartPendu(char niveau)
{
// Variables
char nmbCoups = 10, lettreFormatee = 0, motFormate[TAILLEMAX] = {0}, caracteresUtilises[26] = {'\0'}, lettresTrouvees[TAILLEMAX] = {0}, niveau = 0, compte = 0;
char nmbCoups = 10, lettreFormatee = 0, motFormate[TAILLEMAX] = {0}, caracteresUtilises[26] = {'\0'}, lettresTrouvees[TAILLEMAX] = {0}, compte = 0;
wchar_t mot[TAILLEMAX] = {0}, lettreProposee = 0, motReconstitue[TAILLEMAX] = {0};
FILE *fichier = NULL;
......@@ -15,17 +15,13 @@ char StartPendu(void)
if(fichier == NULL)
{
wprintf (L"\nVous ne possédez pas de fichier .dic ou le chemin est mal indiqué.\n"
L"Vérifiez que vous avez bien un fichier .dic de votre langue installé et spécifiez son emplacemet dans le header functions.h.");
L"Vérifiez que vous avez bien un fichier .dic de votre langue installé et spécifiez son emplacement dans le header functions.h.");
EXIT_FAILURE;
}
motRandom(fichier, mot);
fclose(fichier);
simplifierMot (mot,motFormate);
// Niveau
wprintf(L"\nQuelle difficulté voulez-vous choisir (du plus facile 0 au plus dur 3) ? ");
niveau = lireCaractere('n');
// On initialise le mot à reconstituer et le niveau
nmbCoups = (wcslen(mot) + 10) / (niveau+1);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment