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);