diff --git a/02week/arrayspj.js b/02week/arrayspj.js new file mode 100644 index 000000000..cfc27bf62 --- /dev/null +++ b/02week/arrayspj.js @@ -0,0 +1,65 @@ +'use strict' + +//length +let cars = ['Ford','Toyota','Cadillac','Hyundai']; +console.log(cars.length); + +//concat +let moreCars = ['Aston Martin','Bugatti','Bentley','Honda']; +let totalCars = cars.concat(moreCars); +console.log(totalCars); + +//indexOf +console.log(totalCars.indexOf("Honda")); + +//lastIndexOf +console.log(totalCars.lastIndexOf("Ford")); + +//join +let stringOfCars = totalCars.join(','); +console.log(stringOfCars); + +//split +totalCars = stringOfCars.split(','); +console.log(totalCars); + +//reverse +let carsInReverse = totalCars.reverse(); +console.log(carsInReverse); + +//sort +carsInReverse.sort(); +alert(carsInReverse.indexOf('Aston Martin')); +console.log(carsInReverse); + +//slice +let removedCars = carsInReverse.slice(4, 6); +console.log(removedCars); + +//splice +carsInReverse.splice(1, 1, 'Ford'); +carsInReverse.splice(2, 1, 'Honda'); +console.log(carsInReverse); + +//push +carsInReverse.push('Ford', 'Honda'); +console.log(carsInReverse); + +//pop +carsInReverse.pop(); +console.log(carsInReverse); + +//shift +carsInReverse.shift(); +console.log(carsInReverse); + +//unshift +carsInReverse.unshift("Subaru"); +console.log(carsInReverse); + +//forEach +var numbers = [23, 45, 0, 2]; +function addTwo(item) { + console.log(item + 2); +} +numbers.forEach(addTwo) diff --git a/02week/ticTacToe.js b/02week/ticTacToe.js index 1abf5b900..876a2b9d6 100644 --- a/02week/ticTacToe.js +++ b/02week/ticTacToe.js @@ -1,5 +1,21 @@ 'use strict'; + +//if no, push that player marker to that index +//make a copy to the board +//const updatedBoard = [...board]; +//slice the row, store to const, (not splice) +//const updatedRow = board.slice(row, row+1) [0]; +//console.log(updatedRow, 'Row') + +/*Check it marker exists at row/column +If no wins, switch player, display the updated boardIf any wins come back return the player winner, clear the board*/ + +//Horizontal Win [0,1,2], [3,4,5], [6,7,8] +// Vertical Win: [0,3,6], [1,4,7], [2,5,8] +// Diagonal Win: [0,4,8], [0,2,6] +// Only way to win is if the total is 0 or if the total is 3. X are worth 1 point and O are worth 0 points + const assert = require('assert'); const readline = require('readline'); const rl = readline.createInterface({ @@ -23,17 +39,31 @@ function printBoard() { console.log('2 ' + board[2].join(' | ')); } +// Horizontal Win: [0,1,2], [3,4,5], [6,7,8] function horizontalWin() { - // Your code here -} + if ('a win in a row') { + [ { x: 0, o: 6 }, { x: 1, o: 7 }, { x: 2, o: 8 }] || [ { x: 3, o: 0 }, {x: 4, o: 1 }, { x: 5, o: 2 }] || [ { x: 6, o: 3 }, { x: 7, o: 4 }, { x: 8, o: 5 }] + }; + return ('player " " wins!'); +}; +// Vertical Win: [0,3,6], [1,4,7], [2,5,8] function verticalWin() { - // Your code here -} + if ('a win in a column') { + [ { x: 0, o: 1 }, { x: 3, o: 4 }, { x: 6, o: 7 }] || [ { x: 2, o: 0 }, { x: 5, o: 3 }, { x: 8, o: 6 }] || [ { x: 1, o: 2 }, { x: 4, o: 5 }, { x: 7, o: 8 }] + + }; + return ('player " " wins!'); +}; +// Diagonal Win: [0,4,8], [2,4,6] function diagonalWin() { - // Your code here -} + if ('a win diagonally') { + [ { x: 0, o: 2 }, { x: 4, o: 4 }, { x: 8, o: 6 }] || [ { x: 2, o: 0 }, { x: 4, o: 4 }, { x: 6, o: 8 }] + + }; + return ('player " " wins!'); +}; function checkForWin() { // Your code here diff --git a/03week/mastermind.js b/03week/mastermind.js index 60e5cfa18..62f3afcf1 100644 --- a/03week/mastermind.js +++ b/03week/mastermind.js @@ -1,5 +1,66 @@ 'use strict'; +/* +MASTERMIND + +const assert = require('assert'); +const readline = require('readline'); +const rl = readline.createInterface({ +input: process.stdin, +output: process.stdout +}); + +let board = []; +let solution = ''; +let letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']; + +function printBoard() { +for (let i = 0; i < board.length; i++) { +console.log(board[i]); +} +} + +- Start game by generating a four-letter code you want the player to guess (generatedCode) + +function generatedCode() { +for (let i = 0; i < 4; i++) { +const randomIndex = getRandomInt(0, letters.length); +solution += letters[randomIndex]; +} +} + +function getRandomInt(min, max) { +return Math.floor(Math.random() * (max - min)) + min; +} + +-- The player chooses 4 letters (playerCode) + +-- They win if they guess the code before using up all of their turns +if (playerCode === generatedCode) { +console.log('You win!'); +} else { +console.log('Keep trying'); +} + +-- The letters are checked to see: +1- if their code matches the generatedCode +2- if any of the letters are correct +(correct letter) +3- if they are also in the correct position +(correct position) +(Use 'loops', probably 'while' so can guess until generatedCode is true; or 'do while' if verifying playerCode and then running through rest of loop if incorrect...will see) + +-- Alert the player of how many are the correct letter AND how many are in the correct position + +-- The player loses if they use all of their turns and never guess the correct code + +- Give 5 chances. Restart game when it's done. + +-- Find a way to keep the players previous attempts and the results of those attempts on display +---save their inputs into an array +---show array on the screen +*/ + const assert = require('assert'); const readline = require('readline'); const rl = readline.createInterface({ @@ -8,8 +69,10 @@ const rl = readline.createInterface({ }); let board = []; -let solution = ''; +let generatedCode = ''; let letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']; +let gameCounter=0; + function printBoard() { for (let i = 0; i < board.length; i++) { @@ -20,7 +83,7 @@ function printBoard() { function generateSolution() { for (let i = 0; i < 4; i++) { const randomIndex = getRandomInt(0, letters.length); - solution += letters[randomIndex]; + generatedCode += letters[randomIndex]; } } @@ -28,20 +91,60 @@ function getRandomInt(min, max) { return Math.floor(Math.random() * (max - min)) + min; } -function generateHint() { - // your code here +function mastermind(guess) { + if (guess === generatedCode) { + console.log('You win!'); + return; + } else { + console.log('Keep trying'); + } + generateHint(guess); } -function mastermind(guess) { - solution = 'abcd'; // Comment this out to generate a random solution - // your code here + +function generateHint(guess) { + let gueArray = guess.split(''); + let genArray = generatedCode.split(''); + let counter=0; + + for(let i = 0; i < gueArray.length;i++) + { + for(let j=0; j < genArray.length;j++) + { + if (gueArray[i]===genArray[j]) + counter+=1; + } + } + console.log('you have '+counter+' correct letters'); + + let positionCounter=0; + if (gueArray[0] === genArray[0]) { + positionCounter+=1; + } + if (gueArray[1] === genArray[1]) { + positionCounter+=1; + } + if (gueArray[2] === genArray[2]) { + positionCounter+=1; + } + if (gueArray[3] === genArray[3]) { + positionCounter+=1; + } + console.log('you have '+positionCounter+' letters in the correct position'); } function getPrompt() { - rl.question('guess: ', (guess) => { + rl.question('guess 4 letters from A through H: ', (guess) => { mastermind(guess); + //put the guesses in array + board.push(guess); printBoard(); + gameCounter+=1; + if (gameCounter > 10) { + console.log("GAME OVER!!") + return; + } getPrompt(); }); } @@ -49,14 +152,14 @@ function getPrompt() { // Tests if (typeof describe === 'function') { - solution = 'abcd'; + generatedCode = 'abcd'; describe('#mastermind()', () => { it('should register a guess and generate hints', () => { mastermind('aabb'); assert.equal(board.length, 1); }); it('should be able to detect a win', () => { - assert.equal(mastermind(solution), 'You guessed it!'); + assert.equal(mastermind(generatedCode), 'You guessed it!'); }); }); diff --git a/03week/partnerChallenge.js b/03week/partnerChallenge.js new file mode 100644 index 000000000..fe1e602d3 --- /dev/null +++ b/03week/partnerChallenge.js @@ -0,0 +1,24 @@ +'use strict' + +const partnerObj = { + firstName: "Renata", + lastName: "Estes", + age:27, + eyeColor: "brown", + talk: () => { + return "Hello Renee!" + }, +}; + +partnerObj.lastName = "cars"; +console.log(partnerObj['firstName']); +console.log(partnerObj.lastName); +console.log(partnerObj.talk()); + +const partnerArr = Object.keys(partnerObj); +console.log(partnerArr); + +for (var i in partnerArr){ +console.log(partnerArr[i]) +console.log(partnerObj[partnerArr[i]]) +} diff --git a/03week/towersOfHanoi.js b/03week/towersOfHanoi.js index 165912ed8..cf76a2ffa 100644 --- a/03week/towersOfHanoi.js +++ b/03week/towersOfHanoi.js @@ -1,5 +1,49 @@ 'use strict'; +//Create three CoRs with arrays +//The first CoR is full +let stacks = { + a: [4, 3, 2, 1], + b: [], + c: [] +}; +//You click on the first CoR to remove a stack (pop) +//You click on one of the other CoR to add that stack you removed (movePiece) +//~>You must check the CoR to see if there is already a stack there. +(push)function movePiece() { + if (stacks == null) { + stacks.pop(); + } else { + if (last) < (last) { + alert("Invalid Move"); + } else { + stacks.push(); + stacks = null; + } + } + //(Compare array values). If there is, you need to check the value of that stack to make sure it is bigger than the one you want to drop. +//You win whenever you get the entire stack on one of the other CoRs (stack.b or stack.c) + +var clicker = function() { + // + var row = null; + var m = 0; + stack.click(function(){ + m = m +1; + $("#counter").html(m); + var stack = $(this); + var children = stack.children(); + var lastChild = children.last(); + + if ((stack ='2']).children().length >= 4) || ((stack ='3']).children().length >= 4) + { + alert("You Win!!"); + } + + }); +} + + const assert = require('assert'); const readline = require('readline'); const rl = readline.createInterface({ @@ -13,6 +57,12 @@ let stacks = { c: [] }; +let first = stacks[0]; +console.log(first); + +let last = stacks[stacks.length - 1]; +console.log(last); + function printStacks() { console.log("a: " + stacks.a); console.log("b: " + stacks.b); @@ -20,9 +70,16 @@ function printStacks() { } function movePiece() { - // Your code here - -} + if (stacks == null) { + stacks.pop(); + } else { + if (last) < (last) { + alert("Invalid Move"); + } else { + stacks.push(); + stacks = null; + } + } function isLegal() { // Your code here @@ -30,8 +87,9 @@ function isLegal() { } function checkForWin() { - // Your code here - + if (stacks.b.length === 4 || stacks.c.length === 4) { + console.log("You win"); + } } function towersOfHanoi(startStack, endStack) { @@ -91,3 +149,10 @@ if (typeof describe === 'function') { getPrompt(); } + + +//function towersOfHanoi (startStack, endStack) +//if sourceStack arry.last < targetStack array.last then +// return true +// end if +//return false