Bonjour, Nous avons un projet en ISN (Informatique et Science du Numérique) en Terminale S. Nous voulons coder le jeu Bataille navale.
Alors j'ai un soucis par rapport a l'affichage de la grille joueur et ordi qu'il ne s'affiche pas en même temps et est séparé par une ligne verte.
Pouvez-vous m'aider svp? Merci
// affiche une grille d'entier sous forme de tableau
void affichageGrille(int[][] grille, int taille) {
for (int i =0; i < taille; i ++) {
for (int j =0; j < taille; j ++) {
print(grille[j][i]);
print(" ");
}
println(" ");
}
}
/*
* Fonction qui affiche la grille finale
* grille du joueur à gauche, un trait vertical vert de séparation
* grille de l'ordinateur à droite
* la fonction est à modifier pour que les bateaux de l'ordinateur ne soient pas visibles
* s'ils n'ont pas été touchés
*/
void affichageGrilleFinale(int[][] grillejoueur, int[][] grilleordi, int taille) {
// affichage de la grille du joueur
for (int i =0; i < taille; i ++) {
for (int j =0; j < taille; j ++) {
if (grillejoueur[i][j] ==0) {
setPixel(i, j, "blue");
}
if (grillejoueur[i][j] ==2) {
setPixel(i, j, "black");
}
if (grillejoueur[i][j] ==1) {
setPixel(i, j, "white");
}
if (grillejoueur[i][j] ==3) {
setPixel(i, j, "red");
}
}
}
for(int j=0;j<taille;j++)
{
setPixel(taille,j,"green");
}
// affichage de la grille de l'ordinateur
// à modifier pour que les bateaux n'apparaissent pas
for ( int i =taille; i < 2*taille; i ++) {
for (int j =0; j < taille; j ++) {
if (grilleordi[i-taille][j] ==0) {
setPixel(i+1, j, "blue");
}
if (grilleordi[i-taille][j] ==2) {
setPixel(i+1, j, "blue");
}
if (grilleordi[i-taille][j] ==1) {
setPixel(i+1, j, "white");
}
if (grilleordi[i-taille][j] ==3) {
setPixel(i+1, j, "red");
}
}
}
}
int sommeGrille(int[][] grille, int taille) {
int somme =0;
for (int i =0; i < taille; i ++) {
for (int j =0; j < taille; j ++) {
somme = somme+grille[j][i];
}
}
return somme;
}
// affiche une grille sous forme d'image
// les 0 sont en bleu (eau)
// les 1 en noir (ils représentent les bateaux)
void affichageImage(int [][]grille, int taille) {
for (int i =0; i < taille; i ++) {
for (int j =0; j < taille; j ++) {
if (grille[i][j] ==0) {
setPixel(i, j, "blue");
}
if (grille[i][j] ==2) {
setPixel(i, j, "black");
}
if (grille[i][j] ==1) {
setPixel(i, j, "white");
}
if (grille[i][j] ==3) {
setPixel(i, j, "red");
}
}
}
}
void main() {
println(" Le jeu auquel vous allez jouer est la Bataille Navale : ");
println("Le but du jeu est de couler les deux bateaux de votre adversaire.");
println("Les bateaux occupent deux et trois cases et sont positionés verticalement ou horizontalement, sur une grille de 25 cases.");
boolean fin = false;
reset(11, 5, false);
int[][]grille_joueur = new int[5][5];
int[][]grille_ordi = new int[5][5];
for (int x =0; x <5; x ++) {
for (int y =0; y <5; y ++) {
grille_joueur[x][y] =0;
grille_ordi[x][y] =0;
}
}
// PLACEMENT par le joueur des bateaux
//premier bateau
int m =0;
int v_joueur = 0;
int x_joueur =0;
int y_joueur =0;
reset(5, 5, false);
int somme=0;
while(somme!=10){
x_joueur= readInteger("Donnez la position en abscisse de votre premier bateau ");
y_joueur = readInteger("Donnez la position en ordonnée de votre premier bateau ");
grille_joueur[x_joueur][y_joueur] =2;
m = readInteger("choisir un chiffre entre 1 et 4 pour connaitre la direction de votre bateau sachant que 1 c'est vers le bas,2 vers le haut,3vers la droite,4 vers la gauche");
if (m ==1) {
for (int T = 0; T <= 2; T = T + 1) {
grille_joueur[x_joueur ][y_joueur + T] = 2;
}}
if (m ==2) {
for (int T = 0; T <= 2; T = T + 1) {
grille_joueur[x_joueur ][y_joueur - T] = 2;
}}
if (m ==3) {
for (int T = 0; T <= 2; T = T + 1) {
grille_joueur[x_joueur + T][y_joueur] = 2;
}}
if (m ==4) {
for (int T = 0; T <= 2; T = T + 1) {
grille_joueur[x_joueur - T][y_joueur] = 2;
}
}
//placement du deuxieme bateau
x_joueur = readInteger("Donnez la position en abscisse de votre deuxième bateau ");
y_joueur = readInteger("Donnez la position en ordonnée de votre deuxieme bateau ");
grille_joueur[x_joueur][y_joueur] =2;
m = readInteger("choisir un chiffre entre 1 et 4 pour connaitre la direction de votre bateau sachant que 1 c'est vers le bas,2 vers le haut,3vers la droite,4 vers la gauche");
if (m ==1) {
for (int T = 0; T <= 1; T = T + 1) {
grille_joueur [x_joueur ][y_joueur + T] = 2;
}}
if (m ==2) {
for (int T = 0; T <= 1; T = T + 1) {
grille_joueur[x_joueur ][y_joueur - T] = 2;
}}
if (m ==3) {
for (int T = 0; T <= 1; T = T + 1) {
grille_joueur[x_joueur + T][y_joueur] = 2;
}}
if (m ==4) {
for (int T = 0; T <= 1; T = T + 1) {
grille_joueur[x_joueur - T][y_joueur] = 2;
}
}
somme=sommeGrille(grille_joueur,5);
}
// PLACEMENT aléatoire des bateaux
int somme_ordi =0;
while (somme_ordi !=10) {
int a1 = random(1, 3);
int t1 = random(1, 4);
int x1;
int y1;
int a2 = random(1, 3);
int t2 = random(1, 4);
int x2;
int y2;
if (a1 == 1) {
//le bateau est ici placé horizontalement de taille x1+T
x1 = random(0, 2);
y1 = random(1, 4);
for (int T = 0; T <= 2; T = (T + 1)) {
grille_ordi [x1 + T][y1] = 2;
}
} else {
//le bateau est ici placé verticalement de taiile y1+T
x1 = random(0, 4);
y1 = random(0, 2);
for (int T = 0; T <= 2; T = T + 1) {
grille_ordi [x1][y1 + T] = 2;
//les bateaux sont sous forme du chiffre 2
}
}
if (a2 == 1) {
y2 = random(0, 4);
x2 = random(0, 3);
for (int T = 0; T <= 1; T = T + 1) {
grille_ordi [x2 + T][y2] = 2;
}
} else {
x2 = random(0, 4);
y2 = random(0, 3);
for (int T = 0; T <= 1; T = T + 1) {
grille_ordi [x2][y2 + T] = 2;
}
}
somme_ordi = sommeGrille(grille_ordi, 5);
}
affichageGrilleFinale(grille_joueur,grille_ordi,5);
int x_tirjoueur=0;
int y_tirjoueur=0;
while (fin==false)
{
x_tirjoueur=readInteger ("Donnez la position en abscisse à l'endroit où vous voulez tirer");
y_tirjoueur=readInteger("Donnez la position en ordonnée à l'endroit où vous voulez tirer");
while (x_tirjoueur<0 || x_tirjoueur>5 || y_tirjoueur<0 || y_tirjoueur>5) {
println ("les coordonnées entrées ne sont pas valables");
x_tirjoueur=readInteger ("Donnez la position en abscisse à l'endroit où vous voulez tirer");
y_tirjoueur=readInteger("Donnez la position en ordonnée à l'endroit où vous voulez tirer");
}
if (grille_ordi[x_tirjoueur][y_tirjoueur] == 3) {
grille_ordi[x_tirjoueur][y_tirjoueur] = 3;
println("déjà touché");
}
if (grille_ordi[x_tirjoueur][y_tirjoueur] == 2) {
println("touché !");
v_joueur = v_joueur + 1;
print("");
println("vous avez touché "+ v_joueur +" fois les bateaux !");
grille_ordi[x_tirjoueur][y_tirjoueur] = 3;
}
if (grille_ordi[x_tirjoueur][y_tirjoueur] == 0 || grille_ordi[x_tirjoueur][y_tirjoueur] == 1) {
println("dans l'eau");
grille_ordi[x_tirjoueur][y_tirjoueur] = 1;
}
affichageGrille(grille_ordi,5);
if(v_joueur==5)
{
fin=true;
}
affichageGrilleFinale(grille_joueur,grille_ordi,5);
}
print("");
println("Gagné ! Vous avez coulé tous les bateaux.");
/*
affichageGrille(grille, 5);
affichageImage(grille, 5);
println("Votre adversaire a placé ses bateaux.");
//Les bateaux sont placés de manière aléatoire verticalement ou horizontalement de taille aléatoire rendant la tache plus difficile
println("Voici la taille de chaque bateau : le premier bateau a une taille de 3 et l'autre de 2");
println(sommeGrille(grille, 5));
// Boucle de jeu
while (fin == false) {
x = readInteger("Donnez la position en abscisse à l'endroit où vous voulez tirer");
y = readInteger("Donnez la position en ordonnée à l'endroit où vous voulez tirer");
while (x <0 || x >5 || y <0 || y >5) {
println("les coordonnées entrées ne sont pas valables");
x = readInteger("Donnez la position en abscisse à l'endroit où vous voulez tirer");
y = readInteger("Donnez la position en ordonnée à l'endroit où vous voulez tirer");
}
if (grille[x][y] == 3) {
grille[x][y] = 3;
println("déjà touché");
}
if (grille[x][y] == 2) {
println("touché !");
v = v + 1;
print("");
println("vous avez touché " + v + " fois les bateaux !");
grille[x][y] = 3;
}
if (grille[x][y] == 0 || grille[x][y] == 1) {
println("dans l'eau");
grille[x][y] = 1;
}
affichageImage(grille, 5);
affichageGrille(grille, 5);
if (v ==5) {
fin = true;
}
}
print("");
println("Gagné ! Vous avez coulé tous les bateaux.");*/
}
ISN Java's cool
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.