Madcat - un simulateur de chat (dev-c++ 5)

Soyez le premier à donner votre avis sur cette source.

Vue 6 029 fois - Téléchargée 428 fois

Description

En fait, c'est un programme que j'ai fait pour m'initier à l'utilisation des classes, je pense pas qu'il y est autre chose à redire la dessus a part que c'est compilé e DEV-C++ 4.9.8.7.
C'est en mode texte mais l'interface est plutôt bien soigné (texte en couleur, efface l'écran a chaque nouvelle action ...)

Source / Exemple :


/* ----------------------------- MadCat 1.0 ------------------------------------
Editeur : Mat06
Version : 1.0
Language : C++
Compilateur : Dev-C++ 4.9.8.7
------------------------------------------------------------------------------*/
/* Preprocesseur -------------------------------------------------------------*/
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <conio.c>
using namespace std;
/* Types de données ----------------------------------------------------------*/
typedef unsigned short int NUMS ;
typedef signed long int NUML ;
/* Variables statiques -------------------------------------------------------*/
static char H_LINE = 196 ;					// Valeur ASCII de '-'
static char V_LINE = 179 ; 					// Valeur ASCII de 'S'
static char StringC ;						// Variable de Write
static NUMS i = 0 ;							// Variable de boucle
static NUMS j = 0 ;							// Variable de boucle
static NUMS CCat  ;							// 1 si un chat existe
static NUMS CQuit ;							// Break le while si 1
static NUMS Choix ;							// Variable de switch
static char strChoix[1] ;					// Variable de choix [O-N]
											// Bloc de code : Temp
	static char TempName[11] ;
	static char TempType[11] ;
	static char TempColor[11] ;
	static NUMS TempAge ;
	static double TempWeight ;

/* Classe Cat ----------------------------------------------------------------*/
class Cat
{
public:										// Membre public de Cat
	Cat(void) ;								// Constructeur
	~Cat(void) ;							// Destructeur
	
	void SetAge(NUMS Age) ;					// Defini wAge
	NUMS GetAge(void) ;						// Récupère wAge
	
	void SetWeight(double Weight) ;			// Défini wWeight
	double GetWeight(void) ;				// Récupère wWeight
	
	void Miauler(void) ;					// Fait miauler le chat
	void Caresser(void) ;					// Caresse le chat
private:									// Membre privé de Cat
	char wName[11] ;
	char wType[11] ;
	char wColor[11] ;
	NUMS wAge ;
	double wWeight ;
};
/* Constructeur et destructeur de Cat ----------------------------------------*/
Cat::Cat(void)
{
	CCat = 1 ;								// Indique au programme qu'un chat existe
}
Cat::~Cat(void)
{
	CCat = 0 ;								// Détruit le chat existant
}
/* Fonction membre de Cat ----------------------------------------------------*/
void Cat::SetAge(NUMS Age)
{
	wAge = Age ;							// Défini l'age
}
NUMS Cat::GetAge(void)
{
	return wAge ;							// Retourne l'age
}
void Cat::SetWeight(double Weight)
{
	wWeight = Weight ;						// Défini le poid
}
double Cat::GetWeight(void)
{
	return wWeight ;						// Retourne le poid
}
void Cat::Miauler(void)
{
	textcolor(10) ;							// Texte en Vert
	cout << TempName << " : " ;				// Joue un son
	textcolor(14) ;							// Texte en Jaune
 	cout << "Miou! Miaou!\a" ;
}
void Cat::Caresser(void)
{
	textcolor(14) ;							// Texte en Jaune
	cout << "Vous caressez " << TempName << endl ;
	textcolor(10) ;							// Texte en Vert
	cout << TempName ;
 	textcolor(14) ; 						// Texte en jaune
	cout << " : frrrrt ! frrrrt\a" ;		// Joue un son
}
/* Création du chat ----------------------------------------------------------*/
static Cat Chat ;
/* Fonction WriteC -----------------------------------------------------------*/
void WriteC(char StringC, NUML Number, NUMS Color, NUMS Line)
{
	textcolor(Color) ;
	for (i = 0; i < Number; i++)
		cout << StringC ;
	if (Line)
		cout << "\n" ;
}
/* Fonction Main -------------------------------------------------------------*/	
int main(int argc, char *argv[])
{
	CCat = 0 ;								// Initialise CCat
	while(true)								// Boucle la fonction main
	{
		clrscr() ;
		textcolor(11) ;						// Texte bleu clair
		cout << "\t\t\t\t"
			 << "MadCat 1.0\n" ;			// Affiche l'entête de MadCat
	 	{									// Options	 
    		WriteC(H_LINE, 80, 14, 0) ;		// Affiche une ligne jaune
    		textcolor(10) ;					// Texte vert
   			cout << "[1] Creer un chat\n" ;
   			cout << "[2] Faire miauler le chat\n" ;
   		    cout << "[3] Caresser le chat\n" ;
   		    cout << "[4] Faire une evaluation du chat\n" ;
   		    cout << "[5] Relacher le chat\n" ;
   		    cout << "[6] A propos de MadCat\n" ;
   		    cout << "[7] Quitter\n" ;
   		    WriteC(H_LINE, 80, 14, 1) ;		// Affiche une ligne jaune
	    }
     	textcolor(9) ;						// Texte bleu foncé   
    	cout << "Votre choix [1-7] : " ;
    	textcolor(14) ;						// Texte en Vert
    	cin >> Choix ;
       	switch(Choix)						// Teste a choix multiple
    	{
    		case 0:
    			textcolor(12) ;				// Texte rouge
    			cout << "Veuillez entrez une valeur entre 1 et 7\n\n" ;
    			textcolor(12) ;				// Texte en rouge
    			system("PAUSE") ;			// Crée une pause
    			break ;
    		case 1:							// Définition des propriété de Chat
    			if (CCat)
   				{
   					textcolor(12) ;			// Texte en rouge
   					cout << "\nVous avez deja un chat !\n\n" ;
   					system("PAUSE") ;		// Crée une pause
   					break ;
			    }
    			CCat = 1 ;					// Le chat est créé
    			textcolor(14) ;				// Alternace du texte Jaune-Vert
    			cout << "\nEntrez le nom du chat : " ;
    			textcolor(10) ;
    			cin >> TempName ;
    			textcolor(14) ;
    			cout << "Entrez la race du chat : " ;
    			textcolor(10) ;
    			cin >> TempType ;
    			textcolor(14) ;
    			cout << "Entrez la couleur du chat : " ;
    			textcolor(10) ;
    			cin >> TempColor ;
    			textcolor(14) ;
    			cout << "Entrez l'age du chat : " ;
    			textcolor(10) ;
    			cin >> TempAge ;
    			Chat.SetAge(TempAge) ;
    			textcolor(14) ;
    			cout << "Entrez le poid du chat : " ;
    			textcolor(10) ;
    			cin >> TempWeight ;
    			Chat.SetWeight(TempWeight) ;
    			
    			textcolor(12) ;
    			cout << "\nMadCat dispose toutes les information "
    				 << "dont il a besoin.\n\n" ;
		        textcolor(12) ;				// Texte en rouge
		        system("PAUSE") ;			// Crée une pause
    			break ;
    		case 2:							// Execute Chat.Miauler(void) ;
    			if (CCat == 0)				// Break si CCat = 0
   				{
   					textcolor(12) ;			// Texte en rouge
    				cout << "Vous n'avez pas de chat!\n\n" ;
    				system("PAUSE") ;
    			    break ;
           		}
           		cout << "\n" ;
             	Chat.Miauler() ;			// Fait miauler le chat
             	cout << "\n\n" ;
             	textcolor(12) ;				// Texte en rouge
             	system("PAUSE") ;			// Crée une pause
    			break ;
    		case 3:
    			if (CCat == 0)			
    			{
    				textcolor(12) ;			// Texte en rouge
    				cout << "Vous n'avez pas de chat!\n\n" ;
    				system("PAUSE") ;		// Crée une pause
    				break ;
   				}
   				cout << "\n" ;
       			Chat.Caresser() ;			// Execute Chat.Caresser(void) ;
       			cout << "\n\n" ;
       			textcolor(12) ;				// Affiche le texte en rouge
       			system("PAUSE") ;
    			break ;
   			case 4:                         // Affiche les propriété de Chat
   				if(CCat == 0)
   				{
       				textcolor(12) ;         // Texte en rouge
   					cout << "Vous n'avez pas de chat!\n\n" ;
   					system("PAUSE") ;
   					break ;
			    }
			    textcolor(10) ;
			    cout << "\n" ;
			    cout << TempName << " est un " << TempType 
       				 << " de " << Chat.GetAge() << " ans\n" ;
			    cout << TempName << " fait " << Chat.GetWeight() << " Kg et "
			    	 << TempName << " est " << TempColor << "\n" ;
	    	    if (Chat.GetAge() > 13)
	    	    	cout << TempName << " est vieux\n" ;
    	    	else
    	    		cout << TempName << " est jeune\n" ;
	    	    if (Chat.GetWeight() > 5)
	    	    	cout << "C'est un gros chat!\n\n" ;
    	    	else
    	    		cout << "Ce chat est parfaitement normal!\n\n" ;
	    	    textcolor(12) ;				// Texte en rouge
	    	    system("PAUSE") ;
   				break ;
    		case 5:							// Détruit l'objet Chat
    			CCat = 0 ;
    			cout << "\n" ;
    			textcolor(14) ;
    			cout << "Vous avez relache " << TempName << "\n\n" ;
    			textcolor(12) ;				// Texte en rouge
    			system("PAUSE") ;			// Crée une pause
    			break ;
    		case 6:							// Affiche des infos sur MadCat 1.0
                textcolor(11) ;
    			cout << "\nEditeur : Mat06\n" ;
    			cout << "Version : 1.0.0\n" ;
    			cout << "Language : C++\n" ;
    			cout << "Compilateur : Dev-C++ 4.9.8.7\n" ;
    			cout << "Compile le 20.04.2004\n" ;
    			cout << "Description : Simulateur de chat\n\n" ;
    			textcolor(12) ;			// Texte en rouge
    			system("PAUSE") ;
    			break ;
    		case 7:
    			CQuit = 1 ;				// Quitte à la fin du switch
    			break ;
    		default:
    			textcolor(12) ;			// Texte rouge
    			cout << "Veuillez entrer une valeur entre 1 et 7\n" ;
    			system("PAUSE") ;		// Crée une pause
    			break ;
   		;}
		if (CQuit)						// Si 1, quitte
		break ;
    }
    textcolor(12) ;
    cout << "\n" ;
    system("PAUSE") ;					// Crée une pause
    clrscr() ;
	return 0 ;
}

Conclusion :


Ya plein de bug a ce que j'ai vus, surtout, ne fermez pas ce programme en cliquant sur la croix en a droite (chez moi sa fait tous merder), et ne vous amusez pas a entrez des lettre quand il faut entrez un chiffre pour la selection de l'action. Je crois que c'est tous ce qu'il fallait préciser .

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
37
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
22 octobre 2004

C'est bon, tous le monde a comris de quoi il s'agissait lorsque j'ai mis Compilateur : Dev-C++ (Enfin je pense)
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

Oué t'as raison, Dev-C++ c'est l'EDI, mais on sait ts qu'il intègre le compilo GNU. Quoi qu'il en soit, tu as raison, ^^
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
Compilateur : ca serait pas plutot un g++
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3
Mdr le tamagotchi :p

Sinon, je vais dans A propos et :
Editeur : Mat06
Version : 1.0.0
Language : C++
Compilateur : Dev-C++ 4.9.8.7
Compile le 20.04.2004
Description : Simulateur de chat

Ça veut dire que t'es éditeur? j'aurais mis programmeur ou codeur, ça fait mieux ;)
Aussi, on n'écrit pas "Language" mais "Langage" en français ^^

Je vais dans "Faire une évaluation" et :
Robert est un Pékinois de 0 ans
Robert fait 2 Kg et Robert est bleu
Robert est jeune
Ce chat est parfaitement normal!

"Ce chat est parfaitement normal" -> mais il est bleu? :D

Faudrait faire la possibilité d'avoir plusieurs chats, de les faire vivre à plusieurs, qu'ils se battent sans prévenir de temps en temps, ou qu'ils s'accouplent...Et la race des nouveaux enfants dépend de celle des autres...
On pourrait aller loin avec ce truc lol

Franchement j'adore ton prog, 10/10, allez ! :p
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

mets CCat comme membre static et public de la classe.
Tu en fais un int.
Ds les constructeurs, tu fais CCat++ et ds les destructeurs CCat--.
Tu sauras tjs précisément combien il y a de chats sans devoir utiliser d'autre variable.
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.