Code final sur Javascool
void main() {
println("...Bataille Navale...");
println("Le but du jeu est de couler les cinq bateaux de votre adversaire.");
println("Les bateaux occupent une à trois cases et sont positionnés verticalement ou horizontalement, sur une grille de 81 cases.");
// déclaration des variables globales qui sont vues par tout le programme
int nombreDeCoup = 0; // nombre de coup utilisés pour gagner
int nombreDeCaseOccupee = 0; // addition de la taille de tous les bateaux
int x = 0; // abscisse de la position des différents bateaux
int y = 0; // ordonnée de la position des différents bateaux
// Initialisation de la grille
int grille[][] = new int[10][10]; //déclaration d'un tableau a 10 lignes et 10 colonnes
for (int ligne = 1; ligne <= 9; ligne = ligne + 1) {
for (int colonne = 1; colonne <= 9; colonne = colonne + 1) {
grille[ligne][colonne] = 0;
}
}
// Tirage aléatoire des bateaux
int tailleBateau1 = random(1, 4); // bateau 1
int bateau1 = random(1, 5); // la taille du bateau 1 est définie par un chiffre aléatoire allant de 1 à 5
int x1;
int y1;
int tailleBateau2 = random(1, 4);
int bateau2 = random(1, 5); // la taille du bateau 2 est définie par un chiffre aléatoire allant de 1 à 5
int x2;
int y2;
int tailleBateau3 = random(1, 4);
int bateau3 = random(1, 5);
int x3;
int y3;
int tailleBateau4 = random(1, 4);
int bateau4 = random(1, 5);
int x4;
int y4;
int tailleBateau5 = random(1, 4);
int bateau5 = random (1, 5);
int x5;
int y5;
// position des bateaux dans la grille en fonction de leur taille afin qu'ils ne dépassent pas de la grille
if (bateau1 == 1) {
x1 = random(1, (6 - tailleBateau1));
y1 = random(1, 5);
for (int T = 0; T <= (tailleBateau1 - 1); T = (T + 1)) {
grille [x1 + T][y1] = 2;
}
} else {
x1 = random(1, 5);
y1 = random(1, (6 - tailleBateau1));
for ( int T = 0; T <= (tailleBateau1 - 1); T = T + 1) {
grille [x1][y1 + T] = 2;
}
}
if (bateau2 == 1) {
y2 = random(1, 5);
x2 = random(5, (10 - tailleBateau2));
for (int T = 0; T <= (tailleBateau2 - 1); T = T + 1) {
grille [x2 + T][y2] = 2;
}
} else {
x2 = random(5, 9);
y2 = random(1, (6 - tailleBateau2));
for (int T = 0; T <= (tailleBateau1 - 1); T = T + 1) {
grille [x2][y2 + T] = 2;
}
}
if (bateau3 == 1) {
y3 = random(5, 9);
x3 = random(1, (6 - tailleBateau3));
for (int T = 0; T <= (tailleBateau3 - 1); T = T + 1) {
grille [x3 + T][y3] = 2;
}
20
} else {
x3 = random(1, 5);
y3 = random(5, (10 - tailleBateau3));
for (int T = 0; T <= (tailleBateau1 - 1); T = T + 1) {
grille [x3][y3 + T] = 2;
}
}
if (bateau4 == 1) {
y4 = random(5, 9);
x4 = random(5, (10 - tailleBateau4));
for ( int T = 0; T <= (tailleBateau4 - 1); T = T + 1) {
grille [x4 + T][y4] = 2;
}
} else {
x4 = random(5, 9);
y4 = random(5, (10 - tailleBateau4));
for (int T = 0; T <= (tailleBateau4 - 1); T = T + 1) {
grille [x4][y4 + T] = 2;
}
}
if (bateau5 == 1) {
y5 = random(5, 9);
x5 = random(5, (9 - tailleBateau5));
for (int T = 0; T <= (tailleBateau5 - 1); T = T + 1) {
grille [x5 + T][y5] = 2;
}
} else {
x5 = random(5, 9);
y5 = random(5, (9 - tailleBateau5));
for ( int T = 0; T <= (tailleBateau5 - 1); T = T + 1) {
grille [x5][y5 + T] = 2;
}
}
println("Votre adversaire a placé ses bateaux.");
// Boucle de jeu
while (nombreDeCaseOccupee < (tailleBateau1 + tailleBateau2 + tailleBateau3 + tailleBateau4 + tailleBateau5)) {
println("Voici la taille de chaque bateau :");
println(tailleBateau1);
println(tailleBateau2);
println(tailleBateau3);
println(tailleBateau4);
println(tailleBateau5);
while (x < 1 || x > 9) {
println("Donnez un nombre entier entre 1 et 9 pour l'absisse d'une case que vous pensez être occupée par un bateau ennemi.");
x = readInteger("Donnez un nombre entier entre 1 et 9 pour l'absisse d'une case que vous pensez être occupée par un bateau ennemi.");
println(x);
}
while (y < 1 || y > 9) {
println("Donnez un nombre entier entre 1 et 9 pour l'ordonnée d'une case que vous pensez être occupée par un bateau ennemi.");
y = readInteger("Donnez un nombre entier entre 1 et 9 pour l'ordonnée d'une case que vous pensez être occupée par un bateau ennemi");
println(y);
}
clear();
nombreDeCoup = nombreDeCoup + 1;
if (grille[x][y] == 3) {
grille[x][y] = 3;
println("déjà touché");
}
if (grille[x][y] == 2) {
println("touché !");
nombreDeCaseOccupee = nombreDeCaseOccupee + 1;
grille[x][y] = 3;
}
if (grille[x][y] == 0 || grille[x][y] == 1) {
println("dans l'eau");
grille[x][y] = 1;
}
for (int colonne = 1; colonne <= 9; colonne = colonne + 1) {
for (int ligne = 1; ligne <= 9; ligne = ligne + 1) {
if (grille[ligne][colonne] == 3) { // emplacements des bateaux
print("+");
}
if (grille[ligne][colonne] == 2) { // cases de la grille qui n'ont pas encore été demandé
print("0");
}
if (grille[ligne][colonne] == 1) { // eau
print("~");
}
if (grille[ligne][colonne] == 0) { // grille entiere
print("0"); }}
22
println(" ");
}
x = 0;
y = 0;
}
clear(); // efface ce qu'il y a dans la console
// programmation de la grille
for (int colonne = 1; colonne <= 9; colonne = colonne + 1) {
for (int ligne = 1; ligne <= 9; ligne = ligne + 1) {
if (grille[ligne][colonne] == 3) { // il y a un bateau sur cette case
print("+");
}
if (grille[ligne][colonne] == 2) { // dernier bateau touché
print("0");
}
if (grille[ligne][colonne] == 1) { // case dans l'eau
print("~");
}
if (grille[ligne][colonne] == 0) { // grille de départ
print("0");
}
}
println(" ");
}
println("Gagné ! Vous avez coulé tous les bateaux.");
println("nombre de coups =" + nombreDeCoup);
println (nombreDeCaseOccupee);
// println (T);