Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topicStart Poll

> Code Source de statanneau, Pour les programmeurs
Lapinator
post 25/02/07 , 11:26
Message #1



Group Icon

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/paperhammer40k

Téléchargement :
http://www.4shared.com/get/bdxs8qMo/PaperHammer_40k.html
Top
User is offlinePMEmail Poster
Quote Post
Lapinator
post 25/02/07 , 11:27
Message #2



Group Icon

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/paperhammer40k

Téléchargement :
http://www.4shared.com/get/bdxs8qMo/PaperHammer_40k.html
Top
User is offlinePMEmail Poster
Quote Post
Lapinator
post 25/02/07 , 11:28
Message #3



Group Icon

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/paperhammer40k

Téléchargement :
http://www.4shared.com/get/bdxs8qMo/PaperHammer_40k.html
Top
User is offlinePMEmail Poster
Quote Post
Lapinator
post 25/02/07 , 11:31
Message #4



Group Icon

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/paperhammer40k

Téléchargement :
http://www.4shared.com/get/bdxs8qMo/PaperHammer_40k.html
Top
User is offlinePMEmail Poster
Quote Post
Lapinator
post 25/02/07 , 11:32
Message #5



Group Icon

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/paperhammer40k

Téléchargement :
http://www.4shared.com/get/bdxs8qMo/PaperHammer_40k.html
Top
User is offlinePMEmail Poster
Quote Post
Lapinator
post 25/02/07 , 11:33
Message #6



Group Icon

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/paperhammer40k

Téléchargement :
http://www.4shared.com/get/bdxs8qMo/PaperHammer_40k.html
Top
User is offlinePMEmail Poster
Quote Post
Lapinator
post 25/02/07 , 11:34
Message #7



Group Icon

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/paperhammer40k

Téléchargement :
http://www.4shared.com/get/bdxs8qMo/PaperHammer_40k.html
Top
User is offlinePMEmail Poster
Quote Post

1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

Reply to this topicTopic OptionsStart new topic

 


Lo-Fi Version
Time is now: 19/04/24 - 18:38



La CFW forum skin 2.1 -Taucity.