SAE_DEV1.1/BatailleNavale.c

266 lines
5.3 KiB
C
Raw Normal View History

2024-12-16 12:48:43 +01:00
#include"biblioNavale.h"
#include<stdlib.h>
#include<stdio.h>
2024-12-17 22:26:10 +01:00
#include<time.h>
2024-12-16 12:48:43 +01:00
/*commande pour compiler :"gcc BatailleNavale.c -o BatailleNavale.o biblioNavale.o
"*/
int main(int argc, char const *argv[]){
2024-12-17 22:26:10 +01:00
/*création de toutes les variables utiles au programme et rand pour le
placement aléatoire des bateaux.*/
srand(time(NULL));
2024-12-16 12:48:43 +01:00
char p1 [10][10];
char p2 [10][10];
2024-12-17 22:26:10 +01:00
int victoirep1=5;
int victoirep2=5;
int a1=5;
int a2=5;
int c1=4;
int c2=4;
int s1=3;
int s2=3;
int m1=3;
int m2=3;
int t1=2;
int t2=2;
int tour=0;
/*Tout d'abord on va initialiser les plateaux des 2 joueurs.
On fait une boucle qui permet de recommencer l'initialisation si la
verification renvoi une erreur*/
2024-12-16 12:48:43 +01:00
while(verif(p1)==0||verif(p2)==0){
printf("Joueur 1 :\n");
initPlateau(p1);
printf("Joueur 2 :\n");
initPlateau(p2);
2024-12-17 22:26:10 +01:00
}
/*Affichage*/
for (int i = 0; i < 60; i++)
{printf("-");}
printf("\n");
afficheduo(p1,p2);
printf("La partie peut commencer !\n");
/*Affichage*/
/*Boucle de la partie entière*/
while(victoirep1!=0 && victoirep2!=0){
if(victoirep1!=0 && victoirep2!=0){
tour=0;
}
/*Boucle du tour de joueur 1*/
while(tour<1){
if(victoirep2==0){break;}
printf("Au tour du joueur 1 :\n");
int tir=jouerJoueur(p1);
/*si le tir a rencontré une erreur*/
if(tir==-2||tir==-3){printf("veuillez tirer dans le plateau :)\n");}
/*si le tir ne touche aucun bateau*/
if(tir==-1){
for (int i = 0; i < 60; i++){
printf("-");
}
printf("\n");
afficheduo(p1,p2);
printf("À l'eau !\n");
tour=tour+1;
}
/*si le tir a touché le porte avion*/
if(tir==0 && a1>=0){
for (int i = 0; i < 60; i++){
printf("-");
}
printf("\n");
afficheduo(p1,p2);
printf("Touché\n");
a1=a1-1;
}
if (tir==0&&a1<=0){
victoirep1=victoirep1-1;
printf("Coulé !\n");
if(victoirep1==0){break;}
}
/*si le tir a touché le croiseur*/
if(tir==1 && c1>=0){
for (int i = 0; i < 60; i++){
printf("-");
}
printf("\n");
afficheduo(p1,p2);
printf("Touché\n");
c1=c1-1;
}
if (tir==1 && c1<=0){
printf("Coulé !\n");
victoirep1=victoirep1-1;
if(victoirep1==0){break;}
}
/*si le tir a touché le sous marin*/
if(tir==2 && s1>=0){
for (int i = 0; i < 60; i++){
printf("-");
}
printf("\n");
afficheduo(p1,p2);
printf("Touché\n");
s1=s1-1;
}
if (tir==2 && s1<=0){
printf("Coulé !\n");
victoirep1=victoirep1-1;
if(victoirep1==0){break;}
}
/*si le tir a touché le mous sarin*/
if(tir==3 && m1>=0){
for (int i = 0; i < 60; i++){
printf("-");
}
printf("\n");
afficheduo(p1,p2);
printf("Touché\n");
m1=m1-1;
}
if (tir==3 && m1<=0){
printf("Coulé !\n");
victoirep1=victoirep1-1;
if(victoirep1==0){break;}
}
/*si le tir a touché le torpilleur*/
if(tir==4 && t1>=0){
for (int i = 0; i < 60; i++){
printf("-");
}
printf("\n");
afficheduo(p1,p2);
printf("Touché\n");
t1=t1-1;
}
if (tir==4 && t1<=0){
printf("Coulé !\n");
victoirep1=victoirep1-1;
if(victoirep1==0){break;}
}
}
if(victoirep1!=0 && victoirep2!=0){
tour=0;
}
/*Boucle du tour de joueur 2*/
while(tour<1){
if(victoirep1==0){break;}
printf("Au tour du joueur 2 :\n");
int tir=jouerJoueur(p2);
/*si le tir a rencontré une erreur*/
if(tir==-2||tir==-3){printf("veuillez tirer dans le plateau :)\n");}
/*si le tir ne touche aucun bateau*/
if(tir==-1){
for (int i = 0; i < 60; i++){
printf("-");
}
printf("\n");
afficheduo(p1,p2);
printf("À l'eau !\n");
tour=tour+1;
}
/*si le tir a touché le porte avion*/
if(tir==0 && a2>=0){
for (int i = 0; i < 60; i++){
printf("-");
}
printf("\n");
afficheduo(p1,p2);
printf("Touché\n");
a2=a2-1;
}
if (tir==0 && a2<=0){
printf("Coulé !\n");
victoirep2=victoirep2-1;
if(victoirep2==0){break;}
}
/*si le tir a touché le croiseur*/
if(tir==1 && c2>=0){
for (int i = 0; i < 60; i++){
printf("-");
}
printf("\n");
afficheduo(p1,p2);
printf("Touché\n");
c2=c2-1;
}
if (tir==1 && c2<=0){
printf("Coulé !\n");
victoirep2=victoirep2-1;
if(victoirep2==0){break;}
}
/*si le tir a touché le sous marin*/
if(tir==2 && s2>=0){
for (int i = 0; i < 60; i++){
printf("-");
}
printf("\n");
afficheduo(p1,p2);
printf("Touché\n");
s2=s2-1;
}
if (tir==2 && s1<=0){
printf("Coulé !\n");
victoirep2=victoirep2-1;
if(victoirep2==0){break;}
}
/*si le tir a touché le mous sarin*/
if(tir==3 && m2>=0){
for (int i = 0; i < 60; i++){
printf("-");
}
printf("\n");
afficheduo(p1,p2);
printf("Touché\n");
m2=m2-1;
}
if (tir==3 && m2<=0){
printf("Coulé !\n");
victoirep2=victoirep2-1;
if(victoirep2==0){break;}
}
/*si le tir a touché le torpilleur*/
if(tir==4 && t2>=0){
for (int i = 0; i < 60; i++){
printf("-");
}
printf("\n");
afficheduo(p1,p2);
printf("Touché\n");
t2=t2-1;
}
if (tir==4 && t2<=0){
printf("Coulé !\n");
victoirep2=victoirep2-1;
if(victoirep2==0){break;}
}
}
}
/*fin de la boucle de la partie entière donc il y a désormais un vainqueur
on affiche qui a remporté la partie avec les conditions suivantes*/
if(victoirep1==0){
printf("Joueur 1 a gagné la partie !\nBien joué !\n");
}
if(victoirep2==0){
printf("Joueur 2 a gagné la partie !\nBien joué !\n");
}
2024-12-16 12:48:43 +01:00
return 0;
}