bataille navale finale avec les codes fusionné
This commit is contained in:
parent
ea4b5ace5d
commit
a164a3eaa8
222
MaBatailleNavale.c
Normal file
222
MaBatailleNavale.c
Normal file
@ -0,0 +1,222 @@
|
||||
#include "biblioNavale.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
int main(int argc, char const *argv[])
|
||||
{
|
||||
/*Initialisation des "plateaux" des joueurs 1 et 2 (ici représenté par des tableaux 2 dimension)*/
|
||||
char Joueur1[10][10];
|
||||
char Joueur2[10][10];
|
||||
|
||||
/*Placement des navires des joueurs 1 et 2*/
|
||||
printf("Joueur 1 :\n");
|
||||
initPlateau(Joueur1);
|
||||
printf("Joueur 2 :\n");
|
||||
initPlateau(Joueur2);
|
||||
|
||||
int porteAvionJ1=5; /*Ces variables sont décrémentées de 1 a chaque fois que l'un des navires du joueur respectif*/
|
||||
int croiseurJ1=4; /*est touché afin de stopper la boucle si un joueur detuit tout les navires adverses*/
|
||||
int sousMarinJ1=3;
|
||||
int mousMarinJ1=3;
|
||||
int torpilleurJ1=2;
|
||||
|
||||
int porteAvionJ2=5;
|
||||
int croiseurJ2=4;
|
||||
int sousMarinJ2=3;
|
||||
int mousMarinJ2=3;
|
||||
int torpilleurJ2=2;
|
||||
|
||||
int naviresRestantJ1=17;
|
||||
int naviresRestantJ2=17;
|
||||
|
||||
int resultatTour=0; /*Cette variable contient le retour de la fonction jouerJoueur*/
|
||||
|
||||
/*Debut de la boucle*/
|
||||
while((naviresRestantJ1>0)&&(naviresRestantJ2>0)) /*La condition verifie que l'un des deux joueur na pas abbatue tous les navires du joueur adverse*/
|
||||
{
|
||||
/*Boucle Joueur 1*/
|
||||
do
|
||||
{
|
||||
/*Boucle choix de case*/
|
||||
do
|
||||
{
|
||||
if ((resultatTour==-3)||(resultatTour==-2)) /*Dans le cas ou on repasse dans la boucle a cause d'une mauvaise entrée utilisateur*/
|
||||
{
|
||||
printf("Mauvais coup. Rejouez.\n");
|
||||
}
|
||||
afficheduo(Joueur1,Joueur2);
|
||||
printf("Le joueur 1 joue.\n");
|
||||
resultatTour=jouerJoueur(Joueur2);
|
||||
}while((resultatTour==-3)||(resultatTour==-2)); /*Reste dans la boucle tant que l'utilisateur n'a pas rentrer des valeur valide*/
|
||||
/*Tous les prints selon la case choisie précédemment*/
|
||||
switch(resultatTour)
|
||||
{
|
||||
/*La case touché est un porte avion*/
|
||||
case 0:
|
||||
porteAvionJ2--; /*decrémente le compte de case restantes du navire respectif*/
|
||||
naviresRestantJ2=porteAvionJ2+croiseurJ2+sousMarinJ2+mousMarinJ2+torpilleurJ2; /*Mets a jours le total de case contenant un navire restant au joueur*/
|
||||
if (porteAvionJ2==0)
|
||||
{
|
||||
printf("Touché !\nTu as coulé %s\n",navire(resultatTour));
|
||||
}else
|
||||
{
|
||||
printf("Touché !\n");
|
||||
}
|
||||
break;
|
||||
/*La case touché est un croiseur*/
|
||||
case 1:
|
||||
croiseurJ2--;
|
||||
naviresRestantJ2=porteAvionJ2+croiseurJ2+sousMarinJ2+mousMarinJ2+torpilleurJ2;
|
||||
if (croiseurJ2==0)
|
||||
{
|
||||
printf("Touché !\nTu as coulé %s\n",navire(resultatTour));
|
||||
}else
|
||||
{
|
||||
printf("Touché !\n");
|
||||
}
|
||||
break;
|
||||
/*La case touché est un sous-marin*/
|
||||
case 2:
|
||||
sousMarinJ2--;
|
||||
naviresRestantJ2=porteAvionJ2+croiseurJ2+sousMarinJ2+mousMarinJ2+torpilleurJ2;
|
||||
if (sousMarinJ2==0)
|
||||
{
|
||||
printf("Touché !\nTu as coulé %s\n",navire(resultatTour));
|
||||
}else
|
||||
{
|
||||
printf("Touché !\n");
|
||||
}
|
||||
break;
|
||||
/*La case touché est un mous-marin*/
|
||||
case 3:
|
||||
mousMarinJ2--;
|
||||
naviresRestantJ2=porteAvionJ2+croiseurJ2+sousMarinJ2+mousMarinJ2+torpilleurJ2;
|
||||
if (mousMarinJ2==0)
|
||||
{
|
||||
printf("Touché !\nTu as coulé %s\n",navire(resultatTour));
|
||||
}else
|
||||
{
|
||||
printf("Touché !\n");
|
||||
}
|
||||
break;
|
||||
/*La case touché est un torpilleur*/
|
||||
case 4:
|
||||
torpilleurJ2--;
|
||||
naviresRestantJ2=porteAvionJ2+croiseurJ2+sousMarinJ2+mousMarinJ2+torpilleurJ2;
|
||||
if (torpilleurJ2==0)
|
||||
{
|
||||
printf("Touché !\nTu as coulé %s\n",navire(resultatTour));
|
||||
}else
|
||||
{
|
||||
printf("Touché !\n");
|
||||
}
|
||||
break;
|
||||
/*La case touché est vide*/
|
||||
default:
|
||||
printf("A l'eau !\n");
|
||||
}
|
||||
if (!((naviresRestantJ1>0)&&(naviresRestantJ2>0))) /*Quitte la boucle si l'un des deux joueur a gagné*/
|
||||
{
|
||||
break;
|
||||
}
|
||||
}while(resultatTour!=-1);
|
||||
|
||||
resultatTour=0;
|
||||
if (!((naviresRestantJ1>0)&&(naviresRestantJ2>0))) /*Idem*/
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
/*Boucle du Joueur 2*/
|
||||
do /*Boucle du Joueur 2 idem que le 1 mais les variables sont modifiée*/
|
||||
{
|
||||
do
|
||||
{
|
||||
if ((resultatTour==-3)||(resultatTour==-2))
|
||||
{
|
||||
printf("Mauvais coup. Rejouez.\n");
|
||||
}
|
||||
afficheduo(Joueur1,Joueur2);
|
||||
printf("Le joueur 2 joue.\n");
|
||||
resultatTour=jouerJoueur(Joueur1);
|
||||
}while((resultatTour==-3)||(resultatTour==-2));
|
||||
switch(resultatTour)
|
||||
{
|
||||
case 0:
|
||||
porteAvionJ1--;
|
||||
naviresRestantJ1=porteAvionJ1+croiseurJ1+sousMarinJ1+mousMarinJ1+torpilleurJ1;
|
||||
if (porteAvionJ1==0)
|
||||
{
|
||||
printf("Touché !\nTu as coulé %s\n",navire(resultatTour));
|
||||
}else
|
||||
{
|
||||
printf("Touché !\n");
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
croiseurJ1--;
|
||||
naviresRestantJ1=porteAvionJ1+croiseurJ1+sousMarinJ1+mousMarinJ1+torpilleurJ1;
|
||||
if (croiseurJ1==0)
|
||||
{
|
||||
printf("Touché !\nTu as coulé %s\n",navire(resultatTour));
|
||||
}else
|
||||
{
|
||||
printf("Touché !\n");
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
sousMarinJ1--;
|
||||
naviresRestantJ1=porteAvionJ1+croiseurJ1+sousMarinJ1+mousMarinJ1+torpilleurJ1;
|
||||
if (sousMarinJ1==0)
|
||||
{
|
||||
printf("Touché !\nTu as coulé %s\n",navire(resultatTour));
|
||||
}else
|
||||
{
|
||||
printf("Touché !\n");
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
mousMarinJ1--;
|
||||
naviresRestantJ1=porteAvionJ1+croiseurJ1+sousMarinJ1+mousMarinJ1+torpilleurJ1;
|
||||
if (mousMarinJ1==0)
|
||||
{
|
||||
printf("Touché !\nTu as coulé %s\n",navire(resultatTour));
|
||||
}else
|
||||
{
|
||||
printf("Touché !\n");
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
torpilleurJ1--;
|
||||
naviresRestantJ1=porteAvionJ1+croiseurJ1+sousMarinJ1+mousMarinJ1+torpilleurJ1;
|
||||
if (torpilleurJ1==0)
|
||||
{
|
||||
printf("Touché !\nTu as coulé %s\n",navire(resultatTour));
|
||||
}else
|
||||
{
|
||||
printf("Touché !\n");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
printf("A l'eau !\n");
|
||||
}
|
||||
if (!((naviresRestantJ1>0)&&(naviresRestantJ2>0)))
|
||||
{
|
||||
break;
|
||||
}
|
||||
}while(resultatTour!=-1);
|
||||
}
|
||||
|
||||
if (naviresRestantJ1==0)
|
||||
{
|
||||
printf("Le joueur 2 a gagné !\n");
|
||||
}
|
||||
if (naviresRestantJ2==0)
|
||||
{
|
||||
printf("le joueur 1 a gagné !\n");
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user