diff --git a/algo.js b/algo.js new file mode 100644 index 0000000..4a23bec --- /dev/null +++ b/algo.js @@ -0,0 +1,92 @@ +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 + } +} \ No newline at end of file