Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 43 additions & 6 deletions 03week/towersOfHanoi.js
Original file line number Diff line number Diff line change
Expand Up @@ -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){

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

simplify and just return the evaluation

return !compareWhereGoing || grabLast < compareWhereGoing

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);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

parentheses are unnecessary

}


// Function To Reset Game
const resetGame=()=>{
return stacks;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this doesn't reset anything

}

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();
Expand Down