Skip to content
Open
Show file tree
Hide file tree
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
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"liveServer.settings.port": 5501
}
14 changes: 8 additions & 6 deletions index.html
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta charset="utf-8" />
<title></title>
<script src="main.js"></script>
</head>
<body>
<h1>Hello World!</h1>
<hr/>
<div id="display-element"></div>
<button onclick="displayDate()">Click Me</button>
<hr/>
<hr />
<div id="RPS"></div>
<input type="text" id="first-hand" value="" name ="first-name" onkeyup="storeHand(this.id, this.value)"></input>
<input type="text" id="second-hand" value="" name ="second-name" onkeyup="storeHand(this.id, this.value)"></input>
<button onclick="displayResults()">Click Me</button>
<hr />
<script src="main.js"></script>
</body>
</html>
67 changes: 62 additions & 5 deletions main.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
// uses strict mode so strings are not coerced, variables are not hoisted, etc...
'use strict';

let value1 = ""
let value2 = ""



// brings in the assert module for unit testing
const assert = require('assert');
// brings in the readline module to access the command line
Expand All @@ -11,11 +16,59 @@ const rl = readline.createInterface({
output: process.stdout
});

const storeHand = (id,value) => {
if (id == "first-hand") {
value1 = value
} else if (id == "second-hand") {
value2 = value
}
}

const displayResults = () => {
if (value1 && value2){
document.getElementById("RPS").innerHTML = rockPaperScissors(value1, value2)
} else {
return document.getElementById("RPS").innerHTML = "FAIL"
}
}

// the function that will be called by the unit test below
const rockPaperScissors = (hand1, hand2) => {
const rockPaperScissors = (firstHand, secondHand) => {
let hand1 = firstHand.toLowerCase().trim()
let hand2 = secondHand.toLowerCase().trim()

// should detect a tie

if (hand1 === 'rock' && hand2 === 'rock') {
return "It's a tie!"
}
if (hand1 === 'paper' && hand2 === 'paper') {
return "It's a tie!"
}
if (hand1 === 'scissors' && hand2 === 'scissors') {
return "It's a tie!"
}
// should detect which hand won

// Write code here
// Use the unit test to see what is expected
if (hand1 === 'rock' && hand2 === 'paper') {
return "Hand two wins!"
}
if (hand1 === 'paper' && hand2 === 'scissors') {
return "Hand two wins!"
}
if (hand1 === 'rock' && hand2 === 'scissors') {
return "Hand one wins!"
}

if (hand1 === 'paper' && hand2 === 'scissors') {
return "Hand one wins!"
}
if (hand1 === 'scissors' && hand2 === 'rock') {
return "Hand two wins!"
}
if (hand1 === 'scissors' && hand2 === 'paper') {
return "Hand one wins!"
}

}

Expand All @@ -25,7 +78,7 @@ const rockPaperScissors = (hand1, hand2) => {
function getPrompt() {
rl.question('hand1: ', (answer1) => {
rl.question('hand2: ', (answer2) => {
console.log( rockPaperScissors(answer1, answer2) );
console.log(rockPaperScissors(answer1, answer2));
getPrompt();
});
});
Expand Down Expand Up @@ -53,10 +106,14 @@ if (typeof describe === 'function') {
assert.equal(rockPaperScissors('Paper', 'SCISSORS'), "Hand two wins!");
assert.equal(rockPaperScissors('rock ', 'sCiSsOrs'), "Hand one wins!");
});
it('should test for input before next turn', () => {
assert.equal(rockPaperScissors(undefined, 'paper'), "You going to let the other player win?");
assert.equal(rockPaperScissors('Paper', undefined), "Seriously? Make a play!");
});
});
} else {

// always returns ask the user for another input
getPrompt();

}
}