|
|
Code Source de statanneau, Pour les programmeurs
Lapinator |
25/02/07 , 11:26
|
Groupe : Contributeur
Messages : 558
Inscrit le : 19/07/06
Lieu : Toulouse
Membre no. 1653
|
Pour ceux qui veulent également M'aider à déveloper ou tout recompiler chez eux, voici le code de statanneau V1.2 : ce n'est pas celle en ligne, mais une version avec juste quelques bugs corrigés. et autres choses de ce genre. par contre, cette version est spécifique à windows (color, system...) elle est plutÎt vielle et pas du tout optimisée. malheruresement, la version actuelle n'est pas encore tout à fait opérationnelles et les versions intermédeiaires on été éffacées. De plus je suis pro open source, et ceci est donc tout a fait modifiable.
main.c : /* Statanneau V1.0 By Guillaume Maurice Gonnaud Alias Lapinator CrĂe le 30 Janvier 2007 ModifiĂ le 4 fĂvrier 2007 */ // Les includes #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <time.h> #include "coloration.h" #include "enregistrerprofiles.h" #include "jeu.h"
typedef struct profile profile;// dĂclaration de la vraiable personalisĂe de type profil /*struct profile{ char nom[100]; long c; long f; long d; long a; long pv; };*/
void ModifierProfile(); profile ChargerProfile(profile guerrier); void EcrireProfile(); void InitialiserGuerrier(profile *guerrier);//Prototype de la fonction initialiserGuerrier int main(int argc, char *argv[])// La fonction "main" { //DĂclaration des variables nĂscĂssaire au fonctionnement du programme long menu = 0;//Cette variable est une variable qui utilisĂ avec while fera redĂfiler le menu ? chaque fois long mode =0;//La variable mode vaut Un si le mode est le mode statistique, 2 si le mode est simulation lors du combat long choix = 0;// dĂclaration de la varaiable du choix du menu profile guerrier1; profile guerrier2; InitialiserGuerrier(&guerrier1); InitialiserGuerrier(&guerrier2);/*ici, on crĂer les deux variables essentiels : Guerrier 1 et guerrier 2, et on les Initialises*/ long i=0, e=0;// c'est une variable ? tout faire, elle servira aussi bien de compteur que de truc pour stocker des donnĂs provisoires double vainqueur;/*C'est un pseudoboolĂen qui servira ? connaitre le vainqueur d'un combat. Il serra majorĂ de 1 en cas de victoire du guerrier un DiminuĂ de 1 en cas de victoire du guerrier 2. IL faut le diviser par 10.000 puis lui ajoutĂ 50 pour connaitre le pourcentage de victoire Du guerrier 1 dans le cas d'un tableau. Autrement, dans le cas d'une simulation de combat, sa valeur brute suffit*/ double tours;/*ce nombre est le nombre de tours ĂffĂctuĂ lors d'une simulation de combat. Pour un tableau, il faut le diviser par 1000.000pour obtenir le nombre de tours moyen d'une simulation. autrement, la valeur seule suffit*/ srand(time(NULL));//On dĂclare l'utilisation du D6 Color (12, 0);// On utilise la couleur Rouge printf("\tBienvenue\n\t dans\n\t\tStatanneau\n\n\n" );// message de bienvenue Color (10, 0);// On utilise la couleur Verte pour la pause system("pause"); while (menu==0)// Tant que le progrmame n'est pas terminĂ, on recommence le tableau {//dĂbut du while menu Color (14, 0);// On utilise la couleur Jaune pour le titre du menu printf("\n\n\nQue voulez vous faire, seigneur ?"); Color(3,0);// Turquoise pour les choix printf("\n\t1=> Creer/modifier/charger un profil\n\t2=> Enregistrer deux guerriers pour les faires combattre rapidement\n\t3=> Effectuer une simulation d'un combat\n\t4=> Statistiques\n\t5=> Quitter\n\t6=> Le mot du lapin\n"); Color(10,0); // Tu choisis quoi ? (en vert) scanf("%ld", &choix); switch (choix)//En fonction de ton choix { case 1://Modifier/charger/un profile Color (14, 0);// On utilise la couleur Jaune pour le titre du menu printf("\n\n\nQue voulez vous faire, seigneur ?"); Color(3,0);// Turquoise pour les choix printf("\n\t1=>Creer un nouveau profil\n\t2=>Modifier un profil existant\n\t3=>Charger un profil\n"); Color(10,0); // Tu choisis quoi ? (en vert) scanf("%ld", &choix); switch (choix)//En fonction de ton choix { case 1: EcrireProfile(); Color(10,0);//vert printf("\n"); system("pause"); break; case 2: ModifierProfile(); break; case 3: choix=0; Color (14, 0);// On utilise la couleur Jaune pour le titre du menu printf("\n\nDans quelle slot devont nous charger le profil, seigneur ?\n"); Color(3,0);// Turquoise pour les choix printf("\n\t1=>Slot 1\n\t2=>Slot 2\n"); Color(10,0); // Tu choisis quoi ? (en vert) scanf("%ld", &choix); if(choix==1)//si le choix est de charger dans le slot 1 { guerrier1 = ChargerProfile(guerrier1);//on le fait } if (choix==2)//si le choix est deccharger dans le slots 2 { guerrier2 = ChargerProfile(guerrier2); } Color(10,0);//vert printf("\n"); system("pause"); break; default : Color(10,0);//vert printf("\n"); system("pause"); break; } choix=0; break; case 2: //Enregistrer deux guerriers pour les faires combattres Color(9,0);//bleu printf("\n\n\nVeillez enregistrer le premier profil\n"); guerrier1 = enregistrerprofile(guerrier1); Color(9,0);//Bleu printf("\nVeillez enregistrer le second profil\n"); guerrier2 = enregistrerprofile(guerrier2); Color(10,0);//vert system("pause"); break; case 3: //simulation e=0; i=0; tours=0; vainqueur=0; mode=2;//nous sommes en mode simulation Color(12,0);//rouge printf("\n\n%s et %s vont s'affronter dans l'arene. Que le meilleur gagne\n\n", guerrier1.nom, guerrier2.nom);//On prĂsente combat(guerrier1, guerrier2, &vainqueur, &tours, mode); Color(14,0);//jaune tours = 0;// on rĂinitialise les variables vainqueur = 0; mode = 0; printf("\n"); Color(10,0);//vert system("pause"); break; case 4://statistique mode =1;//on dit que le mode est le mode statistique e=0; i=0; tours=0; vainqueur=0; Color(12,0);//On colore en rouge printf("\n\nVous devez avoir charger le profil de deux Guerriers, puis l'ordinateur\nles fera combattre 1.000.000 de fois. \n");// On prĂsente Color(5,0);//On colorie en Violet printf("\nLes resultat des combats vous seront donne sous forme d'un pourcentage\nde victoires et de defaites pour chacun, ainsi que le nombre moyen\nde tours qu'a dure chaque combat"); Color(9,0);//Bleu printf("\n\n\nLa simulation va commencer\n"); system("pause"); Color(14,0);//Jaune printf("\n\nSimulation en cours"); while(e<10) { Color(14,0);//Jaune i = 0; printf("."); e++; while( i<100000) { i++; combat(guerrier1, guerrier2, &vainqueur, &tours, mode); }//fin du while i }//fin du while e e=0; i=0; printf("\nsimulation effectuee"); Color(13,0);//Violet 2 printf("\n\nVoici les resultats :\n"); Color(12,0); //rouge fluo vainqueur = vainqueur/10000.0; printf("\nPourcentage de Victoires de %s : %lf\n", guerrier1.nom, vainqueur); vainqueur = 100 - vainqueur; pintf("Pourcentage de Victoires de %s : %lf\n", guerrier2.nom, vainqueur); tours = tours/1000000.0; printf("\nNombre moyen de tours : %lf\n", tours); Color(10,0);//vert tours = 0;// on rĂinitialise les variables vainqueur = 0; mode = 0; system("pause"); break; case 5://Quitter Color(10,0);//On met une couleur verte fluo printf("\n"); system ("pause"); // pause return 0;//on quitte break; case 6://le mot du lapin Color(13,0);//violet 2 printf("\n\nJ'ai fais ce petit programme pour pemetre un calcul statistique sur \nles probabilites de victoires de chaque profil du seigneur des anneaux. \nCeci permet notamment de remarquer l'utilite d'une valeur de Combat \nou d'une valeur de defense elevee. \nPour le moment les caracteristique heroiques tels les points de destin \nou de puissances ne sont pas encore geres, mais cela ne devrait pas tarder.\n\n"); Color(10,0);//On met une couleur verte fluo printf("\n"); system ("pause"); // pause break; default : printf("\n"); Color(10,0);//vert system("pause"); break; }//Fin du switch choix }//Fin du while menu }//fin de la fonction
void InitialiserGuerrier(profile *guerrier) { guerrier->c = 1; guerrier->f = 1; guerrier->d = 1; guerrier->a = 1; guerrier->pv = 1; }
void EcrireProfile() { profile guerrier; InitialiserGuerrier(&guerrier); Color(15,0);//Blanc printf("\n\nVeuillez enregistrer le profil du guerrier qui sera sauvegarde\n"); guerrier = enregistrerprofile(guerrier); FILE* fichier = NULL; fichier = fopen("statanneau.lap", "a+"); if (fichier != NULL)// On peut lire et Ăcrire dans le fichier { fprintf(fichier, "%s %ld %ld %ld %ld %ld\n", guerrier.nom, guerrier.c, guerrier.f, guerrier.d, guerrier.a, guerrier.pv); fclose(fichier); // On ferme le fichier qui a ĂtĂ ouvert Color(15,0);//Blanc printf("\n\nSauvegarde effectuee\n\n"); }//fin du if fichier est uvert else { printf("Impossible d'ouvrir le fichier statanneau.lap"); // On affiche un message d'erreur si on veut } }//Fin de la fonction EnregistrerProfile
profile ChargerProfile(profile guerrier) { long choix = 0;//Une variable utiliser pour enregistrer le choix du joueur long ligne = 0; //ceci est utile pour connaitre la ligne o˘ nous nous situons FILE* fichier = NULL;//on dĂclare la ligne o˘ nous nous trouvons long e = 0;//Variable ? tout faire char chaine[120] = ""; fichier = fopen("statanneau.lap", "r");//On ouvre le fichier if (fichier != NULL)// On peut lire et Ăcrire dans le fichier { Color(9,0); printf("Quelle profil voulez vous chargez ?\n\n"); rewind(fichier);//on met la lecture au dĂbut Color(15,0);//blanc while (fgets(chaine, 120, fichier) != NULL) // On lit le fichier tant qu'on ne reĂoit pas d'erreur (NULL) { ligne++; printf("%ld=>%s\n", ligne, chaine ); // On affiche la chaĂne qu'on vient de lire } rewind(fichier);//on met la lecture au dĂbut ligne=0; Color(10,0); scanf("%ld", &choix); while((ligne+1) < choix)//ici,on teste un truc couillu : on va tenter d'amener le cuseur au dĂbut de la ligne du choix avec des Fgets { fgets(chaine, 120, fichier); ligne++; }//et croyez le ou pas, ça marche fscanf(fichier, "%s %ld %ld %ld %ld %ld", &(guerrier.nom), &(guerrier.c), &(guerrier.f), &(guerrier.d), &(guerrier.a), &(guerrier.pv)); Color(12,0); printf("\n%s\nC F D A PV\n%ld %ld %ld %ld %ld\n", (guerrier.nom), (guerrier.c), (guerrier.f), (guerrier.d), (guerrier.a), (guerrier.pv)); fclose(fichier);//On ferme le fichier } else { printf("Impossible d'ouvrir le fichier statanneau.lap"); // On affiche un message d'erreur si on veut } return guerrier; }//fin de la fonction ChargerProfile
void ModifierProfile()//celle ci marche, contrairement Ă celle de la V1 { profile guerrier; long choix = 0;//Une variable utiliser pour enregistrer le choix du joueur long ligne = 0; //ceci est utile pour connaitre la ligne o˘ nous nous situons FILE* fichier = NULL;//on dĂclare la ligne o˘ nous nous trouvons long e = 0;//Variable ? tout faire char chaine[120] = ""; fichier = fopen("statanneau.lap", "r+");//On ouvre le fichier if (fichier != NULL)// On peut lire et Ăcrire dans le fichier { Color(9,0); printf("Quelle profil voulez vous modifier?\n\n"); rewind(fichier);//on met la lecture au dĂbut Color(15,0);//blanc while (fgets(chaine, 120, fichier) != NULL) // On lit le fichier tant qu'on ne reĂoit pas d'erreur (NULL) { ligne++; printf("%ld=>%s\n", ligne, chaine ); // On affiche la chaĂne qu'on vient de lire } rewind(fichier);//on met la lecture au dĂbut ligne=0; Color(10,0); scanf("%ld", &choix); while((ligne+1) < choix)//comme dans charger profile { fgets(chaine, 120, fichier); ligne++; } guerrier = enregistrerprofile(guerrier); fprintf(fichier, "%s %ld %ld %ld %ld %ld\n", guerrier.nom, guerrier.c, guerrier.f, guerrier.d, guerrier.a, guerrier.pv); } else { printf("Impossible d'ouvrir le fichier statanneau.lap"); // On affiche un message d'erreur si on veut } }
--------------------
(\__/) Avant d'installer linux, mon ordinateur plantait tout le temps, je n'avais (='.'=) pas d'amis, ni de vie sociale, les filles me fuyaient, et j'avais des boutons. (")_(") Maintenant, mon ordinateur ne plante plus. Update 2011 : ça fait pas mal de temps que j'ai raccrochĂ© le hobby. Pour toute question/demande touchant au tĂ©lĂ©chargement des patrons de vĂ©hicule en scratch build, d'autres ont tenus des collections Ă jour, et plus complĂȘte : http://www.goldenboltersociety.com/paperhammer40kTĂ©lĂ©chargement : http://www.4shared.com/get/bdxs8qMo/PaperHammer_40k.html
|
|
|
Lapinator |
25/02/07 , 11:27
|
Groupe : Contributeur
Messages : 558
Inscrit le : 19/07/06
Lieu : Toulouse
Membre no. 1653
|
jeu.h
//Ce fichier contient les prototypes des fonctions du fichier jeu.c relative au fonctionnement du JDBDTDM
long d6(); void combat(struct profile guerrier1,struct profile guerrier2, double* vainqueur, double* tours, long mode);//Prototype de combat void dePourBlesser(long *dpb1, long *dpb2, struct profile guerrierA, struct profile guerrierD);
--------------------
(\__/) Avant d'installer linux, mon ordinateur plantait tout le temps, je n'avais (='.'=) pas d'amis, ni de vie sociale, les filles me fuyaient, et j'avais des boutons. (")_(") Maintenant, mon ordinateur ne plante plus. Update 2011 : ça fait pas mal de temps que j'ai raccrochĂ© le hobby. Pour toute question/demande touchant au tĂ©lĂ©chargement des patrons de vĂ©hicule en scratch build, d'autres ont tenus des collections Ă jour, et plus complĂȘte : http://www.goldenboltersociety.com/paperhammer40kTĂ©lĂ©chargement : http://www.4shared.com/get/bdxs8qMo/PaperHammer_40k.html
|
|
|
Lapinator |
25/02/07 , 11:28
|
Groupe : Contributeur
Messages : 558
Inscrit le : 19/07/06
Lieu : Toulouse
Membre no. 1653
|
jeu.c
//Ce fichier contient toutes les fonctions relative au fonctionnement du jeu de bataille des terres du milieu, //du D6 jusque au mĂcanisme pour savoir qui remporte le combat
typedef struct profile profile; struct profile { char nom[100]; long c;//Valeur de combat long f;//Force long d;//dĂfense long a;//Nombre d'attaque long pv;//Nombre de points de vie };
void dePourBlesser(long *dpb1, long *dpb2, profile guerrierA, profile guerrierD); //Fonction D6 : elle tire un nombre au hasard entre 1 et 6 long D6() { long resultat; resultat = (rand() % (6 - 1 + 1)) + 1; return resultat; }
// Cette fonction rĂsoud un combat du seigneur des anneaux void combat(profile guerrier1, profile guerrier2, double* vainqueur, double* tours, long mode) { if (mode==2) { Color(15,0);//blanc } long tourraine = 0;//Une vriable utilisĂ pour les tours en mode simulation long compt=0;//Cette variable est un compteur qui servira ? de multiple reprise pour le compte des boucles int fini=0;// cette variable est un bool Ăgale ? un si le combat est terminĂ long de=0;//Cette variable sert de dĂ provisoire long meilleurD1=0;//Cette varaiable stocke le meilleur dĂ du guerrier1 long meilleurD2=0;//Cette variable stocke le meilleur dĂ du guerrier2 long dpb1=0;//cette variable stocke le rĂsultat minimale du premier jet pour blesser ? obtenir long dpb2=0;//Cette vairiable stocke le rĂsultat minimale du second jet pour blesser minimal. Souvent Ăgal ? ZĂro long pv1; long pv2; pv1 = guerrier1.pv; pv2 = guerrier2.pv; //Tant que le combat n'est pas fini, on joue une phase de combat. la fin de ce while correspond ? la fin de la phase de combat while (fini != 1) { meilleurD1 = 0; meilleurD2 = 0; if(mode==2) { tourraine++; Color(10,0);//vert system("pause"); Color(15,0);//blanc printf("\n\nTOUR %ld\n", tourraine); } //Lancement des dĂs pour remporter le combat du guerrier 1 if (mode==2) { printf("\n%s lance ses des : ", guerrier1.nom); } compt = guerrier1.a; while (compt != 0) { compt--; de = D6(); if (mode==2) { printf("%ld ", de); } if (de > meilleurD1) { meilleurD1 = de; } } //Le meilleur rĂsultat du guerrier 1 a ĂtĂ stockĂ if (mode==2) { printf("\nLe meilleur resultat est %ld\n\n", meilleurD1); } //lancement des dĂs pour remporter le combat du guerrier 2 if (mode==2) { printf("%s lance ses des : ", guerrier2.nom); } compt = guerrier2.a; while (compt != 0) { compt--; de = D6(); if (mode==2) { printf("%ld ", de); } if (de > meilleurD2) { meilleurD2 = de; } } if (mode==2) { printf("\nLe meilleur resultat est %ld\n\n", meilleurD2); } //Le meilleur rĂsultat du guerrier 2 a ĂtĂ stockĂ //On compare les deux rĂsultats // Si ils sont Ăgaux, if (meilleurD1 == meilleurD2) { // on les dĂpartages gr?ce ? la valeur de combats // si le guerrier 1 est meilleur, il gagne if (guerrier1.c > guerrier2.c) { meilleurD2--; } //Et inversement if (guerrier1.c < guerrier2.c) { meilleurD1--; } //enfin, si ils sont vraiment chiant et Ăgaux en tout points if (guerrier1.c == guerrier2.c) { compt=(rand() % (1 - 0 + 1)) + 0; if (compt == 0) { meilleurD1--; } else { meilleurD2--; } } } //ouf, ils sont dĂpartagĂs //Maintenant, que le meilleur blesse //Tente ta chace guerrier 1 if (meilleurD1 > meilleurD2) { if (mode==2) { Color(10,0);//vert system("pause"); Color(15,0);//blanc printf("\n\n%s remporte le combat\n", guerrier1.nom); } //Lancement des dĂs pour blesser Guerrier 1 compt = guerrier1.a; dePourBlesser(&dpb1, &dpb2, guerrier1, guerrier2); while (compt != 0) { compt--; de = D6(); if (dpb1 <= de) { de = D6(); if (dpb2 <= de) { pv2--; if (mode==2) { printf("\n%s parvient a faire couler le sang de %s, qui\npasse a %ld pv\n\n", guerrier1.nom, guerrier2.nom, pv2); } } else { if (mode==2) { printf("\n%s perce la defense de %s, mais le coup ricoche \ntant l'armure de son adversaire est epaisse", guerrier1.nom, guerrier2.nom); } } } else { if (mode==2) { printf("\n%s esquive habilement une attaque", guerrier2.nom); } } } } //Tente ta chace guerrier 2 if (meilleurD1 < meilleurD2) { if (mode==2) { printf("\n"); Color(10,0);//vert system("pause"); Color(15,0);//blanc printf("\n\n%s remporte le combat\n", guerrier2.nom); } //Lancement des dĂs pour blesser Guerrier 2 compt = guerrier2.a; dePourBlesser(&dpb1, &dpb2, guerrier2, guerrier1); while (compt != 0)
{ compt--; de = D6(); if (dpb1 <= de) { de = D6(); if (dpb2 <= de) { pv1--; if (mode==2) { printf("\n%s parvient a blesser %s, qui passe a %ld pv", guerrier2.nom, guerrier1.nom, pv1); } } else { if (mode==2) { printf("\n%s frappe violement son adversaire, mais le coup rebondit \ntant l'armure de %s est efficace", guerrier2.nom, guerrier1.nom); } }
} else { if (mode==2) { printf("\n%s pare habilement un coup", guerrier1.nom); } } } } //chance tentĂe if(mode==2) { printf("\n"); } (*tours)++;//On dit que une phase de combat s'est ĂcoulĂe if(pv1 <= 0)//Si le guerrier 1 ? perdu { if (mode==2) { Color(12,0); printf("\n%s a terrasse %s !\n\n", guerrier2.nom, guerrier1.nom); } fini++;//Le combat est terminĂ } if(pv2 <= 0)//Si le guerrier 2 ? perdu { if (mode==2) { Color(12,0); printf("\n%s a occis %s !\n\n", guerrier1.nom, guerrier2.nom); } fini++;//Le combat est terminĂ (*vainqueur)++;//le guerrier 1 a gagnĂ } } //Fin de la phase de combat } //fin de la fonction
// Cette fonction sert ? connaitre le jet pour blesser minimale du guerrier attaquant sur le guerrier dĂfenseur void dePourBlesser(long *dpb1, long *dpb2, profile guerrierA, profile guerrierD) { long fAtak = guerrierA.f; // Force de l'attaquant long vDef = guerrierD.d; //Valeur de dĂfense du dĂfenseur //en fonction de la valeur de l'attaque switch (fAtak) { // Si l'attaque vaut 1 de force case 1: //Et si la dĂfense vaut switch(vDef) { //F1D1 case 1: *dpb1 = 4; *dpb2 = 0; break; //F1D2 case 2: *dpb1 = 5; *dpb2 = 0; break; //etc... case 3: *dpb1 = 5; *dpb2 = 0; break; case 4: *dpb1 = 6; *dpb2 = 0; break; case 5: *dpb1 = 6; *dpb2 = 0; break; case 6: *dpb1 = 6; *dpb2 = 4; break; case 7: *dpb1 = 6; *dpb2 = 5; break; case 8: *dpb1 = 6; *dpb2 = 6; break; case 9: *dpb1 = 7; *dpb2 = 7; break; case 10: *dpb1 = 7; *dpb2 = 7; break; } break; // Si l'attaque vaut 2 de force case 2: //Et si la dĂfense vaut switch(vDef) { //1 case 1: *dpb1 = 3; *dpb2 = 0; break; //2 case 2: *dpb1 = 4; *dpb2 = 0; break; //Etc... case 3: *dpb1 = 5; *dpb2 = 0; break; case 4: *dpb1 = 5; *dpb2 = 0; break; case 5: *dpb1 = 6; *dpb2 = 0; break; case 6: *dpb1 = 6; *dpb2 = 0; break; case 7: *dpb1 = 6; *dpb2 = 4; break; case 8: *dpb1 = 6; *dpb2 = 5; break; case 9: *dpb1 = 6; *dpb2 = 6; break; case 10: *dpb1 = 7; *dpb2 = 7; break; } break; case 3: //Et si la dĂfense vaut switch(vDef) { //1 case 1: *dpb1 = 3; *dpb2 = 0; break; //2 case 2: *dpb1 = 3; *dpb2 = 0; break; //Etc... case 3: *dpb1 = 4; *dpb2 = 0; break; case 4: *dpb1 = 5; *dpb2 = 0; break; case 5: *dpb1 = 5; *dpb2 = 0; break; case 6: *dpb1 = 6; *dpb2 = 0; break; case 7: *dpb1 = 6; *dpb2 = 0; break; case 8: *dpb1 = 6; *dpb2 = 4; break; case 9: *dpb1 = 6; *dpb2 = 5; break; case 10: *dpb1 = 6; *dpb2 = 6; break; } break; case 4: //Et si la dĂfense vaut switch(vDef) { //1 case 1: *dpb1 = 3; *dpb2 = 0; break; //2 case 2: *dpb1 = 3; *dpb2 = 0; break; //Etc... case 3: *dpb1 = 3; *dpb2 = 0; break; case 4: *dpb1 = 4; *dpb2 = 0; break; case 5: *dpb1 = 5; *dpb2 = 0; break; case 6: *dpb1 = 5; *dpb2 = 0; break; case 7: *dpb1 = 6; *dpb2 = 0; break; case 8: *dpb1 = 6; *dpb2 = 0; break; case 9: *dpb1 = 6; *dpb2 = 4; break; case 10: *dpb1 = 6; *dpb2 = 5; break; } break; case 5: //Et si la dĂfense vaut switch(vDef) { //1 case 1: *dpb1 = 3; *dpb2 = 0; break; //2 case 2: *dpb1 = 3; *dpb2 = 0; break; //Etc... case 3: *dpb1 = 3; *dpb2 = 0; break; case 4: *dpb1 = 3; *dpb2 = 0; break; case 5: *dpb1 = 4; *dpb2 = 0; break; case 6: *dpb1 = 5; *dpb2 = 0; break; case 7: *dpb1 = 5; *dpb2 = 0; break; case 8: *dpb1 = 6; *dpb2 = 0; break; case 9: *dpb1 = 6; *dpb2 = 0; break; case 10: *dpb1 = 6; *dpb2 = 5; break; } break; case 6: //Et si la dĂfense vaut switch(vDef) { //1 case 1: *dpb1 = 3; *dpb2 = 0; break; //2 case 2: *dpb1 = 3; *dpb2 = 0; break; //Etc... case 3: *dpb1 = 3; *dpb2 = 0; break; case 4: *dpb1 = 3; *dpb2 = 0; break; case 5: *dpb1 = 3; *dpb2 = 0; break; case 6: *dpb1 = 4; *dpb2 = 0; break; case 7: *dpb1 = 5; *dpb2 = 0; break; case 8: *dpb1 = 5; *dpb2 = 0; break; case 9: *dpb1 = 6; *dpb2 = 0; break; case 10: *dpb1 = 6; *dpb2 = 0; break; } break; case 7: //Et si la dĂfense vaut switch(vDef) { //1 case 1: *dpb1 = 3; *dpb2 = 0; break; //2 case 2: *dpb1 = 3; *dpb2 = 0; break; //Etc... case 3: *dpb1 = 3; *dpb2 = 0; break; case 4: *dpb1 = 3; *dpb2 = 0; break; case 5: *dpb1 = 3; *dpb2 = 0; break; case 6: *dpb1 = 3; *dpb2 = 0; break; case 7: *dpb1 = 4; *dpb2 = 0; break; case 8: *dpb1 = 5; *dpb2 = 0; break; case 9: *dpb1 = 5;
*dpb2 = 0; break; case 10: *dpb1 = 6; *dpb2 = 0; break; } break; case 8: //Et si la dĂfense vaut switch(vDef) {
//1 case 1: *dpb1 = 3; *dpb2 = 0; break; //2 case 2: *dpb1 = 3; *dpb2 = 0; break; //Etc... case 3: *dpb1 = 3; *dpb2 = 0; break; case 4: *dpb1 = 3; *dpb2 = 0; break; case 5: *dpb1 = 3; *dpb2 = 0; break; case 6: *dpb1 = 3; *dpb2 = 0; break; case 7: *dpb1 = 3; *dpb2 = 0; break; case 8: *dpb1 = 4; *dpb2 = 0; break; case 9: *dpb1 = 5; *dpb2 = 0; break; case 10: *dpb1 = 5; *dpb2 = 0; break; } break; case 9: //Et si la dĂfense vaut switch(vDef) { //1 case 1: *dpb1 = 3; *dpb2 = 0; break; //2 case 2: *dpb1 = 3; *dpb2 = 0; break; //Etc... case 3: *dpb1 = 3; *dpb2 = 0; break; case 4: *dpb1 = 3; *dpb2 = 0; break; case 5: *dpb1 = 3; *dpb2 = 0; break; case 6: *dpb1 = 3; *dpb2 = 0; break; case 7: *dpb1 = 3; *dpb2 = 0; break; case 8: *dpb1 = 3; *dpb2 = 0; break; case 9: *dpb1 = 4; *dpb2 = 0; break; case 10: *dpb1 = 5; *dpb2 = 0; break; } break; case 10: //Et si la dĂfense vaut switch(vDef) { //1 case 1: *dpb1 = 3; *dpb2 = 0; break; //2 case 2: *dpb1 = 3; *dpb2 = 0; break; //Etc... case 3: *dpb1 = 3; *dpb2 = 0; break; case 4: *dpb1 = 3; *dpb2 = 0; break; case 5: *dpb1 = 3; *dpb2 = 0; break; case 6: *dpb1 = 3; *dpb2 = 0; break; case 7: *dpb1 = 3; *dpb2 = 0; break; case 8: *dpb1 = 3; *dpb2 = 0; break; case 9: *dpb1 = 3; *dpb2 = 0; break; case 10: *dpb1 = 4; *dpb2 = 0; break; } break; } //fin du grand switch } //fin de la fonction
--------------------
(\__/) Avant d'installer linux, mon ordinateur plantait tout le temps, je n'avais (='.'=) pas d'amis, ni de vie sociale, les filles me fuyaient, et j'avais des boutons. (")_(") Maintenant, mon ordinateur ne plante plus. Update 2011 : ça fait pas mal de temps que j'ai raccrochĂ© le hobby. Pour toute question/demande touchant au tĂ©lĂ©chargement des patrons de vĂ©hicule en scratch build, d'autres ont tenus des collections Ă jour, et plus complĂȘte : http://www.goldenboltersociety.com/paperhammer40kTĂ©lĂ©chargement : http://www.4shared.com/get/bdxs8qMo/PaperHammer_40k.html
|
|
|
Lapinator |
25/02/07 , 11:31
|
Groupe : Contributeur
Messages : 558
Inscrit le : 19/07/06
Lieu : Toulouse
Membre no. 1653
|
enregistrerprofiles.h struct profile
{ char nom[100]; long c; long f; long d; long a; long pv; }; // header de la fonction enregistrant les profiles struct profile enregistrerprofile(struct profile guerrier);
--------------------
(\__/) Avant d'installer linux, mon ordinateur plantait tout le temps, je n'avais (='.'=) pas d'amis, ni de vie sociale, les filles me fuyaient, et j'avais des boutons. (")_(") Maintenant, mon ordinateur ne plante plus. Update 2011 : ça fait pas mal de temps que j'ai raccrochĂ© le hobby. Pour toute question/demande touchant au tĂ©lĂ©chargement des patrons de vĂ©hicule en scratch build, d'autres ont tenus des collections Ă jour, et plus complĂȘte : http://www.goldenboltersociety.com/paperhammer40kTĂ©lĂ©chargement : http://www.4shared.com/get/bdxs8qMo/PaperHammer_40k.html
|
|
|
Lapinator |
25/02/07 , 11:32
|
Groupe : Contributeur
Messages : 558
Inscrit le : 19/07/06
Lieu : Toulouse
Membre no. 1653
|
enregistrerprofiles.c
// Dans ce fichier, on se charge d'enregistrer les profils : la fonction prend un pointeur sur un fichier profile, le modifie, puis renvoie ce profile
typedef struct profile profile;
struct profile
{
char nom[100];
long c;
long f;
long d;
long a;
long pv;
};
struct profile enregistrerprofile(profile guerrier)
{
long nombre = 0;
// On met la couleur ? Jaune
Color(14,0);
//Et on entre joyeusement les stats
printf("\nNom du guerrier ?\n");
scanf("%s", guerrier.nom);
printf("\nValeur de Combat du Guerrier ?\n");
scanf("%ld", &nombre);
guerrier.c = nombre;
printf("\nForce du Guerrier ?\n");
scanf("%ld", &nombre);
guerrier.f = nombre;
printf("\nDefense du Guerrier ?\n");
scanf("%ld", &nombre);
guerrier.d = nombre;
printf("\nNombre d'attaques du Guerrier ?\n");
scanf("%ld", &nombre);
guerrier.a = nombre;
printf("\nNombre de Points de Vie du Guerrier ?\n");
scanf("%ld", &nombre);
guerrier.pv = nombre;
// On change la couleur Pour la phrase d'annonce
Color(4,0);
printf("\nLe profil du guerrier est le suivant :\n\n");
//On Affiche le profil du guerrier
Color(14,0);
printf("%s\nC F D A PV\n%ld %ld %ld %ld %ld\n", guerrier.nom, guerrier.c, guerrier.f, guerrier.d, guerrier.a, guerrier.pv);
return guerrier;
}
--------------------
(\__/) Avant d'installer linux, mon ordinateur plantait tout le temps, je n'avais (='.'=) pas d'amis, ni de vie sociale, les filles me fuyaient, et j'avais des boutons. (")_(") Maintenant, mon ordinateur ne plante plus. Update 2011 : ça fait pas mal de temps que j'ai raccrochĂ© le hobby. Pour toute question/demande touchant au tĂ©lĂ©chargement des patrons de vĂ©hicule en scratch build, d'autres ont tenus des collections Ă jour, et plus complĂȘte : http://www.goldenboltersociety.com/paperhammer40kTĂ©lĂ©chargement : http://www.4shared.com/get/bdxs8qMo/PaperHammer_40k.html
|
|
|
Lapinator |
25/02/07 , 11:33
|
Groupe : Contributeur
Messages : 558
Inscrit le : 19/07/06
Lieu : Toulouse
Membre no. 1653
|
coloration.h
// Le prototype de la fonction gĂrant la couleur du texte :
/*
Rappel Sur Les Couleurs :
0=noir
1=Bleu foncĂ
2=VertfoncĂ
3=Turquoise
4=RougefoncĂ
5=Violet
6=Caca d'oie
7=Gris clair
8=gris foncĂ
9=Bleu Fluo
10=Vert Fluo
11=Turquoise
12=Rougefluo
13=Violet 2
14= Jaune
15=Blanc
*/
void Color(int couleurDuTexte,int couleurDeFond);
--------------------
(\__/) Avant d'installer linux, mon ordinateur plantait tout le temps, je n'avais (='.'=) pas d'amis, ni de vie sociale, les filles me fuyaient, et j'avais des boutons. (")_(") Maintenant, mon ordinateur ne plante plus. Update 2011 : ça fait pas mal de temps que j'ai raccrochĂ© le hobby. Pour toute question/demande touchant au tĂ©lĂ©chargement des patrons de vĂ©hicule en scratch build, d'autres ont tenus des collections Ă jour, et plus complĂȘte : http://www.goldenboltersociety.com/paperhammer40kTĂ©lĂ©chargement : http://www.4shared.com/get/bdxs8qMo/PaperHammer_40k.html
|
|
|
Lapinator |
25/02/07 , 11:34
|
Groupe : Contributeur
Messages : 558
Inscrit le : 19/07/06
Lieu : Toulouse
Membre no. 1653
|
// Ce fichier contient une fonction gĂrant l'affichage de la couleur en mode console
#include <stdio.h> // Les includes
#include <stdlib.h>
#include <windows.h>
#include "coloration.h"
void Color(int couleurDuTexte,int couleurDeFond) // fonction d'affichage de couleurs
{
HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(H,couleurDeFond*16+couleurDuTexte);
}
--------------------
(\__/) Avant d'installer linux, mon ordinateur plantait tout le temps, je n'avais (='.'=) pas d'amis, ni de vie sociale, les filles me fuyaient, et j'avais des boutons. (")_(") Maintenant, mon ordinateur ne plante plus. Update 2011 : ça fait pas mal de temps que j'ai raccrochĂ© le hobby. Pour toute question/demande touchant au tĂ©lĂ©chargement des patrons de vĂ©hicule en scratch build, d'autres ont tenus des collections Ă jour, et plus complĂȘte : http://www.goldenboltersociety.com/paperhammer40kTĂ©lĂ©chargement : http://www.4shared.com/get/bdxs8qMo/PaperHammer_40k.html
|
|
|
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :
Suivre ce sujet
Pour recevoir une notification par email lorsqu'une réponse est faite dans ce sujet et que vous n'êtes pas présent sur les forums.
S'abonner à ce forum
Pour recevoir une notification par email lorsqu'un nouveau sujet est créé dans ce forum et que vous n'êtes pas connecté.
Télécharger/Imprimer ce sujet
Télécharger ce sujet dans différents formats ou afficher une version imprimable.
La CFW forum skin 2.1 -Taucity.
|
|
|