#include #include #include typedef struct { int nom; int equipe; int position; int a_lecurie; //Cheval à l'écurie=1, sur le plateau=0 }CHEVAL; typedef struct { int couleur; // Vert=1, jaune=2, bleu=3, rouge=4 int nb_tours_joues; int nb_chevaux_a_lecurie; int score_precedent; }JOUEUR; CHEVAL creer_cheval(int equipe) { CHEVAL c; c.a_lecurie = 1; c.equipe = equipe; c.position; return c; } /* JOUEUR creer_joueur(int couleur) { JOUEUR j; j.couleur = couleur; j.nb_tours_joues = 0; j.score_dernier_de=1; int i; for(i=0;i<4;i++) j.chevaux[i] = creer_cheval(i,couleur); j.nb_chev_en_bank; printf("Joueur %d cree\n",couleur); return j; } */ CHEVAL Choisir_cheval(int equipe, CHEVAL c1,CHEVAL c2,CHEVAL c3,CHEVAL c4,CHEVAL c5,CHEVAL c6,CHEVAL c7,CHEVAL c8); int Deplacement_cheval(CHEVAL c, int plateau[15][15], int de); int lancerDe(int inf, int sup); void Afficher (int n,int matrice[n][n]); int main(void){ // Création du plateau int plateau[15][15]={ {300,300,300,300,300,300,33,34,35,1089,2089,3089,4089,400,400}, //300 = Ecurie lambda {300,300,300,300,300,300,32,401,36,400,400,400,400,400,400}, //400 = Ecurie Joueur 2 {300,300,300,300,300,300,31,402,37,400,400,400,400,400,400}, //500 = Ecurie sigma {300,300,300,300,300,300,30,403,38,400,400,400,400,400,400}, //200 = Ecurie Joueur 1 {300,300,300,300,300,300,29,404,39,400,400,400,400,400,400}, {300,300,300,300,300,300,28,405,40,400,400,400,400,400,400}, {21,22,23,24,25,26,27,406,41,42,43,44,45,46,47}, {20,301,302,303,304,305,306,99,506,505,504,503,502,501,48}, {19,18,17,16,15,14,13,206,55,54,53,52,51,50,49}, {200,200,200,200,200,200,12,205,56,500,500,500,500,500,500}, {200,200,200,200,200,200,11,204,57,500,500,500,500,500,500}, {200,200,200,200,200,200,10,203,58,500,500,500,500,500,500}, {200,200,200,200,200,200,9,202,59,500,500,500,500,500,500}, {200,200,200,200,200,200,8,201,60,500,500,500,500,500,500}, {200,200,1088,2088,3088,4088,7,62,61,500,500,500,500,500,500}, }; // Création des chevaux du joueur 1 CHEVAL c1; c1 = creer_cheval(1); c1.nom = plateau[14][2]; CHEVAL c2; c2 = creer_cheval(1); c2.nom = plateau[14][3]; CHEVAL c3; c3 = creer_cheval(1); c3.nom = plateau[14][4]; CHEVAL c4; c4 = creer_cheval(1); c4.nom = plateau[14][5]; // Création des chevaux du joueur 2 CHEVAL c5; c5 = creer_cheval(2); c5.nom = plateau[0][9]; CHEVAL c6; c6 = creer_cheval(2); c6.nom = plateau[0][10]; CHEVAL c7; c7 = creer_cheval(2); c7.nom = plateau[0][11]; CHEVAL c8; c8 = creer_cheval(2); c8.nom = plateau[0][12]; CHEVAL ctampon; // Main Afficher(15,plateau); char c; int i=0; int de=0; int numero_cheval; int compteur_chevaux = 0; while(1){ switch(i%2){ case 0 : printf("Tour du Joueur 1\n"); printf("Entrer pour jouer"); scanf("%c",&c); printf("Lancé de dé : %d\n",de=/*lancerDe(1,6)*/6); if(de==6){ if(compteur_chevaux ==0){ c1.position=7; plateau[14][6] = c1.nom; plateau[14][2] = 200; c1.a_lecurie = 0; Afficher(15,plateau); printf("Entrer pour continuer"); scanf("%c",&c); printf("Lancé de dé : %d\n",de=lancerDe(1,6)); Deplacement_cheval(c1,plateau,de); Afficher(15,plateau); } if(compteur_chevaux ==1 && plateau[14][6]==7){ c2.position=7; plateau[14][6] = c2.nom; plateau[14][3] = 200; Afficher(15,plateau); c2.a_lecurie = 0; printf("Entrer pour continuer"); scanf("%c",&c); printf("Lancé de dé : %d\n",de=lancerDe(1,6)); Deplacement_cheval(c2,plateau,de); Afficher(15,plateau); } if(compteur_chevaux ==2 && plateau[14][6]==7){ c3.position=7; plateau[14][6] = c3.nom; plateau[14][4] = 200; c3.a_lecurie = 0; Afficher(15,plateau); printf("Entrer pour continuer"); scanf("%c",&c); printf("Lancé de dé : %d\n",de=lancerDe(1,6)); Deplacement_cheval(c3,plateau,de); Afficher(15,plateau); } if(compteur_chevaux ==3 && plateau[14][6]==7){ c4.position=7; plateau[14][6] = c4.nom; plateau[14][5] = 200; c4.a_lecurie = 0; Afficher(15,plateau); printf("Entrer pour continuer\n"); scanf("%c",&c); printf("Lancé de dé : %d\n",de=lancerDe(1,6)); Deplacement_cheval(c4,plateau,de); Afficher(15,plateau); } compteur_chevaux ++; if(compteur_chevaux == 4){ printf("Lancé de dé : %d\n",de); Deplacement_cheval(Choisir_cheval(1,c1,c2,c3,c4,c5,c6,c7,c8),plateau,de); Afficher(15,plateau); printf("%d",plateau[8][2]); } } } i++; } return 0; } /*###############################################################################*/ /* Fonction pour afficher le plateau et gérer ses couleurs*/ void Afficher (int n,int matrice[n][n]){ int i,j; putchar('\n'); for (i=0;i=sup) return inf; resultat=rand()%(sup-inf+1)+inf; return resultat; } //################################################################################ /* Fonction déplacement du cheval */ int Deplacement_cheval(CHEVAL c, int plateau[15][15], int de){ //if (mouvement_Autorise(ligne_depart, colonne_depart, ligne_destination, colonne_destination, echiquier)==1){ int i,j,x; x=c.position; c.position += de; for(i=0;i<15;i++){ for(j=0;j<15;j++){ if(plateau[i][j]==c.nom) plateau[i][j]=x; if(plateau[i][j]==c.position) plateau[i][j]=c.nom; } } return plateau[15][15]; } //############################################################################### /* Fonction pour choisir un cheval */ CHEVAL Choisir_cheval(int equipe, CHEVAL c1,CHEVAL c2,CHEVAL c3,CHEVAL c4,CHEVAL c5,CHEVAL c6,CHEVAL c7,CHEVAL c8){ int numero_cheval; printf("Quel cheval voulez vous avancer (n° du cheval) ?"); scanf("%d",&numero_cheval); if(equipe==1){ if(numero_cheval==1) return c1; if(numero_cheval==2) return c2; if(numero_cheval==3) return c3; if(numero_cheval==4) return c4; } if(equipe==2){ if(numero_cheval==1) return c5; if(numero_cheval==2) return c6; if(numero_cheval==3) return c7; if(numero_cheval==4) return c8; } } //####################################################################################