je suis en train de développer une adaptation d'un jeu vidéo dont le principe repose sur ce bout de programme en voici une partie c'est détaillé
Source / Exemple :
//darkelda
//2004*05*26 20H43
//dev c++ 4.0
//script gestion chaine de couleur
//fichier header
#include <stdlib.h>
#include <stdio.h>
//initialisation de la variable rang
int rang=1;
//creation d'un nouveau type string
typedef char string[10];
//prototype de la fonction de gestion de chaine
void boucle_couleur();
//initialisation des variables de test et de memorisation
string test;
string couleur1;
string couleur2;
string couleur3;
//initialisation de la variable de condition de la boucle while
string while_condition="yes";
//initialisation du blockage de la boucle de sortie
string exit_condition="yes";
//fonction principale
int main()
{
//boucle dont la sorite est bloquee par le parametre exit_condition
while(*while_condition == *exit_condition)
{
//choix de l'utilisateur
printf("choix\n") ;
//enregistrement de la saisi de l'utilisateur dans la variable test
scanf("%s",&test);
//appel de la fonction boucle_couleur pour gerer la creation de chaine
boucle_couleur();
}
//fin du programme
system("pause");
return 0;
}
//definition de la fonction boucle_couleur
void boucle_couleur()
{
//utilisation de switch pour une gestion du parametre rang
switch(rang)
{
//premier cas
case 1:
//enregistrer la premiere saisi dans la variable couleur1
couleur1=test;
//affichage de la couleur enregistree
printf("couleur1: %s\n",couleur1);
//changement de rang (monter d'un rang )
rang++;
//fin du switch -->> retour dans la boucle while
break;
//deuxieme cas
case 2:
//enregistrer la deuxieme saisi dans la variable couleur2
couleur2=test;
//affichage de la couleur enregistree
printf("couleur2: %s\n",couleur2);
//comparaison de couleur1 et de couleur2 (pour voir l'indenticite)
if(*couleur1==*couleur2)
{
//affichage des deux couleurs enregistrees
printf("couleur1 %s est la meme que couleur2 %s\n",couleur1, couleur2);
//changement de rang (monter de rang)
rang++;
}
//cas contraire de la comparaison (si couleur1 different de couleur2 )
else
{
//affichage des couleurs enregistrees et message d'erreur d'execution de la chaine
printf("couleur1 %s est different de couleur2 %s\n",couleur1,couleur2);
printf("chaine brisee... :'(\n");
//changement de rang (descendre de rang)
rang--;
}
//fin du switch -->> retour dans la boucle while
break;
//troisieme cas (uniquement si couleur1==couleur2)
case 3:
//enregistrer la troisieme saisi
couleur3=test;
//affichage de la couleur enregistree
printf("couleur3: %s\n",couleur3);
//comparaison de couleur2 et de couleur3 (pour voir l'identicite)
if(*couleur3==*couleur2)
//affichage du message de reussite de la chaine
{printf("chaine en %s complete\n",&test);}
//cas contraire de la comparaison (si couleur2 different de couleur3)
else
{
//affichage des couleurs enregistrees et message d'erreur d'execution de la chaine
printf("couleur3 %s ne correspond pas a couleur1 %s et couleur2 %s\n",couleur3,couleur1, couleur2);
printf("chaine brisee... :'(\n");
}
//remise au rang 1
rang=1;
//demande de sortie de la boucle while
printf("continuer? (yes/no)???\n");
//enregistrement de la saisi
scanf("%s",exit_condition);
//fin du switch -->> retour dans la boucle while
break;
//cas ou rang<1 et rang>4 ou rang est du type float
default:
//fin du switch -->> retour dans la boucle while
break;
}
}
Conclusion :
ya des pointeurs et on voit comment utilisé la boucle switch
voila laissé vos commentaires
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.