Problème code bataille navale

Signaler
-
Messages postés
32410
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mai 2021
-
Bonjour,
Nous sommes actuellement en L1 BGC et devons rendre un projet informatique pour mardi 15 avril (désolées pour l'urgence). Après avoir utilisé tous les recours disponibles, nous sommes en pleine panique. Nous avons commencé à créer une grille de jeu et un bout d'algorithme devant nous permettre de placer des bateaux (que nous voudrions transformer en fonction afin de pouvoir le réutiliser plusieurs fois). Seulement, la boite de dialogue Javascript nous indique une erreur et nous n'arrivons pas à savoir où l'algorithme plante. Ci-dessous le code en question. Pourriez-vous nous aider à y voir plus clair ? Merci d'avance.

// Javascript code here
var colonne = 0;
var ligne = 0;
var i = 0;
var j = 0;
colonne = Saisie("définissez la taille de la grille entre 10 et 20");
if (colonne < 10 || colonne > 20) {
  while (colonne < 10 || colonne > 20) {
    Ecrire("taille incorrect");
    colonne = Saisie("définissez la taille de la grille entre 10 et 20");
  }
}
for (i = 0; i <= colonne; i++) {
  Tabbateaux[i] = new Array(colonne);
  for (j = 0; j <= colonne; j++) {
    Tabbateaux[i][j] = "0";
  }
  Afficher(Tabbateaux[i]);
}
Afficher(Tabbateaux[i][j]);

var longueur = 0;
longueur = Saisie("Saisir la longueur du bateau à placer");
var k = 0;
var directionBateau = 0;
directionBateau = Hasard(2);
var sensBateau = 0;
sensBateau = Hasard(2);
var depart_colonne = 0;
depart_colonne = Hasard(colonne);
var depart_ligne = 0;
depart_ligne = Hasard(colonne);
var colonneSuivante = 0;
var ligneSuivante = 0;
while (Tabbateaux[depart_colonne][depart_ligne] != 0) {
  depart_colonne = Hasard(colonne);
  depart_ligne = Hasard(colonne);
}
Tabbateaux[depart_colonne][depart_ligne] = longueur;
for (i = 1; i <= longueur; i++) {
  if (directionBateau = 1 || sensBateau = 1) {
    colonneSuivante = depart_colonne + 1;
    ligneSuivante = depart_ligne;
    while (Tabbateaux[colonneSuivante][ligneSuivante] != 0) {
      depart_colonne = Hasard(colonne);
      depart_ligne = Hasard(colonne);
      break
      for (i = 1; i <= longueur; i++);
    }
    Tabbateaux[colonneSuivante][ligneSuivante] = longueur;
  }
  if (directionBateau = 1 || sensBateau = 0) {
    colonneSuivante = depart_colonne - 1;
    ligneSuivante = depart_ligne;
    while (Tabbateaux[colonneSuivante][ligneSuivante] != 0) {
      depart_colonne = Hasard(colonne);
      depart_ligne = Hasard(colonne);
      break
      for (i = 1; i <= longueur; i++);
    }
    Tabbateaux[colonneSuivante][ligneSuivante] = longueur;
  }
  if (directionBateau = 0 || sensBateau = 1) {
    colonneSuivante = depart_colonne;
    ligneSuivante = depart_ligne + 1;
    while (Tabbateaux[colonneSuivante][ligneSuivante] != 0) {
      depart_colonne = Hasard(colonne);
      depart_ligne = Hasard(colonne);
      break
      for (i = 1; i <= longueur; i++);
    }
    Tabbateaux[colonneSuivante][ligneSuivante] = longueur;
  }
  if (directionBateau = 0 || sens = Bateau0) {
    colonneSuivante = depart_colonne;
    ligneSuivante = depart_ligne - 1;
    while (Tabbateaux[colonneSuivante][ligneSuivante] != 0) {
      depart_colonne = Hasard(colonne);
      depart_ligne = Hasard(colonne);
      break
      for (i = 1; i <= longueur; i++);
    }
    Tabbateaux[colonneSuivante][ligneSuivante] = longueur;
  }
}

1 réponse

Messages postés
32410
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mai 2021
347
Bonjour,
(désolées pour l'urgence)
Pas de soucis... l'urgence... n'est pas pour nous !


la boite de dialogue Javascript nous indique une erreur et nous n'arrivons pas à savoir où l'algorithme plante
Et vous ne pensez pas que nous "donner" ce message d'erreur pourrait surement nous aider ?


Au cas où... vous pouvez toujours mettre des ALERT dans votre code à chaque étape de celui-ci pour essayer de déterminer où se trouve l'erreur.

Enfin bon...;

Première chose qui cloche dans votre programme....
Lorsque vous faites des tests de comparaison...
ce n'est pas avec UN "=" mais DEUX : "=="
  if (directionBateau == 1 || sensBateau == 1) {


Ensuite : L'objet Tabbateaux .. il faut le définir avant d'essayer de lui mettre des valeurs...
var Tabbateaux = new Array();
for (i = 0; i <= colonne; i++) {
  Tabbateaux[i] = new Array(colonne);
  for (j = 0; j <= colonne; j++) {
    Tabbateaux[i][j] = "0";
  }
  Afficher(Tabbateaux[i]);
}


Pour le reste...(je pense qu'il y aura d'autres erreurs..) je vous laisse chercher.