const Orientation = Object.freeze({ HAUT: Symbol("haut"), BAS: Symbol("bas"), GAUCHE: Symbol("gauche"), DROITE: Symbol("droite") }); class ModeAutomatique { casesParcourues = new Array(); cheminsParcours = new Array(); cheminsConnus = new Array(); constructor(){ // valeurs pour la première position posX=0; posY=0; rotation=HAUT; } run(){ this.analyseEnvironnement(); // met à jour les obstacles this.move(); // en fonction des chemins connus non encore parcourus //obstacle if (!this.aBouge){ // recule // teste de 30 degrés // tente d'avancer // teste de 30 degrés // tente d'avancer // } } analyseEnvironnement(){ if (isCaseAnalysee()) { isObstacleDevant(); tourne(); // isObstacleDevant(); tourne(); isObstacleDevant(); tourne(); isObstacleDevant(); tourne(); } // SI case déjà visitée, alors on connait ses obstacles } isCaseAnalysee(){ // TODO } updateCoordonnees() { switch (this.rotation) { case Orientation.HAUT: break; case Orientation.BAS: case Orientation.GAUCHE: console.log("Mangoes and papayas are $2.79 a pound."); // Expected output: "Mangoes and papayas are $2.79 a pound." break; case Orientation.DROITE: console.log(`Sorry, we are out of ${expr}.`); } } } class Case { coordX; coordY; chemins; constructor(coordX, coordY){ this.coordX = coordX; this.coordY = coordY; chemins = new Array(); } addCheminPossible(chemin){ this.chemins.push(chemin) } getCheminsPossibles(){ return this.chemins } }