Mini tutorial....

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 352 fois - Téléchargée 33 fois

Contenu du snippet

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

A voir également

Ajouter un commentaire Commentaires
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
9
Euh oui excuse... Je me suis trompé entre bit et byte ^^
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
octet comme tu l'avais dit plus haut et non pas bit.
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
9
Une std::string nécessite une allocation dynamique(pour la chaîne encapsulée) alors qu'un bool nécessite un bit, sans allocation dynamique, et il est fait pour ça.
Messages postés
49
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
16 mai 2012

je ne vois pas la pertinence de ta remarque?
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
9
En plus utiliser une std::string pour une condition, c'est un peu idiot(nécessite allocation dynamique de la chaine), alors que le C++ supporte le type bool qui nécessite un octet et reconnaît les mots-clés "true" et "false"...
Afficher les 12 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.