Résoudre un labyrinthe sous javascool avec Pledge

Fermé
ISNpro Messages postés 2 Date d'inscription mercredi 6 avril 2016 Statut Membre Dernière intervention 12 avril 2016 - Modifié par KX le 6/04/2016 à 13:15
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 12 avril 2016 à 16:41
Bonjour,
Nous sommes, moi et mon partenaire, actuellement en terminale scientifique en option SI et ISN (Informatique et Science du Numérique).
Dans le but du projet de fin d'année pour le bac, nous devons réaliser un algorithme résolvant un labyrinthe avec Pledge.
Nous avons compris le fonctionnement de l'algorithme mais nous avons du mal à le mettre en oeuvre sur java (logiciel javascool).
Voici ce que nous avons pu réaliser pour l'instant :


void image() {
   load("E:/Travail/ISN/Images/labydessin.PNG");
}

void pledge() {
   int p = 0;
   int x = 0;
   int y = 19;
   int blanc = getPixel(0, y);
   while (blanc != 0) {
      setPixel(0, y, "red");
      setPixel(0,19,"black");
      y = y -1;
      blanc = getPixel(0, y);
   }
}

// int blanc2 = getPixel(x, y);
// int blanc3 = getPixel(x, y);}
 void main() {
   reset(20, 20);
   image();
   pledge();
   
}



Ce n'est pas grand chose mais nous avons vraiment du mal.
coordonnées de notre repère : y = -20 et 19 et x = 20 et -19
nous avons un exemple de labyrinthe dans une image paint que nous loadons.


Pouvez vous nous aider avec des exemples et des résolutions (algorithmes)
Merci d'avance!

2 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
6 avril 2016 à 13:29
Bonjour,

Si ma mémoire est bonne, l'algorithme de Pledge consiste à toujours garder la main droite (ou gauche) sur le mur, et donc de toujours tourner à droite quoi qu'il arrive, quitte à faire demi-tour dans les culs de sac.

Dans ton code, tu n'as pas de notion de droite ou de gauche, tu fais toujours
y = y - 1
même si ça te fait traverser les murs !
Il faut que tu connaisses ta direction (vers le haut/bas/gauche/droite) pour savoir quelle est ta droite relative. Sans oublier de regarder s'il y a un mur là où tu veux aller, tu n'es pas un fantôme !

Remarque : le setPixel noir est inutile et ta condition while (blanc != 0) est fausse...
0
ISNpro Messages postés 2 Date d'inscription mercredi 6 avril 2016 Statut Membre Dernière intervention 12 avril 2016
Modifié par ISNpro le 12/04/2016 à 13:24
Bonjour, KX merci de ta réponse,
nous avons déjà compris ce que tu nous as communiqué : On cherche à le retranscrire en programme. Pourrais-tu nous envoyer une idée de programme ?
Merci d'avance et excuse nous de notre retard.
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
12 avril 2016 à 16:41
Bonjour,

Je ne vais pas faire votre travail à votre place, ça n'a aucun intérêt ni pour moi, ni pour vous deux...

Le but de tout enseignement est avant tout de vous faire apprendre des choses !

Ici, si vous avez déjà compris l'algorithme, il devrait déjà se dégager un début de programme très différent de que vous avez montré plus haut...
0