2023-01-06 00:55:08 +01:00
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
int verif2 ( char tab [ ] [ 10 ] ) {
int v = 0 ;
int i ;
int j ;
for ( i = 0 ; i < 10 ; i + + ) {
for ( j = 0 ; j < 10 ; j + + ) {
2023-01-06 16:27:16 +01:00
if ( tab [ i ] [ j ] ! = ' ' ) { //On compte le nombre de case qui ne sont pas des espaces
2023-01-06 00:55:08 +01:00
v + + ;
}
}
2023-01-06 16:27:16 +01:00
} if ( v = = 17 ) { //Si il est égal à 17 on return 1
2023-01-06 00:55:08 +01:00
return 1 ;
} return 0 ;
}
2023-01-06 16:27:16 +01:00
void ajoutNavireAleatoire2 ( char tab [ ] [ 10 ] , char b , int t ) { //Fonction permettant d'ajouter les navires sur le plateau de façon aléatoire
2023-01-06 00:55:08 +01:00
srand ( time ( NULL ) ) ;
2023-01-06 16:27:16 +01:00
int o = ( rand ( ) % 2 ) ; //On définit l'orientation de façon aléatoire
2023-01-06 00:55:08 +01:00
int x ;
int y ;
int i ;
int j ;
int v = 0 ;
int w = 0 ;
if ( o = = 0 ) {
while ( v = = 0 ) {
srand ( time ( NULL ) ) ;
w = 0 ;
2023-01-06 16:27:16 +01:00
x = ( rand ( ) % ( 10 - t ) ) ; //On définit x et y de manière aléatoire
2023-01-06 00:55:08 +01:00
y = ( rand ( ) % 10 ) ;
for ( i = x ; i < x + t ; i + + ) {
2023-01-06 16:27:16 +01:00
if ( tab [ i ] [ y ] ! = ' ' ) { //On vérifie si les cases sont vide
2023-01-06 00:55:08 +01:00
w = 1 ;
}
} if ( w = = 0 ) {
for ( i = x ; i < x + t ; i + + ) {
tab [ i ] [ y ] = b ;
v = 1 ;
}
}
}
} else {
while ( v = = 0 ) {
srand ( time ( NULL ) ) ;
w = 0 ;
2023-01-06 16:27:16 +01:00
x = ( rand ( ) % 10 ) ; //On définit x et y de manière aléatoire
2023-01-06 00:55:08 +01:00
y = ( rand ( ) % ( 10 - t ) ) ;
for ( j = y ; j < y + t ; j + + ) {
2023-01-06 16:27:16 +01:00
if ( tab [ x ] [ j ] ! = ' ' ) { //On vérifie si les cases sont vide
2023-01-06 00:55:08 +01:00
w = 1 ;
}
} if ( w = = 0 ) {
for ( j = y ; j < y + t ; j + + ) {
tab [ x ] [ j ] = b ;
v = 1 ;
}
}
}
}
}
2023-01-06 16:27:16 +01:00
void affiche2 ( char t [ ] [ 10 ] ) { //Affichage d'un tableau seul
2023-01-06 00:55:08 +01:00
int i ;
int j ;
char c = ' A ' ;
2023-01-06 16:27:16 +01:00
printf ( " _|0|1|2|3|4|5|6|7|8|9| \n " ) ; //Permet d'afficher la colonne du tableau
2023-01-06 00:55:08 +01:00
for ( i = 0 ; i < 10 ; i + + ) {
printf ( " %c| " , c ) ;
for ( j = 0 ; j < 10 ; j + + ) {
printf ( " %c| " , t [ i ] [ j ] ) ;
} c + + ;
putchar ( ' \n ' ) ;
} putchar ( ' \n ' ) ;
}
2023-01-06 16:27:16 +01:00
void afficheduo2 ( char t [ ] [ 10 ] , char p [ ] [ 10 ] ) { //Affichage des deux tables cote a cote
2023-01-06 00:55:08 +01:00
int i ;
int j ;
int h ;
char c = ' A ' ;
2023-01-06 16:27:16 +01:00
printf ( " _|0|1|2|3|4|5|6|7|8|9| _|0|1|2|3|4|5|6|7|8|9| \n " ) ; //Permet d'afficher les colonnes des deux tableaux
2023-01-06 00:55:08 +01:00
for ( i = 0 ; i < 10 ; i + + ) {
printf ( " %c| " , c ) ;
for ( j = 0 ; j < 10 ; j + + ) {
if ( t [ i ] [ j ] ! = ' x ' & & t [ i ] [ j ] ! = ' . ' ) {
2023-01-06 16:27:16 +01:00
printf ( " | " ) ; //Permet d'afficher les barres : | nécéssaire aux colonnes
2023-01-06 00:55:08 +01:00
} else {
printf ( " %c| " , t [ i ] [ j ] ) ;
}
} printf ( " %c| " , c ) ;
for ( h = 0 ; h < 10 ; h + + ) {
if ( p [ i ] [ h ] ! = ' x ' & & p [ i ] [ h ] ! = ' . ' ) {
printf ( " | " ) ;
} else {
printf ( " %c| " , p [ i ] [ h ] ) ;
} } c + + ;
putchar ( ' \n ' ) ;
} putchar ( ' \n ' ) ;
}
2023-01-06 16:27:16 +01:00
void initPlateau2 ( char plat [ ] [ 10 ] ) { //Création des plateaux avec le choix des emplacments des plateaux
2023-01-06 00:55:08 +01:00
char c ;
char o ;
int a ;
char cord ;
int coord ;
int i = 0 ;
int j = 0 ;
int v = 0 ;
int w = 0 ;
2023-01-06 16:27:16 +01:00
printf ( " Voulez vous placez vos navires à la (M)ain ou de manière (A)léatoire ? \n \n " ) ; //Demande de la façon dont le joueur veut placer les navires
scanf ( " %c " , & c ) ;
while ( c ! = ' M ' & & c ! = ' A ' ) { //Tant que la réponse n'est pas M ou A
scanf ( " %c " , & c ) ; //ALors on attend
} if ( c = = ' A ' ) { //Si la réponse est A alors
2023-01-06 00:55:08 +01:00
for ( i = 0 ; i < 10 ; i + + ) {
for ( j = 0 ; j < 10 ; j + + ) {
plat [ i ] [ j ] = ' ' ;
2023-01-06 16:27:16 +01:00
} //On lance le programme "ajoutNavireAleatoire2"
} ajoutNavireAleatoire2 ( plat , ' A ' , 5 ) ;
2023-01-06 00:55:08 +01:00
ajoutNavireAleatoire2 ( plat , ' C ' , 4 ) ;
ajoutNavireAleatoire2 ( plat , ' S ' , 3 ) ;
ajoutNavireAleatoire2 ( plat , ' M ' , 3 ) ;
ajoutNavireAleatoire2 ( plat , ' T ' , 2 ) ;
2023-01-06 16:27:16 +01:00
printf ( " Les navires ont été placé de manière aléatoire \n \n " ) ; //On annonce que les navires sont placés
} else { //Si la réponse n'est pas A mais M alors
2023-01-06 00:55:08 +01:00
printf ( " Vous avez choisis de placer vos navires. \n \n " ) ;
printf ( " Veuillez renseignez l'orientation du navire ((h)orizontal ou (v)ertical) ainsi que la coordonnée la plus au nord-ouest de la manière suivante: h,A2 \n \n " ) ;
for ( i = 0 ; i < 10 ; i + + ) {
for ( j = 0 ; j < 10 ; j + + ) {
plat [ i ] [ j ] = ' ' ;
}
2023-01-06 16:27:16 +01:00
} printf ( " Placez votre Porte-(A)vion (longueur 5) \n \n " ) ; //On demande au joueur de placer le Porte-Avion
while ( v = = 0 ) { biblioNavale2 . c
2023-01-06 00:55:08 +01:00
while ( ( a = getchar ( ) ) ! = ' \n ' & & c ! = EOF ) { }
affiche2 ( plat ) ;
w = 0 ;
2023-01-06 16:27:16 +01:00
scanf ( " %c,%c%d " , & o , & cord , & coord ) ; //On récupère l'orientation, la ligne puis la colone
if ( o = = ' h ' ) { //Si l'orientation est horizontale
i = cord - ' A ' ;
if ( i > 10 | | i < 0 ) { //Si la ligne choisi n'est pas entre A et I
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
} else { //Sinon on regarde la colone
j = coord ;
if ( j + 5 > 10 | | j < 0 ) { //Et si la colone choisi est 5 ou plus
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
} else {
2023-01-06 16:27:16 +01:00
for ( j = coord ; j < coord + 5 ; j + + ) { //On regarde si les 5 cases après celle choisi sont libres
2023-01-06 00:55:08 +01:00
if ( plat [ i ] [ j ] ! = ' ' ) {
w = 1 ;
}
} if ( w = = 0 ) {
for ( j = coord ; j < coord + 5 ; j + + ) {
2023-01-06 16:27:16 +01:00
plat [ i ] [ j ] = ' A ' ;
v = 1 ; //Si elles sont libres alors on enregistre les coordonées
2023-01-06 00:55:08 +01:00
}
} else {
2023-01-06 16:27:16 +01:00
printf ( " Navire empiète sur un autre \n \n " ) ; //Sinon on annonce que le bateau empiète sur un autre bateau
2023-01-06 00:55:08 +01:00
}
}
2023-01-06 16:27:16 +01:00
}
} else {
if ( o = = ' v ' ) { //Si l'orientation est Verticale
i = cord - ' A ' ;
if ( i + 5 > 10 | | i < 0 ) { //Si la ligne choisi ne permet pas au bateau de rentrer complétement sur le plateau
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
} else {
j = coord ;
2023-01-06 16:27:16 +01:00
if ( j > 10 | | j < 0 ) { //Si la colonne choisi ne permet pas au bateau de rentrer complétement sur le plateau
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
} else {
for ( i = cord - ' A ' ; i < cord - ' A ' + 5 ; i + + ) {
if ( plat [ i ] [ j ] ! = ' ' ) {
w = 1 ;
}
} if ( w = = 0 ) {
for ( i = cord - ' A ' ; i < cord - ' A ' + 5 ; i + + ) {
plat [ i ] [ j ] = ' A ' ;
v = 1 ;
2023-01-06 16:27:16 +01:00
} //Si elles sont libres alors on enregistre les coordonées
2023-01-06 00:55:08 +01:00
} else {
2023-01-06 16:27:16 +01:00
printf ( " Navire empiète sur un autre \n \n " ) ; //Sinon on annonce que le bateau empiète sur un autre bateau
2023-01-06 00:55:08 +01:00
}
}
}
} else {
2023-01-06 16:27:16 +01:00
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
}
}
2023-01-06 16:27:16 +01:00
} printf ( " Placez votre (C)roiseur (longueur 4) \n \n " ) ; //On demande au joueur de placer le Croiseur
2023-01-06 00:55:08 +01:00
v = 0 ;
while ( v = = 0 ) {
while ( ( a = getchar ( ) ) ! = ' \n ' & & c ! = EOF ) { }
affiche2 ( plat ) ;
w = 0 ;
scanf ( " %c,%c%d " , & o , & cord , & coord ) ;
2023-01-06 16:27:16 +01:00
if ( o = = ' h ' ) { //Si l'orientation est horizontale
2023-01-06 00:55:08 +01:00
i = cord - ' A ' ;
2023-01-06 16:27:16 +01:00
if ( i > 10 | | i < 0 ) { //Si la ligne choisi n'est pas entre A et I
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
} else { //Sinon on regarde la colone
2023-01-06 00:55:08 +01:00
j = coord ;
2023-01-06 16:27:16 +01:00
if ( j + 4 > 10 | | j < 0 ) { //Et si la colone choisi est 8 ou plus
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
} else {
for ( j = coord ; j < coord + 4 ; j + + ) {
if ( plat [ i ] [ j ] ! = ' ' ) {
2023-01-06 16:27:16 +01:00
w = 1 ; //Si elles sont libres alors on enregistre les coordonées
2023-01-06 00:55:08 +01:00
}
} if ( w = = 0 ) {
for ( j = coord ; j < coord + 4 ; j + + ) {
plat [ i ] [ j ] = ' C ' ;
v = 1 ;
2023-01-06 16:27:16 +01:00
} //Si elles sont libres alors on enregistre les coordonées
2023-01-06 00:55:08 +01:00
} else {
2023-01-06 16:27:16 +01:00
printf ( " Navire empiète sur un autre \n \n " ) ; //Sinon on annonce que le bateau empiète sur un autre bateau
2023-01-06 00:55:08 +01:00
}
}
}
} else {
2023-01-06 16:27:16 +01:00
if ( o = = ' v ' ) { //Si l'orientation est Verticale
i = cord - ' A ' ;
if ( i + 4 > 10 | | i < 0 ) { //Si la ligne choisi ne permet pas au bateau de rentrer complétement sur le plateau
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
} else {
j = coord ;
2023-01-06 16:27:16 +01:00
if ( j > 10 | | j < 0 ) { //Si la colonne choisi ne permet pas au bateau de rentrer complétement sur le plateau
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
} else {
for ( i = cord - ' A ' ; i < cord - ' A ' + 4 ; i + + ) {
if ( plat [ i ] [ j ] ! = ' ' ) {
w = 1 ;
}
} if ( w = = 0 ) {
for ( i = cord - ' A ' ; i < cord - ' A ' + 4 ; i + + ) {
plat [ i ] [ j ] = ' C ' ;
2023-01-06 16:27:16 +01:00
v = 1 ; //Si elles sont libres alors on enregistre les coordonées
2023-01-06 00:55:08 +01:00
}
} else {
2023-01-06 16:27:16 +01:00
printf ( " Navire empiète sur un autre \n \n " ) ; //Sinon on annonce que le bateau empiète sur un autre bateau
2023-01-06 00:55:08 +01:00
}
}
}
} else {
2023-01-06 16:27:16 +01:00
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
}
}
2023-01-06 16:27:16 +01:00
} printf ( " Placez votre (S)ous-marin (longueur 3) \n \n " ) ; //On demande au joueur de placer le SOus-marin
2023-01-06 00:55:08 +01:00
v = 0 ;
while ( v = = 0 ) {
while ( ( a = getchar ( ) ) ! = ' \n ' & & c ! = EOF ) { }
affiche2 ( plat ) ;
w = 0 ;
scanf ( " %c,%c%d " , & o , & cord , & coord ) ;
2023-01-06 16:27:16 +01:00
if ( o = = ' h ' ) { //Si l'orientation est horizontale
2023-01-06 00:55:08 +01:00
i = cord - ' A ' ;
2023-01-06 16:27:16 +01:00
if ( i > 10 | | i < 0 ) { //Si la ligne choisi n'est pas entre A et I
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
} else {
2023-01-06 16:27:16 +01:00
j = coord ; //Sinon on regarde la colone//Et si la colone choisi est 5 ou plus
if ( j + 3 > 10 | | j < 0 ) { //Et si la colone choisi est 7 ou plus
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
} else {
for ( j = coord ; j < coord + 3 ; j + + ) {
if ( plat [ i ] [ j ] ! = ' ' ) {
w = 1 ;
}
} if ( w = = 0 ) {
for ( j = coord ; j < coord + 3 ; j + + ) {
plat [ i ] [ j ] = ' S ' ;
v = 1 ;
2023-01-06 16:27:16 +01:00
} //Si elles sont libres alors on enregistre les coordonées
2023-01-06 00:55:08 +01:00
} else {
2023-01-06 16:27:16 +01:00
printf ( " Navire empiète sur un autre \n \n " ) ; //Sinon on annonce que le bateau empiète sur un autre bateau
2023-01-06 00:55:08 +01:00
}
}
}
} else {
2023-01-06 16:27:16 +01:00
if ( o = = ' v ' ) { //Si l'orientation est Verticale
2023-01-06 00:55:08 +01:00
i = cord - ' A ' ;
2023-01-06 16:27:16 +01:00
if ( i + 3 > 10 | | i < 0 ) { //Si la ligne choisi ne permet pas au bateau de rentrer complétement sur le plateau
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
} else {
j = coord ;
2023-01-06 16:27:16 +01:00
if ( j > 10 | | j < 0 ) { //Si la colonne choisi ne permet pas au bateau de rentrer complétement sur le plateau
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
} else {
for ( i = cord - ' A ' ; i < cord - ' A ' + 3 ; i + + ) {
if ( plat [ i ] [ j ] ! = ' ' ) {
w = 1 ;
}
} if ( w = = 0 ) {
for ( i = cord - ' A ' ; i < cord - ' A ' + 3 ; i + + ) {
plat [ i ] [ j ] = ' S ' ;
v = 1 ;
2023-01-06 16:27:16 +01:00
} //Si elles sont libres alors on enregistre les coordonées
2023-01-06 00:55:08 +01:00
} else {
2023-01-06 16:27:16 +01:00
printf ( " Navire empiète sur un autre \n \n " ) ; //Sinon on annonce que le bateau empiète sur un autre bateau
2023-01-06 00:55:08 +01:00
}
}
}
} else {
2023-01-06 16:27:16 +01:00
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
}
}
2023-01-06 16:27:16 +01:00
} printf ( " Placez votre (M)arin-sous (longueur 3) \n \n " ) ; //On demande au joueur de placer le Marin-Sous
2023-01-06 00:55:08 +01:00
v = 0 ;
while ( v = = 0 ) {
while ( ( a = getchar ( ) ) ! = ' \n ' & & c ! = EOF ) { }
affiche2 ( plat ) ;
2023-01-06 16:27:16 +01:00
w = 0 ;
2023-01-06 00:55:08 +01:00
scanf ( " %c,%c%d " , & o , & cord , & coord ) ;
2023-01-06 16:27:16 +01:00
if ( o = = ' h ' ) { //Si l'orientation est horizontale
2023-01-06 00:55:08 +01:00
i = cord - ' A ' ;
2023-01-06 16:27:16 +01:00
if ( i > 10 | | i < 0 ) { //Si la ligne choisi n'est pas entre A et I
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
} else {
2023-01-06 16:27:16 +01:00
j = coord ; //Sinon on regarde la colone
if ( j + 3 > 10 | | j < 0 ) { //Et si la colone choisi est 7 ou plus
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
} else {
for ( j = coord ; j < coord + 3 ; j + + ) {
if ( plat [ i ] [ j ] ! = ' ' ) {
w = 1 ;
}
} if ( w = = 0 ) {
for ( j = coord ; j < coord + 3 ; j + + ) {
plat [ i ] [ j ] = ' M ' ;
v = 1 ;
2023-01-06 16:27:16 +01:00
} //Si elles sont libres alors on enregistre les coordonées
2023-01-06 00:55:08 +01:00
} else {
2023-01-06 16:27:16 +01:00
printf ( " Navire empiète sur un autre \n \n " ) ; //Sinon on annonce que le bateau empiète sur un autre bateau
2023-01-06 00:55:08 +01:00
}
}
}
} else {
2023-01-06 16:27:16 +01:00
if ( o = = ' v ' ) { //Si l'orientation est Verticale
2023-01-06 00:55:08 +01:00
i = cord - ' A ' ;
2023-01-06 16:27:16 +01:00
if ( i + 3 > 10 | | i < 0 ) { //Si la ligne choisi ne permet pas au bateau de rentrer complétement sur le plateau
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
} else {
j = coord ;
2023-01-06 16:27:16 +01:00
if ( j > 10 | | j < 0 ) { //Si la colonne choisi ne permet pas au bateau de rentrer complétement sur le plateau
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
} else {
for ( i = cord - ' A ' ; i < cord - ' A ' + 3 ; i + + ) {
if ( plat [ i ] [ j ] ! = ' ' ) {
w = 1 ;
}
} if ( w = = 0 ) {
for ( i = cord - ' A ' ; i < cord - ' A ' + 3 ; i + + ) {
plat [ i ] [ j ] = ' M ' ;
v = 1 ;
2023-01-06 16:27:16 +01:00
} //Si elles sont libres alors on enregistre les coordonées
2023-01-06 00:55:08 +01:00
} else {
2023-01-06 16:27:16 +01:00
printf ( " Navire empiète sur un autre \n \n " ) ; //Sinon on annonce que le bateau empiète sur un autre bateau
2023-01-06 00:55:08 +01:00
}
}
}
} else {
2023-01-06 16:27:16 +01:00
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
}
}
2023-01-06 16:27:16 +01:00
} printf ( " Placez votre (T)orpilleur (longueur 2) \n \n " ) ; //On demande au joueur de placer le Torpilleur
2023-01-06 00:55:08 +01:00
v = 0 ;
while ( v = = 0 ) {
while ( ( a = getchar ( ) ) ! = ' \n ' & & c ! = EOF ) { }
affiche2 ( plat ) ;
w = 0 ;
scanf ( " %c,%c%d " , & o , & cord , & coord ) ;
2023-01-06 16:27:16 +01:00
if ( o = = ' h ' ) { //Si l'orientation est horizontale
2023-01-06 00:55:08 +01:00
i = cord - ' A ' ;
2023-01-06 16:27:16 +01:00
if ( i > 10 | | i < 0 ) { //Si la ligne choisi n'est pas entre A et I
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
} else {
2023-01-06 16:27:16 +01:00
j = coord ; //Sinon on regarde la colone
if ( j + 2 > 10 | | j < 0 ) { //Et si la colone choisi est 8 ou plus
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
} else {
for ( j = coord ; j < coord + 2 ; j + + ) {
if ( plat [ i ] [ j ] ! = ' ' ) {
w = 1 ;
}
} if ( w = = 0 ) {
for ( j = coord ; j < coord + 2 ; j + + ) {
plat [ i ] [ j ] = ' T ' ;
v = 1 ;
2023-01-06 16:27:16 +01:00
} //Si elles sont libres alors on enregistre les coordonées
2023-01-06 00:55:08 +01:00
} else {
2023-01-06 16:27:16 +01:00
printf ( " Navire empiète sur un autre \n \n " ) ; //Sinon on annonce que le bateau empiète sur un autre bateau
2023-01-06 00:55:08 +01:00
}
}
}
} else {
2023-01-06 16:27:16 +01:00
if ( o = = ' v ' ) { //Si l'orientation est Verticale
2023-01-06 00:55:08 +01:00
i = cord - ' A ' ;
if ( i + 2 > 10 | | i < 0 ) {
2023-01-06 16:27:16 +01:00
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
} else {
j = coord ;
2023-01-06 16:27:16 +01:00
if ( j > 10 | | j < 0 ) { //Si la ligne choisi ne permet pas au bateau de rentrer complétement sur le plateau
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
} else {
for ( i = cord - ' A ' ; i < cord - ' A ' + 2 ; i + + ) {
if ( plat [ i ] [ j ] ! = ' ' ) {
w = 1 ;
}
} if ( w = = 0 ) {
for ( i = cord - ' A ' ; i < cord - ' A ' + 2 ; i + + ) {
plat [ i ] [ j ] = ' T ' ;
v = 1 ;
2023-01-06 16:27:16 +01:00
} //Si elles sont libres alors on enregistre les coordonées
2023-01-06 00:55:08 +01:00
} else {
2023-01-06 16:27:16 +01:00
printf ( " Navire empiète sur un autre \n \n " ) ; //Sinon on annonce que le bateau empiète sur un autre bateau
2023-01-06 00:55:08 +01:00
}
}
}
} else {
2023-01-06 16:27:16 +01:00
printf ( " Navire hors limite \n \n " ) ; //Alors on dit au joueur que le navire est hors limite
2023-01-06 00:55:08 +01:00
}
}
}
} if ( verif2 ( plat ) = = 1 ) {
2023-01-06 16:27:16 +01:00
printf ( " Tout les navires ont bien été placé \n \n " ) ; //On annonce que tout les bateaux ont étés placés
2023-01-06 00:55:08 +01:00
} else {
printf ( " Nombre de case navire incorrect \n \n " ) ;
}
}
2023-01-06 16:27:16 +01:00
int jouerJoueur2 ( char adv [ ] [ 10 ] ) { //Phase de jeu
2023-01-06 00:55:08 +01:00
char c ;
int x ;
int y ;
2023-01-06 16:27:16 +01:00
scanf ( " %c%d " , & c , & y ) ; //ON récupère le choix du joueur
2023-01-06 00:55:08 +01:00
x = c - ' A ' ;
2023-01-06 16:27:16 +01:00
if ( x > 10 | | x < 0 ) { //En fonction du résultat, on dira que soit la coordonée n'est pas bonne, soit que le tire n'a pas touché de bateau ou que le tire à touché un bateau
2023-01-06 00:55:08 +01:00
return - 3 ;
}
if ( y > 10 | | y < 0 ) {
return - 3 ;
} switch ( adv [ x ] [ y ] ) {
case ' A ' : adv [ x ] [ y ] = ' x ' ; return 0 ;
case ' C ' : adv [ x ] [ y ] = ' x ' ; return 1 ;
case ' S ' : adv [ x ] [ y ] = ' x ' ; return 2 ;
case ' M ' : adv [ x ] [ y ] = ' x ' ; return 3 ;
case ' T ' : adv [ x ] [ y ] = ' x ' ; return 4 ;
case ' ' : adv [ x ] [ y ] = ' . ' ; return - 1 ;
} return - 2 ;
}