|
@@ -3,13 +3,13 @@ var canvas = document.getElementById('planoDeFundo');
|
|
|
var towerA = [], towerB = [], towerC = [];
|
|
|
var toMove = null;
|
|
|
var idF=" ", idT= " ";
|
|
|
- var nMovements = 0, nDisks;
|
|
|
- var moves="";
|
|
|
+ var nMovements = 0, nWrongMoves=0, nDisks;
|
|
|
+ var moves="";
|
|
|
var acertos;
|
|
|
var optimalSolution;
|
|
|
|
|
|
var colors = ["#000080","#00FF00", "#FF00FF", "yellow", "#FFA500", "#B0C4DE","red"];
|
|
|
-
|
|
|
+ var start = Date.now(), startOfMove, totalTime, moveTime;
|
|
|
|
|
|
function inicio (QntityDisks){
|
|
|
nDisks = QntityDisks;
|
|
@@ -18,6 +18,7 @@ var canvas = document.getElementById('planoDeFundo');
|
|
|
var y = 558;
|
|
|
var w = 330;
|
|
|
moves="";
|
|
|
+ startOfMove=Date.now();
|
|
|
for (var i = 0; i < nDisks; i++) {
|
|
|
var disk = new Disk(x,y,w,40,colors[i]);
|
|
|
towerA.push(disk);
|
|
@@ -138,9 +139,12 @@ var canvas = document.getElementById('planoDeFundo');
|
|
|
|
|
|
function moveDisk (origin, destiny){
|
|
|
var originTower = getTower(origin), destinyTower = getTower(destiny), topDiskOrigin, topDiskDestiny;
|
|
|
- moves+="\n"+origin+" "+destiny;
|
|
|
+ moveTime = Math.floor( (Date.now()- startOfMove) /1000);
|
|
|
+ moves+="\n"+origin+" "+destiny+" "+moveTime;
|
|
|
+ startOfMove = Date.now();
|
|
|
console.clear();
|
|
|
console.log(moves);
|
|
|
+ nMovements++;
|
|
|
|
|
|
topDiskOrigin = originTower[originTower.length-1];
|
|
|
if(destinyTower.length>0){
|
|
@@ -150,9 +154,9 @@ var canvas = document.getElementById('planoDeFundo');
|
|
|
topDiskOrigin.y += 42*(originTower.length-destinyTower.length-1);
|
|
|
originTower.pop();
|
|
|
destinyTower.push(topDiskOrigin);
|
|
|
- nMovements++;
|
|
|
drawScene();
|
|
|
} else{
|
|
|
+ nWrongMoves++;
|
|
|
alert("Movimento Inválido");
|
|
|
idF =" ";
|
|
|
idT =" ";
|
|
@@ -169,6 +173,7 @@ var canvas = document.getElementById('planoDeFundo');
|
|
|
acertos=0;
|
|
|
if(towerC.length == nDisks && nDisks!=0){
|
|
|
acertos=1;
|
|
|
+ totalTime= Date.now() - start;
|
|
|
if(nMovements==optimalSolution){
|
|
|
alert("You Won in the least amount of movements!!!\nCongratulations!!!");
|
|
|
}else{
|
|
@@ -202,4 +207,4 @@ var canvas = document.getElementById('planoDeFundo');
|
|
|
ctx.fill();
|
|
|
}
|
|
|
}
|
|
|
- inicio();
|
|
|
+ inicio(4);
|