diff --git a/03week/towersOfHanoi.js b/03week/towersOfHanoi.js index 3cf6df049..91e8edaa8 100644 --- a/03week/towersOfHanoi.js +++ b/03week/towersOfHanoi.js @@ -13,31 +13,68 @@ let stacks = { c: [] }; + function printStacks() { console.log("a: " + stacks.a); console.log("b: " + stacks.b); console.log("c: " + stacks.c); } -function movePiece() { - // Your code here +function movePiece(startStack, endStack) { + // Your code here + // Pop is taking 1 and storing it in the varible called take + const take = stacks[startStack].pop() + const put = stacks[endStack].push(take) } -function isLegal() { + + +function isLegal(startStack, endStack) { // Your code here + // Checking to see if one block is larger than the other for valid move + const grabLast = stacks[startStack].slice(-1) + const compareWhereGoing = stacks[endStack].slice(-1) + if(grabLast < compareWhereGoing || compareWhereGoing === undefined){ + return true; + } +}; + -} function checkForWin() { // Your code here + // C in quotes to access the array and 4 is the lenght of the pieces needed to Win + return (stacks['c'].length == 4); +} + +// Function To Reset Game +const resetGame=()=>{ + return stacks; } -function towersOfHanoi(startStack, endStack) { - // Your code here + +function towersOfHanoi(startStack, endStack) { +// Your code here +//Rules +// Only one disk can be moved at a time, movePiece() +// A disk can only be moved if it is the uppermost disk on a stack, isLegal() +// No disk may be placed on top of a smaller disk, isLegal() +// You have to move all disk from on side to the other, checkForWin() +if (isLegal(startStack, endStack)){ + if (movePiece(startStack, endStack)){ + stacks[startStack][endStack]; + if (checkForWin()){ + console.log('You Win!'); + resetGame(); + }else{ + console.log('Invalid') + } } + + function getPrompt() { printStacks();