Jeux Pendu !

Fermé
Abdelhadi5425 Messages postés 4 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 2 juin 2015 - 2 juin 2015 à 20:13
chris79 Messages postés 97 Date d'inscription lundi 3 octobre 2005 Statut Membre Dernière intervention 1 février 2016 - 3 juin 2015 à 23:29
Hello , I created the pendu game , any one can help me to minimize this code :

for(j=0;j<lengh;j++)
{if(lengh==8){
x[i][j]=a[i][j];
if((i==0)&&(j==0))printf("********\n");
}
if(lengh==9){
x[i][j]=b[i][j];
if((i==0)&&(j==0))printf("*********\n");
}
if(lengh==10){
x[i][j]=c[i][j];
if((i==0)&&(j==0))printf("**********\n");
}
if(lengh==11){
x[i][j]=d[i][j];
if((i==0)&&(j==0))printf("***********\n");
}
if(lengh==12){
x[i][j]=e[i][j];
if((i==0)&&(j==0))printf("************\n");


I also want to add a message like :

"You still have %d chance"

The full code :

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{char a[3][8]={{'e','l','m','a','s','o','u','d'},{'s','o','u','f','i','a','n','e'},{'c','o','m','p','l','e','t','e'}};char h;
char b[3][9]={{'a','p','a','r','t','m','e','n','t'},{'s','o','m','e','t','h','i','n','g'},{'q','u','e','s','t','i','o','n','s'}};
char c[3][10]={{'p','o','p','o','l','a','t','i','o','n'},{'c','o','n','t','i','n','u','o','u','s'},{'r','e','s','t','o','u','r','o','n','t'}};
char d[3][11]={{'e','l','e','c','t','r','i','c','i','a','n'},{'p','i','t','e','u','s','e','m','e','n','t'},{'p','i','c','t','o','g','r','a','m','m','e'}};
char e[3][12]={{'m','a','r','c','h','a','n','d','i','s','e','s'},{'p','i','s','c','i','c','u','l','t','e','u','r'},{'b','o','m','b','a','r','d','e','m','e','n','t'}};
int row,level,lengh,n,i,cpt,s,j,r,bool; char ch[20];
printf("\n") ;
printf("Game Pendu\n") ;
printf("Final Exam TP - Algo2 \n") ;
etiq :
printf("\n### Games Levels :\n \n 1- Easy \n 2- Intermediate \n 3- Hard \n" );
printf("\n### Enter the Levels Of The Game =" );
scanf("%d",&level);
while((level<=0)||( level>3))
{
printf("\n Oups ! You entred a wrong value ! \n" );
printf("\n### Enter the Levels Of The Game Again =" );
scanf("%d",&level);
}
printf("\n### Enter The lengh Of The World : 8 , 9 , 10 , 11 or 12 Char \n" );
scanf("%d",&lengh);
while((lengh<8)||( lengh>12))
{
printf("\n Oups ! You entred a wrong Lengh ! \n" );
printf("\n### Enter The lengh Of The World Again , we have only : 8 , 9 , 10 , 11 or 12 Char \n" );
scanf("%d",&lengh);
}
printf("\n### Enter The Row Number : 1 , 2 or 3 \n" );
scanf("%d",&row);
while((row<1)||( row>3))
{
printf("\n Oups ! You entred a wrong Row Number ! \n" );
printf("\n### Enter The Row Number Again , we have only : 1 , 2 or 3 \n" );
scanf("%d",&row);
}
char x[3][lengh];
for(i=0;i<3;i++)
{
for(j=0;j<lengh;j++)
{if(lengh==8){
x[i][j]=a[i][j];
if((i==0)&&(j==0))printf("********\n");
}
if(lengh==9){
x[i][j]=b[i][j];
if((i==0)&&(j==0))printf("*********\n");
}
if(lengh==10){
x[i][j]=c[i][j];
if((i==0)&&(j==0))printf("**********\n");
}
if(lengh==11){
x[i][j]=d[i][j];
if((i==0)&&(j==0))printf("***********\n");
}
if(lengh==12){
x[i][j]=e[i][j];
if((i==0)&&(j==0))printf("************\n");
}
}
}
if(level==1)
n=9;
if(level==2)
n=6;
if(level==3)
n=3;

cpt=0;
while(n!=0)
{
r=0;
scanf("\n %c",&ch[cpt]);
s=0;
for(i=0;i<=lengh-1;i++)
{ bool=0;
for(j=0;j<=cpt+1;j++)
{if(x[row-1][i]==ch[j])
{if(j==cpt)
{s=1;}
bool=1;}
}
if( bool==1)
{printf("%c", x[row-1][i]);r=r+1;}
else
printf("*");
}






cpt=cpt+1;
if(s==0)
n=n-1;
if(r==lengh)
n=0;
}
if (r==lengh) {
printf("\n ### Congractulation :D , You can Play Again \n");
goto etiq ; }
else
printf("\n \n ### Game Over :( , You Can Play Again \n \n ") ;
goto etiq ;


system("PAUSE");
return 0;
}
A voir également:

2 réponses

PierrotDu59 Messages postés 218 Date d'inscription mercredi 17 juillet 2013 Statut Membre Dernière intervention 4 décembre 2019 31
2 juin 2015 à 20:16
Kékecé
0
Abdelhadi5425 Messages postés 4 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 2 juin 2015
2 juin 2015 à 20:18
C'es quoi ça ?
0
PierrotDu59 Messages postés 218 Date d'inscription mercredi 17 juillet 2013 Statut Membre Dernière intervention 4 décembre 2019 31 > Abdelhadi5425 Messages postés 4 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 2 juin 2015
2 juin 2015 à 20:20
C'est une manière plus courte de dire Qu'est-ce-que c'est ?
0
Abdelhadi5425 Messages postés 4 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 2 juin 2015
2 juin 2015 à 20:22
Aha , c'est une abréviation : ) , je parle pas français bien , mais je veux minimiser ce code , peut être vous avez quelques idées ?
0
PierrotDu59 Messages postés 218 Date d'inscription mercredi 17 juillet 2013 Statut Membre Dernière intervention 4 décembre 2019 31 > Abdelhadi5425 Messages postés 4 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 2 juin 2015
2 juin 2015 à 20:24
Non dsl je ne sais pas
0
Abdelhadi5425 Messages postés 4 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 2 juin 2015
2 juin 2015 à 20:25
Ok ,, Merci : )
0
chris79 Messages postés 97 Date d'inscription lundi 3 octobre 2005 Statut Membre Dernière intervention 1 février 2016 25
3 juin 2015 à 23:29
Salut,

Quelques pistes en vrac :

1) Tu peux déjà utiliser un switch/case plutôt que cette succession de if.
2) Tu peux également supprimer ta double boucle for et utiliser un memcpy dans le style :
memcpy(x,a,sizeof a);

--> Du coup, reste à utiliser ensuite une simple boucle pour afficher les * :
for (i=0;i<lengh;i++)
{
	printf("*");
}
printf("\n");

3) J'ajouterai aussi qu'il faut que tu te renseignes sur malloc car :
scanf("%d",&lengh);
...
char x[3][lengh];

n'est pas du tout recommandé...même si ça peut tomber en marche.
4) Enfin, tu devrais pouvoir facilement supprimer ton instruction goto qui n'est que très rarement utilisé en pratique et rend souvent difficile la lecture d'un code...surtout quand y'en a bcp ;)
0