diff --git a/Games/Typing master/css/style.css b/Games/Typing master/css/style.css new file mode 100644 index 000000000..85d98c400 --- /dev/null +++ b/Games/Typing master/css/style.css @@ -0,0 +1,59 @@ +@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@400;600;700&family=Lexend+Deca:wght@100;200;300;400;500;600;700&family=Poppins:wght@300;400;600&display=swap'); + +*{ + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: 'Poppins', sans-serif; +} + +html{ + font-size: 62.5%; +} + +body{ + height: 100vh; + display: flex; + justify-content: center; + align-items: center; + background-color: rgba(191, 172, 226, 0.35); +} + +.typing-section{ + text-align: center; +} + +#textarea{ + border: .1rem solid #A084DC; + border-radius: 1rem; + max-width: 50rem; + width: 50rem; + height: 20rem; + padding: 1rem 2rem; + font-size: 1.6rem; +} + +#btn{ + display: inline-block; + padding: 1rem 2.4rem; + border: none; + border-radius: 1rem; + background-color: #645CBB; + color: #fff; + font-size: 1.8rem; + margin-top: 1.6rem; +} + +h2{ + font-size: 2.4rem; + text-transform: capitalize; + color: #645CBB; + text-align: center; +} + +#showSentence, #score{ + font-size: 1.6rem; + margin: 2rem 0; + letter-spacing: .02rem; + text-align: center; +} diff --git a/Games/Typing master/index.html b/Games/Typing master/index.html new file mode 100644 index 000000000..b4ce839f8 --- /dev/null +++ b/Games/Typing master/index.html @@ -0,0 +1,26 @@ + + + + + typing test + + + + +
+

typing Speed test

+

+ +
+ + +
+ +
+ +

+
+ + + + \ No newline at end of file diff --git a/Games/Typing master/js/index.js b/Games/Typing master/js/index.js new file mode 100644 index 000000000..6f6ca4179 --- /dev/null +++ b/Games/Typing master/js/index.js @@ -0,0 +1,76 @@ +// (actualWords / totalTimeTaken) * 60; + +const typing_ground = document.querySelector('#textarea'); +const btn = document.querySelector('#btn'); +const score = document.querySelector('#score'); +const show_sentence = document.querySelector('#showSentence'); + +let startTime, endTime, totalTimeTaken; + + +const sentences = ['The quick brown fox jumps over the lazy dog 1', + 'The quick brown fox jumps over the lazy dog 2', + 'The quick brown fox jumps over the lazy dog 3 '] + +// step 5 + +const calculateTypingSpeed = (time_taken) => { + let totalWords = typing_ground.value.trim(); + let actualWords = totalWords === '' ? 0 : totalWords.split(" ").length; + + if(actualWords !== 0) { + let typing_speed = (actualWords / time_taken) * 60; + typing_speed = Math.round(typing_speed); + score.innerHTML = `Your typing speed is ${typing_speed} words per minutes & you wrote ${actualWords} words & time taken ${time_taken} sec`; + }else{ + score.innerHTML = `Your typing speed is 0 words per minutes & time taken ${time_taken} sec`; + } +} + +// step 4 +const endTypingTest = () => { + btn.innerText = "Start"; + + let date = new Date(); + endTime = date.getTime(); + + totalTimeTaken = (endTime -startTime) / 1000; + + // console.log(totalTimeTaken); + + calculateTypingSpeed(totalTimeTaken); + + show_sentence.innerHTML = ""; + typing_ground.value = ""; +} + + +// step 3 +const startTyping = () => { + let randomNumber = Math.floor(Math.random() * sentences.length); + // console.log(randomNumber); + show_sentence.innerHTML = sentences[randomNumber]; + + let date = new Date(); + startTime = date.getTime(); + + btn.innerText = "Done"; +} + + + + +// step 2 +btn.addEventListener('click', () => { + switch (btn.innerText.toLowerCase()) { + case "start": + typing_ground.removeAttribute('disabled'); + startTyping(); + break; + + case "done": + typing_ground.setAttribute('disabled' , 'true'); + endTypingTest(); + break; + } +}) diff --git a/Games/Typing master/readme.md b/Games/Typing master/readme.md new file mode 100644 index 000000000..1a56543d6 --- /dev/null +++ b/Games/Typing master/readme.md @@ -0,0 +1,28 @@ +# **Game_Name** +Typing Master +--- + +
+ +## **Description 📃** + +In this gane you get the time how much time taken to write words + + +- + + +## **Screenshots 📸** +![image](https://github.com/kunjgit/GameZone/assets/98798977/0d9776f6-ef7f-4ee9-bf99-80e97c092dea) + +
+ + + +
+ +## **Working video 📹** + + +https://github.com/kunjgit/GameZone/assets/98798977/df633994-5af1-465e-854d-cd4a8ff65ef3 + diff --git a/README.md b/README.md index d81cb0fbe..404c5e4bb 100644 --- a/README.md +++ b/README.md @@ -495,7 +495,7 @@ This repository also provides one such platforms where contributers come over an | 383 | [Puzzel_Winner](https://github.com/kunjgit/GameZone/tree/main/Games/Puzzel_Winner)| | 384 | [Emoji_Intruder](https://github.com/kunjgit/GameZone/tree/main/Games/Emoji_Intruder)| | 385 | [Guess The Weapon](https://github.com/kunjgit/GameZone/tree/main/Games/Guess_The_Weapon)| - +| 386 | [Typing Master](https://github.com/kunjgit/GameZone/tree/main/Games/Typing Master)|
diff --git a/assets/images/Typing Master.png b/assets/images/Typing Master.png new file mode 100644 index 000000000..7b20b4e96 Binary files /dev/null and b/assets/images/Typing Master.png differ