bataille navale finale avec les codes fusionné
This commit is contained in:
		
							
								
								
									
										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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user