forked from swapnilsparsh/30DaysOfJavaScript
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
13a28e9
commit 68ba08e
Showing
3 changed files
with
422 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
<!DOCTYPE html> | ||
<html lang="en" > | ||
<head> | ||
<meta charset="UTF-8"> | ||
<title>Word Guess Game</title> | ||
<link rel="stylesheet" href="./style.css"> | ||
|
||
</head> | ||
<body> | ||
<!-- partial:index.partial.html --> | ||
<div class="wrapper"> | ||
<h1>Word Guess</h1> | ||
<!-- <h2>Vanilla JavaScript Hangman Game</h2> --> | ||
<p>Click on the alphabet below to guess the word, or click hint For Help. </p> | ||
</div> | ||
<div class="wrapper"> | ||
<div id="buttons"> | ||
</div> | ||
<p id="catagoryName"></p> | ||
<div id="hold"> | ||
</div> | ||
<p id="mylives"></p> | ||
<p id="clue">Clue -</p> | ||
<canvas id="stickman">This Text will show if the Browser does NOT support HTML5 Canvas tag</canvas> | ||
<div class="container"> | ||
<button id="hint">Hint</button> | ||
<button id="reset">Play again</button> | ||
</div> | ||
</div> | ||
<!-- partial --> | ||
<script src="./script.js"></script> | ||
|
||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,233 @@ | ||
window.onload = function () { | ||
|
||
var alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', | ||
'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', | ||
't', 'u', 'v', 'w', 'x', 'y', 'z']; | ||
|
||
var categories; // Array of topics | ||
var chosenCategory; // Selected catagory | ||
var getHint ; // Word getHint | ||
var word ; // Selected word | ||
var guess ; // Geuss | ||
var geusses = [ ]; // Stored geusses | ||
var lives ; // Lives | ||
var counter ; // Count correct geusses | ||
var space; // Number of spaces in word '-' | ||
|
||
// Get elements | ||
var showLives = document.getElementById("mylives"); | ||
var showCatagory = document.getElementById("scatagory"); | ||
var getHint = document.getElementById("hint"); | ||
var showClue = document.getElementById("clue"); | ||
|
||
|
||
|
||
// create alphabet ul | ||
var buttons = function () { | ||
myButtons = document.getElementById('buttons'); | ||
letters = document.createElement('ul'); | ||
|
||
for (var i = 0; i < alphabet.length; i++) { | ||
letters.id = 'alphabet'; | ||
list = document.createElement('li'); | ||
list.id = 'letter'; | ||
list.innerHTML = alphabet[i]; | ||
check(); | ||
myButtons.appendChild(letters); | ||
letters.appendChild(list); | ||
} | ||
} | ||
|
||
|
||
// Select Catagory | ||
var selectCat = function () { | ||
if (chosenCategory === categories[0]) { | ||
catagoryName.innerHTML = "The Chosen Category Is Premier League Football Teams"; | ||
} else if (chosenCategory === categories[1]) { | ||
catagoryName.innerHTML = "The Chosen Category Is Films"; | ||
} else if (chosenCategory === categories[2]) { | ||
catagoryName.innerHTML = "The Chosen Category Is Cities"; | ||
} | ||
} | ||
|
||
// Create geusses ul | ||
result = function () { | ||
wordHolder = document.getElementById('hold'); | ||
correct = document.createElement('ul'); | ||
|
||
for (var i = 0; i < word.length; i++) { | ||
correct.setAttribute('id', 'my-word'); | ||
guess = document.createElement('li'); | ||
guess.setAttribute('class', 'guess'); | ||
if (word[i] === "-") { | ||
guess.innerHTML = "-"; | ||
space = 1; | ||
} else { | ||
guess.innerHTML = "_"; | ||
} | ||
|
||
geusses.push(guess); | ||
wordHolder.appendChild(correct); | ||
correct.appendChild(guess); | ||
} | ||
} | ||
|
||
// Show lives | ||
comments = function () { | ||
showLives.innerHTML = "You have " + lives + " lives"; | ||
if (lives < 1) { | ||
showLives.innerHTML = "Game Over"; | ||
} | ||
for (var i = 0; i < geusses.length; i++) { | ||
if (counter + space === geusses.length) { | ||
showLives.innerHTML = "You Win!"; | ||
} | ||
} | ||
} | ||
|
||
// Animate man | ||
var animate = function () { | ||
var drawMe = lives ; | ||
drawArray[drawMe](); | ||
} | ||
|
||
|
||
// Hangman | ||
canvas = function(){ | ||
|
||
myStickman = document.getElementById("stickman"); | ||
context = myStickman.getContext('2d'); | ||
context.beginPath(); | ||
context.strokeStyle = "#fff"; | ||
context.lineWidth = 2; | ||
}; | ||
|
||
head = function(){ | ||
myStickman = document.getElementById("stickman"); | ||
context = myStickman.getContext('2d'); | ||
context.beginPath(); | ||
context.arc(60, 25, 10, 0, Math.PI*2, true); | ||
context.stroke(); | ||
} | ||
|
||
draw = function($pathFromx, $pathFromy, $pathTox, $pathToy) { | ||
|
||
context.moveTo($pathFromx, $pathFromy); | ||
context.lineTo($pathTox, $pathToy); | ||
context.stroke(); | ||
} | ||
|
||
frame1 = function() { | ||
draw (0, 150, 150, 150); | ||
}; | ||
|
||
frame2 = function() { | ||
draw (10, 0, 10, 600); | ||
}; | ||
|
||
frame3 = function() { | ||
draw (0, 5, 70, 5); | ||
}; | ||
|
||
frame4 = function() { | ||
draw (60, 5, 60, 15); | ||
}; | ||
|
||
torso = function() { | ||
draw (60, 36, 60, 70); | ||
}; | ||
|
||
rightArm = function() { | ||
draw (60, 46, 100, 50); | ||
}; | ||
|
||
leftArm = function() { | ||
draw (60, 46, 20, 50); | ||
}; | ||
|
||
rightLeg = function() { | ||
draw (60, 70, 100, 100); | ||
}; | ||
|
||
leftLeg = function() { | ||
draw (60, 70, 20, 100); | ||
}; | ||
|
||
drawArray = [rightLeg, leftLeg, rightArm, leftArm, torso, head, frame4, frame3, frame2, frame1]; | ||
|
||
|
||
// OnClick Function | ||
check = function () { | ||
list.onclick = function () { | ||
var geuss = (this.innerHTML); | ||
this.setAttribute("class", "active"); | ||
this.onclick = null; | ||
for (var i = 0; i < word.length; i++) { | ||
if (word[i] === geuss) { | ||
geusses[i].innerHTML = geuss; | ||
counter += 1; | ||
} | ||
} | ||
var j = (word.indexOf(geuss)); | ||
if (j === -1) { | ||
lives -= 1; | ||
comments(); | ||
animate(); | ||
} else { | ||
comments(); | ||
} | ||
} | ||
} | ||
|
||
|
||
// Play | ||
play = function () { | ||
categories = [ | ||
["everton", "liverpool", "swansea", "chelsea", "hull", "manchester-city", "newcastle-united"], | ||
["alien", "dirty-harry", "gladiator", "finding-nemo", "jaws"], | ||
["manchester", "milan", "madrid", "amsterdam", "prague"] | ||
]; | ||
|
||
chosenCategory = categories[Math.floor(Math.random() * categories.length)]; | ||
word = chosenCategory[Math.floor(Math.random() * chosenCategory.length)]; | ||
word = word.replace(/\s/g, "-"); | ||
console.log(word); | ||
buttons(); | ||
|
||
geusses = [ ]; | ||
lives = 10; | ||
counter = 0; | ||
space = 0; | ||
result(); | ||
comments(); | ||
selectCat(); | ||
canvas(); | ||
} | ||
|
||
play(); | ||
|
||
// Hint | ||
|
||
hint.onclick = function() { | ||
|
||
hints = [ | ||
["Based in Mersyside", "Based in Mersyside", "First Welsh team to reach the Premier Leauge", "Owned by A russian Billionaire", "Once managed by Phil Brown", "2013 FA Cup runners up", "Gazza's first club"], | ||
["Science-Fiction horror film", "1971 American action film", "Historical drama", "Anamated Fish", "Giant great white shark"], | ||
["Northern city in the UK", "Home of AC and Inter", "Spanish capital", "Netherlands capital", "Czech Republic capital"] | ||
]; | ||
|
||
var catagoryIndex = categories.indexOf(chosenCategory); | ||
var hintIndex = chosenCategory.indexOf(word); | ||
showClue.innerHTML = "Clue: - " + hints [catagoryIndex][hintIndex]; | ||
}; | ||
|
||
// Reset | ||
|
||
document.getElementById('reset').onclick = function() { | ||
correct.parentNode.removeChild(correct); | ||
letters.parentNode.removeChild(letters); | ||
showClue.innerHTML = ""; | ||
context.clearRect(0, 0, 400, 400); | ||
play(); | ||
} | ||
} |
Oops, something went wrong.