92 lines
2.0 KiB
JavaScript
92 lines
2.0 KiB
JavaScript
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
|
|
}
|
|
} |