Skip to content

Commit

Permalink
word guess
Browse files Browse the repository at this point in the history
  • Loading branch information
DragonUncaged authored May 16, 2022
1 parent 13a28e9 commit 68ba08e
Show file tree
Hide file tree
Showing 3 changed files with 422 additions and 0 deletions.
34 changes: 34 additions & 0 deletions 168 - Word Guess/index.html
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>
233 changes: 233 additions & 0 deletions 168 - Word Guess/script.js
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();
}
}
Loading

0 comments on commit 68ba08e

Please sign in to comment.