From 731c81909b0645fba63989cd473ae9068326cf36 Mon Sep 17 00:00:00 2001 From: Toni500github <88878648+Toni500github@users.noreply.github.com> Date: Sun, 4 Sep 2022 21:48:39 +0200 Subject: [PATCH 01/20] added choise file instead of doing cd game, you can now choose which game you want to run (ps: i choose to exec python files if they are with js ones, maybe update soon) --- games.sh | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 games.sh diff --git a/games.sh b/games.sh new file mode 100644 index 0000000..e2624ea --- /dev/null +++ b/games.sh @@ -0,0 +1,46 @@ +#!/bin/sh + +echo "[1] Hangman " | lolcat -as 100 +echo "[2] MazeEscape " | lolcat -as 100 +echo "[3] RockPaperScissors " | lolcat -as 100 +echo "[4] Snake " | lolcat -as 100 +echo "[5] TextAdventure " | lolcat -as 100 +echo "[6] TicTacToe " | lolcat -as 100 +echo "[e] Exit" | lolcat -as 100 + +#select the game +echo -e "Enter a Choice :\c" | lolcat +read option + +case $option in + "1") + cd Hangman && python3 hangman.py +;; + "2") + cd MazeEscape && npm run play +;; + + "3") + cd RockPaperScissors && python3 rockpaperscissors.py +;; + + "4") + cd Snake && node index.js +;; + + "5") + cd TextAdventures && npm run play +;; + + "6") + cd TicTacToe && python3 tictactoe.py +;; + + "e") + echo "▄▄▄▄· ▄· ▄▌▄▄▄ . " | lolcat -s 10000 + echo "▐█ ▀█▪▐█▪██▌▀▄.▀· " | lolcat -s 10000 + echo "▐█▀▀█▄▐█▌▐█▪▐▀▀▪▄ " | lolcat -s 10000 + echo "██▄▪▐█ ▐█▀·.▐█▄▄▌ " | lolcat -s 10000 + echo "·▀▀▀▀ ▀ • ▀▀▀ ▀ ▀ " | lolcat -s 10000 + break +esac From cffbbf0b54971e29e9ad2411d3d2e79a0af026bd Mon Sep 17 00:00:00 2001 From: Toni500github Date: Sat, 22 Oct 2022 19:54:16 +0200 Subject: [PATCH 02/20] first commit: adding install-games.sh file --- install-games.sh | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 install-games.sh diff --git a/install-games.sh b/install-games.sh new file mode 100644 index 0000000..13f4793 --- /dev/null +++ b/install-games.sh @@ -0,0 +1,2 @@ +#!/bin/sh + From ab7abe8b9470ebfcd2e4ea14d7d16dd28ea0012c Mon Sep 17 00:00:00 2001 From: Toni500github Date: Sat, 22 Oct 2022 22:02:26 +0200 Subject: [PATCH 03/20] updated install-games.sh file --- LICENSE | 0 MazeEscape/package-lock.json | 31 +++++++++++++++++++++++++- README.md | 0 Snake/package-lock.json | 34 ++++++++++++++++++++++++++++- TextAdventures/package-lock.json | 37 +++++++++++++++++++++++++++++++- TicTacToe/package-lock.json | 3 --- games.sh | 5 +++++ install-games.sh | 14 ++++++++++++ 8 files changed, 118 insertions(+), 6 deletions(-) mode change 100644 => 100755 LICENSE mode change 100644 => 100755 README.md delete mode 100644 TicTacToe/package-lock.json mode change 100644 => 100755 games.sh mode change 100644 => 100755 install-games.sh diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/MazeEscape/package-lock.json b/MazeEscape/package-lock.json index ba7b68f..c6588f3 100644 --- a/MazeEscape/package-lock.json +++ b/MazeEscape/package-lock.json @@ -1,8 +1,37 @@ { "name": "maze-escape", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "maze-escape", + "version": "1.0.0", + "license": "Apache-2.0", + "dependencies": { + "ansi-escapes": "^4.2.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.2.1.tgz", + "integrity": "sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q==", + "dependencies": { + "type-fest": "^0.5.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/type-fest": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz", + "integrity": "sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==", + "engines": { + "node": ">=6" + } + } + }, "dependencies": { "ansi-escapes": { "version": "4.2.1", diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/Snake/package-lock.json b/Snake/package-lock.json index 39fec8d..ee1ca75 100644 --- a/Snake/package-lock.json +++ b/Snake/package-lock.json @@ -1,6 +1,38 @@ { + "name": "snake", + "version": "1.0.0", + "lockfileVersion": 2, "requires": true, - "lockfileVersion": 1, + "packages": { + "": { + "name": "snake", + "version": "1.0.0", + "license": "Apache-2.0", + "dependencies": { + "ansi-escapes": "^4.3.0" + }, + "devDependencies": {} + }, + "node_modules/ansi-escapes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", + "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", + "dependencies": { + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "engines": { + "node": ">=8" + } + } + }, "dependencies": { "ansi-escapes": { "version": "4.3.0", diff --git a/TextAdventures/package-lock.json b/TextAdventures/package-lock.json index 40bb2e8..badf7cf 100644 --- a/TextAdventures/package-lock.json +++ b/TextAdventures/package-lock.json @@ -1,8 +1,43 @@ { "name": "text-adventures", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "text-adventures", + "version": "1.0.0", + "license": "Apache-2.0", + "dependencies": { + "prompts": "^2.2.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/prompts": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.2.1.tgz", + "integrity": "sha512-VObPvJiWPhpZI6C5m60XOzTfnYg/xc/an+r9VYymj9WJW3B/DIH+REzjpAACPf8brwPeP+7vz3bIim3S+AaMjw==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sisteransi": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.3.tgz", + "integrity": "sha512-SbEG75TzH8G7eVXFSN5f9EExILKfly7SUvVY5DhhYLvfhKqhDFY0OzevWa/zwak0RLRfWS5AvfMWpd9gJvr5Yg==" + } + }, "dependencies": { "kleur": { "version": "3.0.3", diff --git a/TicTacToe/package-lock.json b/TicTacToe/package-lock.json deleted file mode 100644 index 48e341a..0000000 --- a/TicTacToe/package-lock.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "lockfileVersion": 1 -} diff --git a/games.sh b/games.sh old mode 100644 new mode 100755 index e2624ea..f9ca7b8 --- a/games.sh +++ b/games.sh @@ -43,4 +43,9 @@ case $option in echo "██▄▪▐█ ▐█▀·.▐█▄▄▌ " | lolcat -s 10000 echo "·▀▀▀▀ ▀ • ▀▀▀ ▀ ▀ " | lolcat -s 10000 break +;; + + *) + printf "Invalid argument, just select the game by the number" + break esac diff --git a/install-games.sh b/install-games.sh old mode 100644 new mode 100755 index 13f4793..ad2884b --- a/install-games.sh +++ b/install-games.sh @@ -1,2 +1,16 @@ #!/bin/sh +#this script will automatically install the node dependences and the python ones, it's just really simple +printf "Installing Hangman dependences..." +pip install pyfiglet + +printf "Installing MazeEscape dependences..." +cd MazeEscape && npm install . + +printf "Installing Snake dependences..." +cd ../Snake && npm install . + +printf "Installing TextAdventures dependences..." +cd ../TextAdventures && npm install . + +printf "Dependences installed succesfully (probably lol)" From 89c25bae32a50350dc2ae19cadc1ffa5bceb1546 Mon Sep 17 00:00:00 2001 From: Toni500github <88878648+Toni500github@users.noreply.github.com> Date: Sat, 22 Oct 2022 22:14:00 +0200 Subject: [PATCH 04/20] Update package-lock.json --- MazeEscape/package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MazeEscape/package-lock.json b/MazeEscape/package-lock.json index c6588f3..949b357 100644 --- a/MazeEscape/package-lock.json +++ b/MazeEscape/package-lock.json @@ -1,7 +1,7 @@ { "name": "maze-escape", "version": "1.0.0", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, "packages": { "": { From 5aa5d5558b102bfecb313350dd08642ea14b41e3 Mon Sep 17 00:00:00 2001 From: Toni500github Date: Sat, 22 Oct 2022 22:43:56 +0200 Subject: [PATCH 05/20] updated README.md file --- MazeEscape/package-lock.json | 2 +- README.md | 13 +++++++++++-- Snake/package-lock.json | 2 +- TextAdventures/package-lock.json | 2 +- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/MazeEscape/package-lock.json b/MazeEscape/package-lock.json index c6588f3..949b357 100644 --- a/MazeEscape/package-lock.json +++ b/MazeEscape/package-lock.json @@ -1,7 +1,7 @@ { "name": "maze-escape", "version": "1.0.0", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, "packages": { "": { diff --git a/README.md b/README.md index 2bdffa6..079f15c 100755 --- a/README.md +++ b/README.md @@ -21,17 +21,26 @@ Installation is very simple. #Clone the repo git clone https://github.com/salifm/cli-games.git cd cli-games +#install the dependences for the games (for Unix systems and Lunix) +bash install-games.sh ``` # How to Play? - -After cloning, run `ls` *(or `dir` on Windows)* to get a list of available directories of games. Then navigate to your favourite game using the `cd` command +#for windows +After cloning, run `dir` to get a list of available directories of games. Then navigate to your favourite game using the `cd` command **Eg:** `cd Hangman` Read the **README** file in the respective directory to get more instruction about installation and playing. Most of the games support different languages (including `node-js` and `python`) and the choice is yours! +#for Unix/Linux +just type +```sh +bash games.sh +``` +and select the game by the number or 'e' for exit. If a game has a JS and Python version, for example *TicTacToe* it will automatically run the python one. if you like more the JS version, just change in games.sh the *python3 name.py* part to *npm run play*. for TicTacToe instead is *node tictactoe.js* + # Contributing Want to contribute this project? We are happy to accept your contributions! You can do the following to contribute us diff --git a/Snake/package-lock.json b/Snake/package-lock.json index ee1ca75..9cf8bb8 100644 --- a/Snake/package-lock.json +++ b/Snake/package-lock.json @@ -1,7 +1,7 @@ { "name": "snake", "version": "1.0.0", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, "packages": { "": { diff --git a/TextAdventures/package-lock.json b/TextAdventures/package-lock.json index badf7cf..51c2a7e 100644 --- a/TextAdventures/package-lock.json +++ b/TextAdventures/package-lock.json @@ -1,7 +1,7 @@ { "name": "text-adventures", "version": "1.0.0", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, "packages": { "": { From cb29a8449ddaf667f1ab88d6316deeefe90b4102 Mon Sep 17 00:00:00 2001 From: Toni500github <88878648+Toni500github@users.noreply.github.com> Date: Sat, 22 Oct 2022 23:03:49 +0200 Subject: [PATCH 06/20] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 079f15c..863a006 100755 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ bash install-games.sh ``` # How to Play? -#for windows +# for windows After cloning, run `dir` to get a list of available directories of games. Then navigate to your favourite game using the `cd` command **Eg:** `cd Hangman` @@ -34,7 +34,7 @@ After cloning, run `dir` to get a list of available directories of games. Then n Read the **README** file in the respective directory to get more instruction about installation and playing. Most of the games support different languages (including `node-js` and `python`) and the choice is yours! -#for Unix/Linux +# for Unix/Linux just type ```sh bash games.sh From 24006389a251733c38180391688c2308bdd3b961 Mon Sep 17 00:00:00 2001 From: Toni500git Date: Sat, 12 Nov 2022 19:06:19 +0100 Subject: [PATCH 07/20] Updating install-games.sh install-games.sh now can detect if node_modules is installed in the directory where it's required running npm install. --- MazeEscape/package-lock.json | 2 +- Snake/package-lock.json | 2 +- install-games.sh | 34 ++++++++++++++++++++++++++++++++-- test.sh | 17 +++++++++++++++++ 4 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 test.sh diff --git a/MazeEscape/package-lock.json b/MazeEscape/package-lock.json index 949b357..c6588f3 100644 --- a/MazeEscape/package-lock.json +++ b/MazeEscape/package-lock.json @@ -1,7 +1,7 @@ { "name": "maze-escape", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, "packages": { "": { diff --git a/Snake/package-lock.json b/Snake/package-lock.json index 9cf8bb8..ee1ca75 100644 --- a/Snake/package-lock.json +++ b/Snake/package-lock.json @@ -1,7 +1,7 @@ { "name": "snake", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, "packages": { "": { diff --git a/install-games.sh b/install-games.sh index ad2884b..9b26f48 100755 --- a/install-games.sh +++ b/install-games.sh @@ -1,16 +1,46 @@ -#!/bin/sh +#!/bin/env bash #this script will automatically install the node dependences and the python ones, it's just really simple +text_installed="dependences installed correctly" +text_not_installed="dependences not installed, please refer the problem log above" + + printf "Installing Hangman dependences..." pip install pyfiglet + printf "Installing MazeEscape dependences..." cd MazeEscape && npm install . +if [[ -d node_modules ]]; then + printf "MazeEscape $text_installed" +else + printf "MazeEscape $text_not_installed" + exit 1 +fi + printf "Installing Snake dependences..." cd ../Snake && npm install . +if [[ -d node_modules ]]; then + printf "Snake $text_installed" +else + printf "Snake $text_not_installed" + exit 1 +fi + printf "Installing TextAdventures dependences..." cd ../TextAdventures && npm install . -printf "Dependences installed succesfully (probably lol)" +if [[ -d node_modules ]]; then + printf "TextAdventures $text_installed" +else + printf "TextAdventures $text_not_installed" + exit 1 +fi + +printf "Dependences installed succesfully (or not probably lol)" + +#hangman +#MazeEscape +#Snake diff --git a/test.sh b/test.sh new file mode 100644 index 0000000..cc0d5db --- /dev/null +++ b/test.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +function MazeEscape() { + +printf "Installing MazeEscape dependences..." +cd MazeEscape && npm install . + +if [[ -d node_modules ]]; then + printf "MazeEscape dependences installed correctly" +else + printf "MazeEscape dependences not installed or installed uncorrectly" + return 1 +fi + +} + +MazeEscape From 6b8b33fe2357a72fc4d6d3924056beea388dc42b Mon Sep 17 00:00:00 2001 From: Toni500github <88878648+Toni500github@users.noreply.github.com> Date: Sat, 12 Nov 2022 19:09:32 +0100 Subject: [PATCH 08/20] Delete test.sh --- test.sh | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 test.sh diff --git a/test.sh b/test.sh deleted file mode 100644 index cc0d5db..0000000 --- a/test.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -function MazeEscape() { - -printf "Installing MazeEscape dependences..." -cd MazeEscape && npm install . - -if [[ -d node_modules ]]; then - printf "MazeEscape dependences installed correctly" -else - printf "MazeEscape dependences not installed or installed uncorrectly" - return 1 -fi - -} - -MazeEscape From 209acde466b77f33b64428e8d07717c3a65d5f5d Mon Sep 17 00:00:00 2001 From: Toni500github Date: Sat, 12 Nov 2022 21:40:57 +0100 Subject: [PATCH 09/20] Updating games.sh and install-games.sh and README.md and package-lock.json version --- README.md | 6 ++-- TextAdventures/package-lock.json | 2 +- games.sh | 51 +++++++++++++++++++++++--------- install-games.sh | 23 +++++++------- 4 files changed, 51 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 863a006..096517e 100755 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ bash install-games.sh ``` # How to Play? -# for windows +### for windows After cloning, run `dir` to get a list of available directories of games. Then navigate to your favourite game using the `cd` command **Eg:** `cd Hangman` @@ -34,12 +34,12 @@ After cloning, run `dir` to get a list of available directories of games. Then n Read the **README** file in the respective directory to get more instruction about installation and playing. Most of the games support different languages (including `node-js` and `python`) and the choice is yours! -# for Unix/Linux +### for Unix/Linux just type ```sh bash games.sh ``` -and select the game by the number or 'e' for exit. If a game has a JS and Python version, for example *TicTacToe* it will automatically run the python one. if you like more the JS version, just change in games.sh the *python3 name.py* part to *npm run play*. for TicTacToe instead is *node tictactoe.js* +and select the game by the number or 'e' for exit. If a game has a JS and Python version, you can choose which one you prefer you to play # Contributing diff --git a/TextAdventures/package-lock.json b/TextAdventures/package-lock.json index 51c2a7e..badf7cf 100644 --- a/TextAdventures/package-lock.json +++ b/TextAdventures/package-lock.json @@ -1,7 +1,7 @@ { "name": "text-adventures", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, "packages": { "": { diff --git a/games.sh b/games.sh index f9ca7b8..975b851 100755 --- a/games.sh +++ b/games.sh @@ -1,21 +1,34 @@ -#!/bin/sh +#!/usr/bin/env bash -echo "[1] Hangman " | lolcat -as 100 -echo "[2] MazeEscape " | lolcat -as 100 -echo "[3] RockPaperScissors " | lolcat -as 100 -echo "[4] Snake " | lolcat -as 100 -echo "[5] TextAdventure " | lolcat -as 100 -echo "[6] TicTacToe " | lolcat -as 100 -echo "[e] Exit" | lolcat -as 100 + +echo "[1] Hangman " | lolcat -as 10000 +echo "[2] MazeEscape " | lolcat -as 10000 +echo "[3] RockPaperScissors " | lolcat -as 10000 +echo "[4] Snake " | lolcat -as 10000 +echo "[5] TextAdventure " | lolcat -as 10000 +echo "[6] TicTacToe " | lolcat -as 10000 +echo "[e] Exit" | lolcat -as 10000 #select the game -echo -e "Enter a Choice :\c" | lolcat +echo -e "Enter a Choice:\c" | lolcat read option case $option in "1") - cd Hangman && python3 hangman.py + echo -e "Python or Javascript/JS version:\c" + read game + case $game in + "js"|"JS"|"Js"|"jS"|"Javascript"|"javascript") + cd Hangman && node hangman.js + ;; + "py"|"python"|"PY"|"Python") + cd Hangman && python3 hangman.py + ;; + *) + printf "Not valid option" + esac ;; + "2") cd MazeEscape && npm run play ;; @@ -25,7 +38,7 @@ case $option in ;; "4") - cd Snake && node index.js + cd Snake && npm run play ;; "5") @@ -33,7 +46,18 @@ case $option in ;; "6") - cd TicTacToe && python3 tictactoe.py + echo -e "Python or Javascript/JS version:\c" + read tictactoe + case $tictactoe in + "js"|"JS"|"Js"|"jS"|"Javascript"|"javascript"|"j") + cd TicTacToe && node tictactoe.js + ;; + "py"|"python"|"PY"|"Python"|"p") + cd TicTacToe && python tictactoe.py + ;; + *) + printf "Not valid option" + esac ;; "e") @@ -42,10 +66,9 @@ case $option in echo "▐█▀▀█▄▐█▌▐█▪▐▀▀▪▄ " | lolcat -s 10000 echo "██▄▪▐█ ▐█▀·.▐█▄▄▌ " | lolcat -s 10000 echo "·▀▀▀▀ ▀ • ▀▀▀ ▀ ▀ " | lolcat -s 10000 - break ;; *) printf "Invalid argument, just select the game by the number" - break + exit 1 esac diff --git a/install-games.sh b/install-games.sh index 9b26f48..918b023 100755 --- a/install-games.sh +++ b/install-games.sh @@ -1,16 +1,16 @@ #!/bin/env bash #this script will automatically install the node dependences and the python ones, it's just really simple -text_installed="dependences installed correctly" -text_not_installed="dependences not installed, please refer the problem log above" +text_installed="dependencies installed correctly \n\n" +text_not_installed="dependencies not installed, please refer the problem log above" -printf "Installing Hangman dependences..." -pip install pyfiglet +printf "Installing Hangman dependencies... \n" +pip install pyfiglet lolcat -printf "Installing MazeEscape dependences..." -cd MazeEscape && npm install . +printf "Installing MazeEscape dependencies... \n" +cd $(dirname $0)/MazeEscape && npm install . if [[ -d node_modules ]]; then printf "MazeEscape $text_installed" @@ -19,7 +19,7 @@ else exit 1 fi -printf "Installing Snake dependences..." +printf "Installing Snake dependencies... \n" cd ../Snake && npm install . if [[ -d node_modules ]]; then @@ -29,7 +29,7 @@ else exit 1 fi -printf "Installing TextAdventures dependences..." +printf "Installing TextAdventures dependencies... \n" cd ../TextAdventures && npm install . if [[ -d node_modules ]]; then @@ -39,8 +39,5 @@ else exit 1 fi -printf "Dependences installed succesfully (or not probably lol)" - -#hangman -#MazeEscape -#Snake +printf "Dependences installed succesfully" +exit 0 From 213705dbc250d8f08278bfb4127bf7cc4f011ee6 Mon Sep 17 00:00:00 2001 From: Toni500github Date: Sat, 12 Nov 2022 22:16:32 +0100 Subject: [PATCH 10/20] adding dirname zsh function so you can run games.sh anywhere --- games.sh | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/games.sh b/games.sh index 975b851..2de327b 100755 --- a/games.sh +++ b/games.sh @@ -1,5 +1,6 @@ #!/usr/bin/env bash +dir=$(dirname $0) echo "[1] Hangman " | lolcat -as 10000 echo "[2] MazeEscape " | lolcat -as 10000 @@ -19,10 +20,10 @@ case $option in read game case $game in "js"|"JS"|"Js"|"jS"|"Javascript"|"javascript") - cd Hangman && node hangman.js + cd $dir/Hangman && node hangman.js ;; "py"|"python"|"PY"|"Python") - cd Hangman && python3 hangman.py + cd $dir/Hangman && python3 hangman.py ;; *) printf "Not valid option" @@ -30,19 +31,19 @@ case $option in ;; "2") - cd MazeEscape && npm run play + cd $dir/MazeEscape && npm run play ;; "3") - cd RockPaperScissors && python3 rockpaperscissors.py + cd $dir/RockPaperScissors && python3 rockpaperscissors.py ;; "4") - cd Snake && npm run play + cd $dir/Snake && npm run play ;; "5") - cd TextAdventures && npm run play + cd $dir/TextAdventures && npm run play ;; "6") @@ -50,10 +51,10 @@ case $option in read tictactoe case $tictactoe in "js"|"JS"|"Js"|"jS"|"Javascript"|"javascript"|"j") - cd TicTacToe && node tictactoe.js + cd $dir/TicTacToe && node tictactoe.js ;; "py"|"python"|"PY"|"Python"|"p") - cd TicTacToe && python tictactoe.py + cd $dir/TicTacToe && python tictactoe.py ;; *) printf "Not valid option" From 517beb5a1e5f85049573a04ab385f1dd7f194935 Mon Sep 17 00:00:00 2001 From: Salif Mehmed Date: Sun, 8 Oct 2023 20:03:06 +0300 Subject: [PATCH 11/20] Update Hangman translation files --- .editorconfig | 18 + Hangman/hangarts.json | 136 +- Hangman/words/bg.json | 28 +- Hangman/words/cs.json | 127 +- Hangman/words/de.json | 128 +- Hangman/words/en-us.json | 12984 +++++++++++++++++++------------------ Hangman/words/es.json | 179 +- Hangman/words/fr.json | 231 +- Hangman/words/gr.json | 177 +- Hangman/words/hr.json | 95 +- Hangman/words/id.json | 2999 ++++----- Hangman/words/it.json | 96 +- Hangman/words/jp.json | 84 +- Hangman/words/lt-lt.json | 96 +- Hangman/words/pt-br.json | 118 +- Hangman/words/ru-ru.json | 124 +- Hangman/words/se.json | 127 +- Hangman/words/tr-tr.json | 94 +- Hangman/words/vi-vn.json | 95 +- Hangman/words/vi.json | 95 +- Hangman/words/vn.json | 95 +- 21 files changed, 9884 insertions(+), 8242 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..eb0ae93 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +# EditorConfig is awesome: https://EditorConfig.org +root = true + +[*] +end_of_line = lf +charset = utf-8 + +[*.json] +indent_style = tab +indent_size = 4 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.js] +indent_style = space +indent_size = 4 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/Hangman/hangarts.json b/Hangman/hangarts.json index d117986..e418025 100644 --- a/Hangman/hangarts.json +++ b/Hangman/hangarts.json @@ -1,12 +1,128 @@ { - "8": ["+-----------+", "||", "||", "||", "||", "||", "||", "||", "||", "||", "|-------------+", "+----------------+"], - "7": ["+-----------+", "|| |", "||", "||", "||", "||", "||", "||", "||", "||", "|-------------+", "+----------------+"], - "6": ["+-----------+", "|| |", "|| __", "|| (OO)", "|| =<", "||", "||", "||", "||", "||", "|-------------+", "+----------------+"], - "5": ["+------+----+", "|| |", "|| __", "|| (OO)", "|| =^", "|| +--+", "|| +--+", "||", "||", "||", "|-------------+", "+----------------+"], - "4": ["+------+----+", "|| |", "|| __", "|| (OO)", "|| =^", "|| <-------->", "|| +--+", "||", "||", "||", "|-------------+", "+----------------+"], - "3": ["+------+----+", "|| |", "|| __", "|| (OO)", "|| =^", "|| <-------->", "|| +--+", "|| ||", "|| <---->", "||", "|-------------+", "+----------------+"], - "2": ["+------+----+", "|| | +----------+", "|| __ | HELP!! |", "|| (OO)+----------+", "|| =^", "|| <-------->", "|| +--+", "|| ||", "|| <---->", "||", "|-------------+", "+----------------+"], - "1": ["+------+----+", "|| | +----------+", "|| __ | NOOO!! |", "|| (OO)+----------+", "|| =^", "|| <-------->", "|| +--+", "|| ||", "|| <---->", "||", "|-------------+", "+----------------+"], - "0": ["+------+----+", "|| |", "|| __", "|| (xx)", "|| -U", "|| <-------->", "|| +--+", "|| ||", "|| <---->", "||", "|-------------+", "+----------------+"] + "8": [ + "+-----------+", + "||", + "||", + "||", + "||", + "||", + "||", + "||", + "||", + "||", + "|-------------+", + "+----------------+" + ], + "7": [ + "+-----------+", + "|| |", + "||", + "||", + "||", + "||", + "||", + "||", + "||", + "||", + "|-------------+", + "+----------------+" + ], + "6": [ + "+-----------+", + "|| |", + "|| __", + "|| (OO)", + "|| =<", + "||", + "||", + "||", + "||", + "||", + "|-------------+", + "+----------------+" + ], + "5": [ + "+------+----+", + "|| |", + "|| __", + "|| (OO)", + "|| =^", + "|| +--+", + "|| +--+", + "||", + "||", + "||", + "|-------------+", + "+----------------+" + ], + "4": [ + "+------+----+", + "|| |", + "|| __", + "|| (OO)", + "|| =^", + "|| <-------->", + "|| +--+", + "||", + "||", + "||", + "|-------------+", + "+----------------+" + ], + "3": [ + "+------+----+", + "|| |", + "|| __", + "|| (OO)", + "|| =^", + "|| <-------->", + "|| +--+", + "|| ||", + "|| <---->", + "||", + "|-------------+", + "+----------------+" + ], + "2": [ + "+------+----+", + "|| | +----------+", + "|| __ | HELP!! |", + "|| (OO)+----------+", + "|| =^", + "|| <-------->", + "|| +--+", + "|| ||", + "|| <---->", + "||", + "|-------------+", + "+----------------+" + ], + "1": [ + "+------+----+", + "|| | +----------+", + "|| __ | NOOO!! |", + "|| (OO)+----------+", + "|| =^", + "|| <-------->", + "|| +--+", + "|| ||", + "|| <---->", + "||", + "|-------------+", + "+----------------+" + ], + "0": [ + "+------+----+", + "|| |", + "|| __", + "|| (xx)", + "|| -U", + "|| <-------->", + "|| +--+", + "|| ||", + "|| <---->", + "||", + "|-------------+", + "+----------------+" + ] } - diff --git a/Hangman/words/bg.json b/Hangman/words/bg.json index 50ba861..234bdf4 100644 --- a/Hangman/words/bg.json +++ b/Hangman/words/bg.json @@ -1,5 +1,5 @@ { - "words": ["бесеница", "програмист", "разработчик", "машина", "скриптиране", "сървър", "програма", "масив", "байткод", "команда", "функция", "аргументи", "променлива", "език", "музика", "функция", "видео", "уебсайт", "приложение", "сметка", "сравнение", "обработка"], + "language": "bg", "played": "Буквата, която написа вече е изиграна!", "you_won": "Ти спечели!", "you_lose": "Ти загуби!", @@ -8,5 +8,29 @@ "remaining": "оставащи познавания", "letters": "Изиграни букви:", "guess": "Познай буква:", - "hangman": "Бесеница" + "hangman": "Бесеница", + "words": [ + "бесеница", + "програмист", + "разработчик", + "машина", + "скриптиране", + "сървър", + "програма", + "масив", + "байткод", + "команда", + "функция", + "аргументи", + "променлива", + "език", + "музика", + "функция", + "видео", + "уебсайт", + "приложение", + "сметка", + "сравнение", + "обработка" + ] } diff --git a/Hangman/words/cs.json b/Hangman/words/cs.json index 7376467..81627a5 100644 --- a/Hangman/words/cs.json +++ b/Hangman/words/cs.json @@ -1,5 +1,5 @@ { - "words": ["algoritmy","oltář","jablko","pavoukovci","argumenty","pole","artefakty","automatizace","bestie","binární","bitový","kniha","boolean","nuda","bytecode","kočka","třída","klient","kóder","příkaz","podmínka","konstruktér","ukřižování","kryptex","temnota","data","databáze","deklarace","závislost","rozmístění","pohrdat","vývojář","slovník","dokumentace","pes","země","editor","podivný","elf","výbuch","výbušnina","faktoriál","hřiště","soubory","oheň","liška","funkce","hraní","github","google","hacker","oběšenec","halda","hebrejština","odsazení","instance","opakování","java","javascript","klávesnice","latina","láva","knihovna","světlo","localhost","smyčky","stroj","makra","kouzelník","zedník","veledílo","paměť","metody","microsoft","paní","myš","noetický","objekt","balíček","papyrus","mazlíček","plazma","program","programátor","pyramida","pythagorus","python","krysa","rekurze","regex","plaz","rituály","skriptování","server","šaman","upřímný","lebka","had","duše","zdroj","pavouk","stoh","stackoverflow","studio","symbolon","symoboly","chrám","terminál","testování","tygr","typ","typescript","jednorožec","proměnna","verze","víno","vizuální","voda","čarodějnice","vlk","slova"], + "language": "cs", "played": "Napsané písmeno již bylo zahráno!", "you_won": "Vyhráli jste!", "you_lose": "Prohráli jste!", @@ -8,5 +8,128 @@ "remaining": "zbývající pokusy", "letters": "Zahraná písmena:", "guess": "Uhádněte písmeno:", - "hangman": "Oběšenec" + "hangman": "Oběšenec", + "words": [ + "algoritmy", + "oltář", + "jablko", + "pavoukovci", + "argumenty", + "pole", + "artefakty", + "automatizace", + "bestie", + "binární", + "bitový", + "kniha", + "boolean", + "nuda", + "bytecode", + "kočka", + "třída", + "klient", + "kóder", + "příkaz", + "podmínka", + "konstruktér", + "ukřižování", + "kryptex", + "temnota", + "data", + "databáze", + "deklarace", + "závislost", + "rozmístění", + "pohrdat", + "vývojář", + "slovník", + "dokumentace", + "pes", + "země", + "editor", + "podivný", + "elf", + "výbuch", + "výbušnina", + "faktoriál", + "hřiště", + "soubory", + "oheň", + "liška", + "funkce", + "hraní", + "github", + "google", + "hacker", + "oběšenec", + "halda", + "hebrejština", + "odsazení", + "instance", + "opakování", + "java", + "javascript", + "klávesnice", + "latina", + "láva", + "knihovna", + "světlo", + "localhost", + "smyčky", + "stroj", + "makra", + "kouzelník", + "zedník", + "veledílo", + "paměť", + "metody", + "microsoft", + "paní", + "myš", + "noetický", + "objekt", + "balíček", + "papyrus", + "mazlíček", + "plazma", + "program", + "programátor", + "pyramida", + "pythagorus", + "python", + "krysa", + "rekurze", + "regex", + "plaz", + "rituály", + "skriptování", + "server", + "šaman", + "upřímný", + "lebka", + "had", + "duše", + "zdroj", + "pavouk", + "stoh", + "stackoverflow", + "studio", + "symbolon", + "symoboly", + "chrám", + "terminál", + "testování", + "tygr", + "typ", + "typescript", + "jednorožec", + "proměnna", + "verze", + "víno", + "vizuální", + "voda", + "čarodějnice", + "vlk", + "slova" + ] } diff --git a/Hangman/words/de.json b/Hangman/words/de.json index a059dc9..1f8f521 100644 --- a/Hangman/words/de.json +++ b/Hangman/words/de.json @@ -1,5 +1,5 @@ { - "words": ["JavaScript", "Java", "Python", "TypeScript", "Galgenraten", "Programmierer", "Entwickler", "Coder", "GitHub", "Google", "Terminal", "Maschine", "Skripten", "Server", "Programm", "Liste", "Bytecode", "Kommando", "Funktion", "Konstruktor", "Argumente", "visuell", "Variable", "Quelle", "Editor", "Microsoft", "Bücherei", "Abhängigkeit", "Version", "testen", "Paket", "Dokumentation", "konditionell", "Schleife", "Datenbank", "Hacker", "binär", "bitweise", "Daten", "Algorithmen", "Klient", "localhost", "Objekt", "Klassen", "Felder", "Berreitstellung", "boolean", "Methoden", "faktoriell", "Rekursion", "Durchlauf", "Instantiierung", "Deklaration", "Typ", "Stapel", "heap", "stackoverflow", "Einrückung", "regex", "Speicher", "Makros", "Tastatur", "Automation", "Dateien", "Wörterbuch", "Dunkelheit", "Schädel", "Schamane", "Seele", "Latein", "Pyramide", "Rituale", "Altar", "Halloween", "Symbolon", "Hebräisch", "Maurer", "noetisch", "Apfel", "Pythagoras", "Meisterwerk", "Artefakte", "Buch", "Rebe", "Symbole", "Kreuzigung", "Messer", "Gabel", "Waschmaschine", "Löffel", "Tisch", "Schreibtisch", "Monitor", "Computer", "Handy", "Tablett", "Glas", "Becher", "Tastatur", "Taschenrechner", "Religion", "Bibel", "Locher", "Konsole", "Fernseher", "Wand", "Tapete", "Farbe", "Festplatte", "Laufwerk", "Neustart", "Verzeichnis", "Leistungsfähigkeit", "Textverarbeitung", "Grafik", "Datenfernübertragung", "Zuse", "Bibliothek", "Datenübertragung", "Betriebssystem", "Treiber", "Netzteil"], + "language": "de", "played": "Der Buchstabe wurde von dir schon ausgewählt!", "you_won": "Du hast gewonnen!", "you_lose": "Du hast verloren!", @@ -8,5 +8,129 @@ "remaining": "verbleibende Versuche", "letters": "Gewählte Buchstaben:", "guess": "Wähle einen Buchstaben:", - "hangman": "Galgenraten" + "hangman": "Galgenraten", + "words": [ + "JavaScript", + "Java", + "Python", + "TypeScript", + "Galgenraten", + "Programmierer", + "Entwickler", + "Coder", + "GitHub", + "Google", + "Terminal", + "Maschine", + "Skripten", + "Server", + "Programm", + "Liste", + "Bytecode", + "Kommando", + "Funktion", + "Konstruktor", + "Argumente", + "visuell", + "Variable", + "Quelle", + "Editor", + "Microsoft", + "Bücherei", + "Abhängigkeit", + "Version", + "testen", + "Paket", + "Dokumentation", + "konditionell", + "Schleife", + "Datenbank", + "Hacker", + "binär", + "bitweise", + "Daten", + "Algorithmen", + "Klient", + "localhost", + "Objekt", + "Klassen", + "Felder", + "Berreitstellung", + "boolean", + "Methoden", + "faktoriell", + "Rekursion", + "Durchlauf", + "Instantiierung", + "Deklaration", + "Typ", + "Stapel", + "heap", + "stackoverflow", + "Einrückung", + "regex", + "Speicher", + "Makros", + "Tastatur", + "Automation", + "Dateien", + "Wörterbuch", + "Dunkelheit", + "Schädel", + "Schamane", + "Seele", + "Latein", + "Pyramide", + "Rituale", + "Altar", + "Halloween", + "Symbolon", + "Hebräisch", + "Maurer", + "noetisch", + "Apfel", + "Pythagoras", + "Meisterwerk", + "Artefakte", + "Buch", + "Rebe", + "Symbole", + "Kreuzigung", + "Messer", + "Gabel", + "Waschmaschine", + "Löffel", + "Tisch", + "Schreibtisch", + "Monitor", + "Computer", + "Handy", + "Tablett", + "Glas", + "Becher", + "Tastatur", + "Taschenrechner", + "Religion", + "Bibel", + "Locher", + "Konsole", + "Fernseher", + "Wand", + "Tapete", + "Farbe", + "Festplatte", + "Laufwerk", + "Neustart", + "Verzeichnis", + "Leistungsfähigkeit", + "Textverarbeitung", + "Grafik", + "Datenfernübertragung", + "Zuse", + "Bibliothek", + "Datenübertragung", + "Betriebssystem", + "Treiber", + "Netzteil" + ] } diff --git a/Hangman/words/en-us.json b/Hangman/words/en-us.json index 9ad0383..ee94bdb 100644 --- a/Hangman/words/en-us.json +++ b/Hangman/words/en-us.json @@ -1,6494 +1,5 @@ { - "words": [ - "aardvark", - "abacus", - "abbey", - "abbreviation", - "abdomen", - "ability", - "abnormality", - "abolishment", - "abortion", - "abrogation", - "absence", - "abundance", - "abuse", - "academics", - "academy", - "accelerant", - "accelerator", - "accent", - "acceptance", - "access", - "accessory", - "accident", - "accommodation", - "accompanist", - "accomplishment", - "accord", - "accordance", - "accordion", - "account", - "accountability", - "accountant", - "accounting", - "accuracy", - "accusation", - "acetate", - "achievement", - "achiever", - "acid", - "acknowledgment", - "acorn", - "acoustics", - "acquaintance", - "acquisition", - "acre", - "acrylic", - "action", - "activation", - "activist", - "activity", - "actor", - "actress", - "acupuncture", - "adaptation", - "adapter", - "addiction", - "addition", - "address", - "adjective", - "adjustment", - "admin", - "administration", - "administrator", - "admire", - "admission", - "adobe", - "adoption", - "adrenalin", - "adrenaline", - "adult", - "adulthood", - "advance", - "advancement", - "advantage", - "advent", - "adverb", - "advertisement", - "advertising", - "advice", - "adviser", - "advocacy", - "advocate", - "affair", - "affect", - "affidavit", - "affiliate", - "affinity", - "afoul", - "afterlife", - "aftermath", - "afternoon", - "aftershave", - "aftershock", - "afterthought", - "agency", - "agenda", - "agent", - "aggradation", - "aggression", - "aglet", - "agony", - "agreement", - "agriculture", - "aide", - "airbag", - "airbus", - "aircraft", - "airfare", - "airfield", - "airforce", - "airline", - "airmail", - "airman", - "airplane", - "airport", - "airship", - "airspace", - "alarm", - "albatross", - "album", - "alcohol", - "alcove", - "alder", - "alert", - "alfalfa", - "algebra", - "algorithm", - "algorithms", - "alias", - "alibi", - "alien", - "allegation", - "allergist", - "alley", - "alliance", - "alligator", - "allocation", - "allowance", - "alloy", - "alluvium", - "almanac", - "almighty", - "almond", - "alpaca", - "alpenglow", - "alpenhorn", - "alpha", - "alphabet", - "altar", - "alteration", - "alternative", - "altitude", - "alto", - "aluminium", - "aluminum", - "amazement", - "amazon", - "ambassador", - "amber", - "ambience", - "ambiguity", - "ambition", - "ambulance", - "amendment", - "amenity", - "ammunition", - "amnesty", - "amount", - "amusement", - "anagram", - "analgesia", - "analog", - "analogue", - "analogy", - "analysis", - "analyst", - "analytics", - "anarchist", - "anarchy", - "anatomy", - "ancestor", - "anchovy", - "android", - "anesthesiologist", - "anesthesiology", - "angel", - "anger", - "angina", - "angiosperm", - "angle", - "angora", - "angstrom", - "anguish", - "animal", - "anime", - "anise", - "ankle", - "anklet", - "anniversary", - "announcement", - "annual", - "anorak", - "answer", - "anteater", - "antecedent", - "antechamber", - "antelope", - "antennae", - "anterior", - "anthropology", - "antibody", - "anticipation", - "anticodon", - "antigen", - "antique", - "antiquity", - "antler", - "antling", - "anxiety", - "anybody", - "anyone", - "anything", - "anywhere", - "apartment", - "aperitif", - "apology", - "apparatus", - "apparel", - "appeal", - "appearance", - "appellation", - "appendix", - "appetiser", - "appetite", - "appetizer", - "applause", - "apple", - "applewood", - "appliance", - "application", - "appointment", - "appreciation", - "apprehension", - "approach", - "appropriation", - "approval", - "apricot", - "apron", - "apse", - "aquarium", - "aquifer", - "arachnid", - "arcade", - "arch", - "archaeologist", - "archaeology", - "archeology", - "archer", - "architect", - "architecture", - "archives", - "area", - "arena", - "argument", - "arguments", - "arithmetic", - "armadillo", - "armament", - "armchair", - "armoire", - "armor", - "armour", - "armpit", - "armrest", - "army", - "arrangement", - "array", - "arrest", - "arrival", - "arrogance", - "arrow", - "artery", - "arthur", - "artichoke", - "article", - "artifact", - "artifacts", - "artificer", - "artist", - "ascend", - "ascent", - "ascot", - "ashram", - "ashtray", - "aside", - "asparagus", - "aspect", - "asphalt", - "aspic", - "assassination", - "assault", - "assembly", - "assertion", - "assessment", - "asset", - "assignment", - "assist", - "assistance", - "assistant", - "associate", - "association", - "assumption", - "assurance", - "asterisk", - "astrakhan", - "astrolabe", - "astrologer", - "astrology", - "astronomy", - "asymmetry", - "atelier", - "atheist", - "athlete", - "athletics", - "atmosphere", - "atom", - "atrium", - "attachment", - "attack", - "attacker", - "attainment", - "attempt", - "attendance", - "attendant", - "attention", - "attenuation", - "attic", - "attitude", - "attorney", - "attraction", - "attribute", - "auction", - "audience", - "audit", - "auditorium", - "aunt", - "authentication", - "authenticity", - "author", - "authorisation", - "authority", - "authorization", - "auto", - "autoimmunity", - "automation", - "automaton", - "autumn", - "availability", - "avalanche", - "avenue", - "average", - "avocado", - "award", - "awareness", - "axis", - "azimuth", - "babe", - "baboon", - "babushka", - "baby", - "bachelor", - "back", - "backbone", - "backburn", - "backdrop", - "background", - "backpack", - "backup", - "backyard", - "bacon", - "bacterium", - "badge", - "badger", - "bafflement", - "bagel", - "baggage", - "baggie", - "baggy", - "bagpipe", - "bail", - "bait", - "bake", - "baker", - "bakery", - "bakeware", - "balaclava", - "balalaika", - "balance", - "balcony", - "ball", - "ballet", - "balloon", - "balloonist", - "ballot", - "ballpark", - "bamboo", - "banana", - "band", - "bandana", - "bandanna", - "bandolier", - "bandwidth", - "bangle", - "banjo", - "bank", - "bankbook", - "banker", - "banking", - "bankruptcy", - "banner", - "banquette", - "banyan", - "baobab", - "barbecue", - "barbeque", - "barber", - "barbiturate", - "bargain", - "barge", - "baritone", - "barium", - "bark", - "barley", - "barn", - "barometer", - "barracks", - "barrage", - "barrel", - "barrier", - "barstool", - "bartender", - "base", - "baseball", - "baseboard", - "baseline", - "basement", - "basics", - "basil", - "basin", - "basis", - "basket", - "basketball", - "bass", - "bassinet", - "bassoon", - "bath", - "bather", - "bathhouse", - "bathrobe", - "bathroom", - "bathtub", - "battalion", - "batter", - "battery", - "batting", - "battle", - "battleship", - "bayou", - "beach", - "bead", - "beak", - "beam", - "bean", - "beancurd", - "beanie", - "beanstalk", - "bear", - "beard", - "beast", - "beastie", - "beat", - "beating", - "beauty", - "beaver", - "beck", - "bedrock", - "bedroom", - "beech", - "beef", - "beer", - "beet", - "beetle", - "beggar", - "beginner", - "beginning", - "begonia", - "behalf", - "behavior", - "behaviour", - "beheading", - "behest", - "behold", - "being", - "belfry", - "belief", - "believer", - "bell", - "belligerency", - "bellows", - "belly", - "belt", - "bench", - "bend", - "beneficiary", - "benefit", - "beret", - "berry", - "bestseller", - "beverage", - "beyond", - "bias", - "bibliography", - "bicycle", - "bidder", - "bidding", - "bidet", - "bifocals", - "bijou", - "bike", - "bikini", - "bill", - "billboard", - "billing", - "billion", - "binary", - "binoculars", - "biology", - "biopsy", - "biosphere", - "biplane", - "birch", - "bird", - "birdbath", - "birdcage", - "birdhouse", - "birth", - "birthday", - "biscuit", - "bite", - "bitten", - "bitter", - "bitwise", - "black", - "blackberry", - "blackbird", - "blackboard", - "blackfish", - "blackness", - "bladder", - "blade", - "blame", - "blank", - "blanket", - "blast", - "blazer", - "blend", - "blessing", - "blight", - "blind", - "blinker", - "blister", - "blizzard", - "block", - "blocker", - "blog", - "blogger", - "blood", - "bloodflow", - "bloom", - "bloomer", - "blossom", - "blouse", - "blow", - "blowgun", - "blowhole", - "blue", - "blueberry", - "blush", - "boar", - "board", - "boat", - "boatload", - "boatyard", - "bobcat", - "body", - "bolero", - "bolt", - "bomb", - "bomber", - "bombing", - "bond", - "bonding", - "bondsman", - "bone", - "bonfire", - "bongo", - "bonnet", - "bonsai", - "bonus", - "boogeyman", - "book", - "bookcase", - "bookend", - "booking", - "booklet", - "bookmark", - "boolean", - "boom", - "boon", - "boost", - "booster", - "boot", - "bootee", - "bootie", - "booty", - "border", - "bore", - "boredom", - "borrower", - "borrowing", - "bosom", - "boss", - "botany", - "bother", - "bottle", - "bottling", - "bottom", - "boudoir", - "bough", - "boulder", - "boulevard", - "boundary", - "bouquet", - "bourgeoisie", - "bout", - "boutique", - "bower", - "bowl", - "bowler", - "bowling", - "bowtie", - "boxer", - "boxspring", - "boycott", - "boyfriend", - "boyhood", - "boysenberry", - "brace", - "bracelet", - "bracket", - "brain", - "brake", - "bran", - "branch", - "brand", - "brandy", - "brass", - "brassiere", - "bratwurst", - "bread", - "breadcrumb", - "breadfruit", - "break", - "breakdown", - "breakfast", - "breakpoint", - "breakthrough", - "breast", - "breastplate", - "breath", - "breeze", - "brewer", - "bribery", - "brick", - "bricklaying", - "bride", - "bridge", - "brief", - "briefing", - "briefly", - "briefs", - "brilliant", - "brink", - "brisket", - "broad", - "broadcast", - "broccoli", - "brochure", - "brocolli", - "broiler", - "broker", - "bronchitis", - "bronco", - "bronze", - "brooch", - "brood", - "brook", - "broom", - "brother", - "brow", - "brown", - "brownie", - "browser", - "browsing", - "brulee", - "brunch", - "brush", - "brushfire", - "brushing", - "bubble", - "buck", - "bucket", - "buckle", - "buckwheat", - "buddy", - "budget", - "buffalo", - "buffer", - "buffet", - "buggy", - "bugle", - "builder", - "building", - "bulb", - "bulk", - "bull", - "bulldozer", - "bullet", - "bump", - "bumper", - "bunch", - "bungalow", - "bunghole", - "bunkhouse", - "burden", - "bureau", - "burglar", - "burial", - "burlesque", - "burn", - "burning", - "burrito", - "burro", - "burrow", - "burst", - "bush", - "business", - "businessman", - "bust", - "bustle", - "butane", - "butcher", - "butler", - "butter", - "butterfly", - "button", - "buyer", - "buying", - "buzz", - "buzzard", - "bytecode", - "cabana", - "cabbage", - "cabin", - "cabinet", - "cable", - "caboose", - "cacao", - "cactus", - "caddy", - "cadet", - "cafe", - "caffeine", - "caftan", - "cage", - "cake", - "calcification", - "calculation", - "calculator", - "calculus", - "calendar", - "calf", - "caliber", - "calibre", - "calico", - "call", - "calm", - "calorie", - "camel", - "cameo", - "camera", - "camp", - "campaign", - "campaigning", - "campanile", - "camper", - "campus", - "canal", - "cancer", - "candelabra", - "candidacy", - "candidate", - "candle", - "candy", - "cane", - "cannibal", - "cannon", - "canoe", - "canon", - "canopy", - "cantaloupe", - "canteen", - "canvas", - "capability", - "capacity", - "cape", - "caper", - "capital", - "capitalism", - "capitulation", - "capon", - "cappelletti", - "cappuccino", - "captain", - "caption", - "captor", - "carabao", - "caramel", - "caravan", - "carbohydrate", - "carbon", - "carboxyl", - "card", - "cardboard", - "cardigan", - "care", - "career", - "cargo", - "caribou", - "carload", - "carnation", - "carnival", - "carol", - "carotene", - "carp", - "carpenter", - "carpet", - "carpeting", - "carport", - "carriage", - "carrier", - "carrot", - "carry", - "cart", - "cartel", - "carter", - "cartilage", - "cartload", - "cartoon", - "cartridge", - "carving", - "cascade", - "case", - "casement", - "cash", - "cashew", - "cashier", - "casino", - "casket", - "cassava", - "casserole", - "cassock", - "cast", - "castanet", - "castle", - "casualty", - "cat", - "catacomb", - "catalogue", - "catalysis", - "catalyst", - "catamaran", - "catastrophe", - "catch", - "catcher", - "category", - "caterpillar", - "cathedral", - "cation", - "catsup", - "cattle", - "cauliflower", - "causal", - "cause", - "causeway", - "caution", - "cave", - "caviar", - "cayenne", - "ceiling", - "celebration", - "celebrity", - "celeriac", - "celery", - "cell", - "cellar", - "cello", - "celsius", - "cement", - "cemetery", - "cenotaph", - "census", - "cent", - "center", - "centimeter", - "centre", - "centurion", - "century", - "cephalopod", - "ceramic", - "ceramics", - "cereal", - "ceremony", - "certainty", - "certificate", - "certification", - "cesspool", - "chafe", - "chain", - "chainstay", - "chair", - "chairlift", - "chairman", - "chairperson", - "chaise", - "chalet", - "chalice", - "chalk", - "challenge", - "chamber", - "champagne", - "champion", - "championship", - "chance", - "chandelier", - "change", - "channel", - "chaos", - "chap", - "chapel", - "chaplain", - "chapter", - "character", - "characteristic", - "characterization", - "chard", - "charge", - "charger", - "charity", - "charlatan", - "charm", - "charset", - "chart", - "charter", - "chasm", - "chassis", - "chastity", - "chasuble", - "chateau", - "chatter", - "chauffeur", - "chauvinist", - "check", - "checkbook", - "checking", - "checkout", - "checkroom", - "cheddar", - "cheek", - "cheer", - "cheese", - "cheesecake", - "cheetah", - "chef", - "chem", - "chemical", - "chemistry", - "chemotaxis", - "cheque", - "cherry", - "chess", - "chest", - "chestnut", - "chick", - "chicken", - "chicory", - "chief", - "chiffonier", - "child", - "childbirth", - "childhood", - "chili", - "chill", - "chime", - "chimpanzee", - "chin", - "chinchilla", - "chino", - "chip", - "chipmunk", - "chivalry", - "chive", - "chives", - "chocolate", - "choice", - "choir", - "choker", - "cholesterol", - "choosing", - "chop", - "chops", - "chopstick", - "chopsticks", - "chord", - "chorus", - "chow", - "chowder", - "chrome", - "chromolithograph", - "chronicle", - "chronograph", - "chronometer", - "chrysalis", - "chub", - "chuck", - "chug", - "church", - "churn", - "chutney", - "cicada", - "cigarette", - "cilantro", - "cinder", - "cinema", - "cinnamon", - "circadian", - "circle", - "circuit", - "circulation", - "circumference", - "circumstance", - "cirrhosis", - "cirrus", - "citizen", - "citizenship", - "citron", - "citrus", - "city", - "civilian", - "civilisation", - "civilization", - "claim", - "clam", - "clamp", - "clan", - "clank", - "clapboard", - "clarification", - "clarinet", - "clarity", - "clasp", - "class", - "classic", - "classification", - "classmate", - "classroom", - "clause", - "clave", - "clavicle", - "clavier", - "claw", - "clay", - "cleaner", - "clearance", - "clearing", - "cleat", - "cleavage", - "clef", - "cleft", - "clergyman", - "cleric", - "clerk", - "click", - "client", - "cliff", - "climate", - "climb", - "clinic", - "clip", - "clipboard", - "clipper", - "cloak", - "cloakroom", - "clock", - "clockwork", - "clogs", - "cloister", - "clone", - "close", - "closet", - "closing", - "closure", - "cloth", - "clothes", - "clothing", - "cloud", - "cloudburst", - "clove", - "clover", - "cloves", - "club", - "clue", - "cluster", - "clutch", - "coach", - "coal", - "coalition", - "coast", - "coaster", - "coat", - "cobbler", - "cobweb", - "cock", - "cockpit", - "cockroach", - "cocktail", - "cocoa", - "coconut", - "code", - "codepage", - "coder", - "codling", - "codon", - "codpiece", - "coevolution", - "cofactor", - "coffee", - "coffin", - "cohesion", - "cohort", - "coil", - "coin", - "coincidence", - "coinsurance", - "coke", - "cold", - "coleslaw", - "coliseum", - "collaboration", - "collagen", - "collapse", - "collar", - "collard", - "collateral", - "colleague", - "collection", - "collectivisation", - "collectivization", - "collector", - "college", - "collision", - "colloquy", - "colon", - "colonial", - "colonialism", - "colonisation", - "colonization", - "colony", - "color", - "colorlessness", - "colt", - "column", - "columnist", - "comb", - "combat", - "combination", - "combine", - "comeback", - "comedy", - "comestible", - "comfort", - "comfortable", - "comic", - "comics", - "comma", - "command", - "commander", - "commandment", - "comment", - "commerce", - "commercial", - "commission", - "commitment", - "committee", - "commodity", - "common", - "commonsense", - "commotion", - "communicant", - "communication", - "communion", - "communist", - "community", - "commuter", - "company", - "comparison", - "compass", - "compassion", - "compassionate", - "compensation", - "competence", - "competition", - "competitor", - "complaint", - "complement", - "completion", - "complex", - "complexity", - "compliance", - "complication", - "complicity", - "compliment", - "component", - "comportment", - "composer", - "composite", - "composition", - "compost", - "comprehension", - "compress", - "compromise", - "comptroller", - "compulsion", - "computer", - "comradeship", - "concentrate", - "concentration", - "concept", - "conception", - "concern", - "concert", - "conclusion", - "concrete", - "condition", - "conditional", - "conditioner", - "condominium", - "condor", - "conduct", - "conductor", - "cone", - "confectionery", - "conference", - "confidence", - "confidentiality", - "configuration", - "confirmation", - "conflict", - "conformation", - "confusion", - "conga", - "congo", - "congregation", - "congress", - "congressman", - "congressperson", - "conifer", - "connection", - "connotation", - "conscience", - "consciousness", - "consensus", - "consent", - "consequence", - "conservation", - "conservative", - "consideration", - "consignment", - "consist", - "consistency", - "console", - "consonant", - "conspiracy", - "conspirator", - "constant", - "constellation", - "constitution", - "constraint", - "construction", - "constructor", - "consul", - "consulate", - "consulting", - "consumer", - "consumption", - "contact", - "contagion", - "container", - "content", - "contention", - "contest", - "context", - "continent", - "contingency", - "continuity", - "contour", - "contract", - "contractor", - "contrail", - "contrary", - "contrast", - "contribution", - "contributor", - "control", - "controller", - "controversy", - "convection", - "convenience", - "convention", - "conversation", - "conversion", - "convert", - "convertible", - "conviction", - "cook", - "cookbook", - "cookie", - "cooking", - "coonskin", - "cooperation", - "coordination", - "coordinator", - "cope", - "copper", - "copy", - "copying", - "copyright", - "copywriter", - "coral", - "cord", - "corduroy", - "core", - "cork", - "cormorant", - "corn", - "corner", - "cornerstone", - "cornet", - "cornflakes", - "cornmeal", - "corporal", - "corporation", - "corporatism", - "corps", - "corral", - "correspondence", - "correspondent", - "corridor", - "corruption", - "corsage", - "cosset", - "cost", - "costume", - "cottage", - "cotton", - "couch", - "cougar", - "cough", - "council", - "councilman", - "councilor", - "councilperson", - "counsel", - "counseling", - "counselling", - "counsellor", - "counselor", - "count", - "counter", - "counterpart", - "counterterrorism", - "countess", - "country", - "countryside", - "county", - "couple", - "coupon", - "courage", - "course", - "court", - "courthouse", - "courtroom", - "cousin", - "covariate", - "cover", - "coverage", - "coverall", - "cowbell", - "cowboy", - "coyote", - "crab", - "crack", - "cracker", - "crackers", - "cradle", - "craft", - "craftsman", - "cranberry", - "crane", - "cranky", - "crap", - "crash", - "crate", - "cravat", - "craw", - "crawdad", - "crayfish", - "crayon", - "crazy", - "cream", - "creation", - "creationism", - "creationist", - "creative", - "creativity", - "creator", - "creature", - "creche", - "credential", - "credenza", - "credibility", - "credit", - "creditor", - "creek", - "creme", - "crepe", - "crest", - "crew", - "crewman", - "crewmate", - "crewmember", - "crewmen", - "cria", - "crib", - "cribbage", - "cricket", - "cricketer", - "crime", - "criminal", - "crinoline", - "crisis", - "crisp", - "criteria", - "criterion", - "critic", - "criticism", - "crocodile", - "crocus", - "croissant", - "crook", - "crop", - "cross", - "crotch", - "croup", - "crow", - "crowd", - "crown", - "crucifixion", - "crude", - "cruelty", - "cruise", - "crumb", - "crunch", - "crusader", - "crush", - "crust", - "cryptex", - "crystal", - "crystallography", - "cube", - "cuckoo", - "cucumber", - "cuisine", - "cultivar", - "cultivator", - "culture", - "culvert", - "cummerbund", - "cupboard", - "cupcake", - "cupola", - "curd", - "cure", - "curio", - "curiosity", - "curl", - "curler", - "currant", - "currency", - "current", - "curriculum", - "curry", - "curse", - "cursor", - "curtailment", - "curtain", - "curve", - "cushion", - "custard", - "custody", - "custom", - "customer", - "cuticle", - "cutlet", - "cutover", - "cutting", - "cyclamen", - "cycle", - "cyclone", - "cyclooxygenase", - "cygnet", - "cylinder", - "cymbal", - "cynic", - "cyst", - "cytokine", - "cytoplasm", - "daddy", - "daffodil", - "dagger", - "dahlia", - "daikon", - "daily", - "dairy", - "daisy", - "damage", - "dame", - "damn", - "dance", - "dancer", - "dancing", - "dandelion", - "danger", - "dare", - "dark", - "darkness", - "darn", - "dart", - "dash", - "dashboard", - "data", - "database", - "date", - "daughter", - "dawn", - "daybed", - "daylight", - "dead", - "deadline", - "deal", - "dealer", - "dealing", - "dearest", - "death", - "deathwatch", - "debate", - "debris", - "debt", - "debtor", - "decade", - "decadence", - "decency", - "decimal", - "decision", - "deck", - "declaration", - "declination", - "decline", - "decoder", - "decongestant", - "decoration", - "decrease", - "decryption", - "dedication", - "deduce", - "deduction", - "deed", - "deep", - "deer", - "default", - "defeat", - "defendant", - "defender", - "defense", - "deficit", - "definition", - "deformation", - "degradation", - "degree", - "delay", - "deliberation", - "delight", - "delivery", - "demand", - "democracy", - "democrat", - "demon", - "demur", - "denim", - "denominator", - "density", - "dentist", - "deodorant", - "department", - "departure", - "dependency", - "dependent", - "deployment", - "deposit", - "deposition", - "depot", - "depression", - "depressive", - "depth", - "deputy", - "derby", - "derivation", - "derivative", - "derrick", - "descendant", - "descent", - "description", - "desert", - "design", - "designation", - "designer", - "desire", - "desk", - "desktop", - "despise", - "dessert", - "destination", - "destiny", - "destroyer", - "destruction", - "detail", - "detainee", - "detainment", - "detection", - "detective", - "detector", - "detention", - "determination", - "detour", - "devastation", - "developer", - "developing", - "development", - "developmental", - "deviance", - "deviation", - "device", - "devil", - "dhow", - "diabetes", - "diadem", - "diagnosis", - "diagram", - "dial", - "dialect", - "dialogue", - "diam", - "diamond", - "diaper", - "diaphragm", - "diarist", - "diary", - "dibble", - "dick", - "dickey", - "dictaphone", - "dictator", - "diction", - "dictionary", - "diesel", - "diet", - "difference", - "differential", - "difficulty", - "diffuse", - "digestion", - "digestive", - "digger", - "digging", - "digit", - "dignity", - "dilapidation", - "dill", - "dilution", - "dime", - "dimension", - "dimple", - "diner", - "dinghy", - "dining", - "dinner", - "dinosaur", - "dioxide", - "diploma", - "diplomacy", - "dipstick", - "direction", - "directive", - "director", - "directory", - "dirndl", - "dirt", - "disability", - "disadvantage", - "disagreement", - "disappointment", - "disarmament", - "disaster", - "discharge", - "discipline", - "disclaimer", - "disclosure", - "disco", - "disconnection", - "discount", - "discourse", - "discovery", - "discrepancy", - "discretion", - "discrimination", - "discussion", - "disdain", - "disease", - "disembodiment", - "disengagement", - "disguise", - "disgust", - "dish", - "dishwasher", - "disk", - "disparity", - "dispatch", - "displacement", - "display", - "disposal", - "disposer", - "disposition", - "dispute", - "disregard", - "disruption", - "dissemination", - "dissonance", - "distance", - "distinction", - "distortion", - "distribution", - "distributor", - "district", - "divalent", - "divan", - "diver", - "diversity", - "divide", - "dividend", - "divider", - "divine", - "diving", - "division", - "divorce", - "dock", - "doctor", - "doctorate", - "doctrine", - "document", - "documentary", - "documentation", - "dog", - "doggie", - "dogsled", - "dogwood", - "doing", - "doll", - "dollar", - "dollop", - "dolman", - "dolor", - "dolphin", - "domain", - "dome", - "domination", - "donation", - "donkey", - "donor", - "donut", - "door", - "doorbell", - "doorknob", - "doorpost", - "doorway", - "dory", - "dose", - "double", - "doubling", - "doubt", - "doubter", - "dough", - "doughnut", - "down", - "downfall", - "downforce", - "downgrade", - "download", - "downstairs", - "downtown", - "downturn", - "dozen", - "draft", - "drag", - "dragon", - "dragonfly", - "dragonfruit", - "dragster", - "drain", - "drainage", - "drake", - "drama", - "dramaturge", - "drapes", - "draw", - "drawbridge", - "drawer", - "drawing", - "dream", - "dreamer", - "dredger", - "dress", - "dresser", - "dressing", - "drill", - "drink", - "drinking", - "drive", - "driver", - "driveway", - "driving", - "drizzle", - "dromedary", - "drop", - "drudgery", - "drug", - "drum", - "drummer", - "drunk", - "dryer", - "duck", - "duckling", - "dude", - "duel", - "dueling", - "duffel", - "dugout", - "dulcimer", - "dumbwaiter", - "dump", - "dune", - "dungarees", - "dungeon", - "duplexer", - "duration", - "durian", - "dusk", - "dust", - "duster", - "duty", - "dwarf", - "dwell", - "dwelling", - "dynamics", - "dynamite", - "dynamo", - "dynasty", - "dysfunction", - "eagle", - "eaglet", - "eardrum", - "earmuffs", - "earnings", - "earplug", - "earring", - "earrings", - "earth", - "earthquake", - "earthworm", - "ease", - "easel", - "east", - "eating", - "eaves", - "eavesdropper", - "ecclesia", - "echidna", - "eclipse", - "ecliptic", - "ecology", - "economics", - "economy", - "ecosystem", - "ectoderm", - "ectodermal", - "ecumenist", - "eddy", - "edge", - "edger", - "edible", - "editing", - "edition", - "editor", - "editorial", - "education", - "effacement", - "effect", - "effective", - "effectiveness", - "effector", - "efficacy", - "efficiency", - "effort", - "egghead", - "eggnog", - "eggplant", - "eicosanoid", - "ejector", - "elbow", - "elderberry", - "eldritch", - "election", - "electricity", - "electrocardiogram", - "electronics", - "element", - "elephant", - "elevation", - "elevator", - "eleventh", - "elicit", - "eligibility", - "elimination", - "elite", - "elixir", - "ellipse", - "elongation", - "elven", - "elver", - "email", - "emanate", - "embarrassment", - "embassy", - "embellishment", - "embossing", - "embryo", - "emerald", - "emergence", - "emergency", - "emergent", - "emery", - "emission", - "emitter", - "emotion", - "emphasis", - "empire", - "employ", - "employee", - "employer", - "employment", - "empowerment", - "enactment", - "encirclement", - "enclave", - "enclosure", - "encounter", - "encouragement", - "encyclopedia", - "endive", - "endoderm", - "endorsement", - "endothelium", - "endpoint", - "enemy", - "energy", - "enforcement", - "engagement", - "engine", - "engineer", - "engineering", - "enigma", - "enjoyment", - "enquiry", - "enrollment", - "enterprise", - "entertainment", - "enthusiasm", - "entirety", - "entity", - "entrance", - "entree", - "entrepreneur", - "entry", - "envelope", - "environment", - "envy", - "enzyme", - "epauliere", - "epee", - "ephemera", - "ephemeris", - "ephyra", - "epic", - "episode", - "epithelium", - "epoch", - "eponym", - "epoxy", - "equal", - "equality", - "equation", - "equinox", - "equipment", - "equity", - "equivalent", - "eraser", - "erection", - "erosion", - "error", - "escalator", - "escape", - "escort", - "espadrille", - "espalier", - "essay", - "essence", - "essential", - "establishment", - "estate", - "estimate", - "estrogen", - "estuary", - "eternity", - "ethernet", - "ethics", - "ethnicity", - "ethyl", - "euphonium", - "eurocentrism", - "evaluation", - "evaluator", - "evaporation", - "evening", - "event", - "everybody", - "everyone", - "everything", - "eviction", - "evidence", - "evil", - "evocation", - "evolution", - "exaggeration", - "exam", - "examination", - "examiner", - "example", - "exasperation", - "excellence", - "exception", - "excerpt", - "excess", - "exchange", - "excitement", - "exclamation", - "excursion", - "excuse", - "execution", - "executive", - "executor", - "exercise", - "exhaust", - "exhaustion", - "exhibit", - "exhibition", - "exile", - "existence", - "exit", - "exocrine", - "expansion", - "expansionism", - "expectancy", - "expectation", - "expedition", - "expense", - "experience", - "experiment", - "experimentation", - "expert", - "expertise", - "explanation", - "exploration", - "explorer", - "explosion", - "explosive", - "export", - "expose", - "exposition", - "exposure", - "expression", - "extension", - "extent", - "exterior", - "external", - "extinction", - "extreme", - "extremist", - "eyeball", - "eyebrow", - "eyebrows", - "eyeglasses", - "eyelash", - "eyelashes", - "eyelid", - "eyelids", - "eyeliner", - "eyestrain", - "eyrie", - "fabric", - "face", - "facelift", - "facet", - "facility", - "facsimile", - "fact", - "factor", - "factorial", - "factory", - "faculty", - "fahrenheit", - "fail", - "failure", - "fairness", - "fairy", - "faith", - "faithful", - "fall", - "fallacy", - "fame", - "familiar", - "familiarity", - "family", - "fang", - "fanlight", - "fanny", - "fantasy", - "farm", - "farmer", - "farming", - "farmland", - "farrow", - "fascia", - "fashion", - "fate", - "father", - "fatigue", - "fatigues", - "faucet", - "fault", - "fava", - "favor", - "favorite", - "fawn", - "fear", - "feast", - "feather", - "feature", - "fedelini", - "federation", - "fedora", - "feed", - "feedback", - "feeding", - "feel", - "feeling", - "fellow", - "felony", - "female", - "fence", - "fencing", - "fender", - "feng", - "fennel", - "ferret", - "ferry", - "ferryboat", - "fertilizer", - "festival", - "fetus", - "fiber", - "fiberglass", - "fibre", - "fibroblast", - "fibrosis", - "ficlet", - "fiction", - "fiddle", - "field", - "fields", - "fiery", - "fiesta", - "fifth", - "fight", - "fighter", - "figure", - "figurine", - "file", - "files", - "filing", - "fill", - "fillet", - "filly", - "film", - "filter", - "filth", - "final", - "finance", - "financing", - "finding", - "fine", - "finer", - "finger", - "fingerling", - "fingernail", - "finish", - "finisher", - "fire", - "fireman", - "fireplace", - "firewall", - "firm", - "first", - "fish", - "fishbone", - "fisherman", - "fishery", - "fishing", - "fishmonger", - "fishnet", - "fisting", - "fitness", - "fixture", - "flag", - "flair", - "flame", - "flan", - "flanker", - "flare", - "flash", - "flat", - "flatboat", - "flavor", - "flax", - "fleck", - "fledgling", - "fleece", - "flesh", - "flexibility", - "flick", - "flicker", - "flight", - "flint", - "flintlock", - "flock", - "flood", - "floodplain", - "floor", - "floozie", - "flour", - "flow", - "flower", - "flugelhorn", - "fluke", - "flume", - "flung", - "flute", - "flytrap", - "foal", - "foam", - "focus", - "fold", - "folder", - "folk", - "folklore", - "follower", - "following", - "fondue", - "font", - "food", - "foodstuffs", - "fool", - "foot", - "footage", - "football", - "footnote", - "footprint", - "footrest", - "footstep", - "footstool", - "footwear", - "forage", - "forager", - "foray", - "force", - "ford", - "forearm", - "forebear", - "forecast", - "forehead", - "foreigner", - "forelimb", - "forest", - "forestry", - "forever", - "forgery", - "fork", - "form", - "formal", - "formamide", - "format", - "formation", - "former", - "formicarium", - "formula", - "fort", - "forte", - "fortnight", - "fortress", - "fortune", - "forum", - "foundation", - "founder", - "founding", - "fountain", - "fourths", - "fowl", - "fox", - "foxglove", - "fraction", - "fragrance", - "frame", - "framework", - "fratricide", - "fraud", - "fraudster", - "freak", - "freckle", - "freedom", - "freelance", - "freezer", - "freezing", - "freight", - "freighter", - "frenzy", - "freon", - "frequency", - "fresco", - "friction", - "fridge", - "friend", - "friendship", - "fries", - "frigate", - "fright", - "fringe", - "fritter", - "frock", - "frog", - "front", - "frontier", - "frost", - "frosting", - "frown", - "fruit", - "frustration", - "fuck", - "fuel", - "fugato", - "fulfillment", - "full", - "function", - "functionality", - "fund", - "funding", - "fundraising", - "funeral", - "furnace", - "furniture", - "furry", - "fusarium", - "futon", - "future", - "gadget", - "gaffe", - "gaffer", - "gain", - "gaiters", - "gale", - "gallery", - "galley", - "gallon", - "galoshes", - "gambling", - "game", - "gamebird", - "gaming", - "gander", - "gang", - "garage", - "garb", - "garbage", - "garden", - "garlic", - "garment", - "garter", - "gasket", - "gasoline", - "gasp", - "gastronomy", - "gastropod", - "gate", - "gateway", - "gather", - "gathering", - "gator", - "gauge", - "gauntlet", - "gavel", - "gazebo", - "gazelle", - "gear", - "gearshift", - "geek", - "gelatin", - "gelding", - "gemsbok", - "gender", - "gene", - "general", - "generation", - "generator", - "generosity", - "genetics", - "genie", - "genius", - "genocide", - "genre", - "gentleman", - "geography", - "geology", - "geometry", - "geranium", - "gerbil", - "gesture", - "geyser", - "gherkin", - "ghost", - "giant", - "gift", - "gigantism", - "giggle", - "ginger", - "gingerbread", - "ginseng", - "giraffe", - "girdle", - "girl", - "girlfriend", - "github", - "glacier", - "gladiolus", - "glance", - "gland", - "glass", - "glasses", - "glee", - "glen", - "glider", - "gliding", - "glimpse", - "globe", - "glockenspiel", - "gloom", - "glory", - "glove", - "glow", - "glucose", - "glue", - "glut", - "glutamate", - "gnat", - "goal", - "goat", - "gobbler", - "goddess", - "godfather", - "godmother", - "godparent", - "goggles", - "going", - "gold", - "goldfish", - "golf", - "gondola", - "gong", - "good", - "goodbye", - "goodie", - "goodness", - "goodnight", - "goodwill", - "google", - "goose", - "gopher", - "gorilla", - "gosling", - "gossip", - "governance", - "government", - "governor", - "gown", - "grace", - "grade", - "gradient", - "graduate", - "graduation", - "graffiti", - "graft", - "grain", - "gram", - "grammar", - "gran", - "grand", - "grandchild", - "granddaughter", - "grandfather", - "grandma", - "grandmom", - "grandmother", - "grandpa", - "grandparent", - "grandson", - "granny", - "granola", - "grant", - "grape", - "grapefruit", - "graph", - "graphic", - "grasp", - "grass", - "grasshopper", - "grassland", - "gratitude", - "gravel", - "gravitas", - "gravity", - "gravy", - "gray", - "grease", - "greatness", - "greed", - "green", - "greenhouse", - "greens", - "grenade", - "grey", - "grid", - "grief", - "grill", - "grin", - "grip", - "gripper", - "grit", - "grocery", - "ground", - "group", - "grouper", - "grouse", - "grove", - "growth", - "grub", - "guacamole", - "guarantee", - "guard", - "guava", - "guerrilla", - "guess", - "guest", - "guestbook", - "guidance", - "guide", - "guideline", - "guilder", - "guilt", - "guilty", - "guinea", - "guitar", - "guitarist", - "gumshoe", - "gunpowder", - "gutter", - "gymnast", - "gymnastics", - "gynaecology", - "gyro", - "habit", - "habitat", - "hacienda", - "hacker", - "hacksaw", - "hackwork", - "hail", - "hair", - "haircut", - "hake", - "half", - "halibut", - "hall", - "halloween", - "hallway", - "halt", - "hamburger", - "hammer", - "hammock", - "hamster", - "hand", - "handball", - "handful", - "handgun", - "handicap", - "handle", - "handlebar", - "handmaiden", - "handover", - "handrail", - "handsaw", - "hanger", - "hangman", - "happening", - "happiness", - "harald", - "harbor", - "harbour", - "hardboard", - "hardcover", - "hardening", - "hardhat", - "hardship", - "hardware", - "hare", - "harm", - "harmonica", - "harmonise", - "harmonize", - "harmony", - "harp", - "harpooner", - "harpsichord", - "harvest", - "harvester", - "hash", - "hashtag", - "hassock", - "haste", - "hatbox", - "hatchet", - "hatchling", - "hate", - "hatred", - "haunt", - "haven", - "haversack", - "havoc", - "hawk", - "haze", - "hazel", - "hazelnut", - "head", - "headache", - "headlight", - "headline", - "headphones", - "headquarters", - "headrest", - "health", - "heap", - "hearing", - "hearsay", - "heart", - "heartache", - "heartbeat", - "hearth", - "hearthside", - "heartwood", - "heat", - "heater", - "heating", - "heaven", - "heavy", - "hebrew", - "hectare", - "hedge", - "hedgehog", - "heel", - "heifer", - "height", - "heir", - "heirloom", - "helicopter", - "helium", - "hell", - "hellcat", - "hello", - "helmet", - "helo", - "help", - "hemisphere", - "hemp", - "hepatitis", - "herb", - "herbs", - "heritage", - "hermit", - "hero", - "heroine", - "heron", - "herring", - "hesitation", - "heterosexual", - "hexagon", - "heyday", - "hiccups", - "hide", - "hierarchy", - "high", - "highland", - "highlight", - "highway", - "hike", - "hiking", - "hill", - "hint", - "hippodrome", - "hippopotamus", - "hire", - "hiring", - "historian", - "history", - "hive", - "hobbit", - "hobby", - "hockey", - "hold", - "holder", - "hole", - "holiday", - "home", - "homeland", - "homeownership", - "hometown", - "homework", - "homicide", - "homogenate", - "homonym", - "homosexual", - "homosexuality", - "honesty", - "honey", - "honeybee", - "honeydew", - "honor", - "honoree", - "hood", - "hoof", - "hook", - "hope", - "hops", - "horde", - "horizon", - "hormone", - "horn", - "hornet", - "horror", - "horse", - "horseradish", - "horst", - "hose", - "hosiery", - "hospice", - "hospital", - "hospitalisation", - "hospitality", - "hospitalization", - "host", - "hostel", - "hostess", - "hotdog", - "hotel", - "hound", - "hour", - "hourglass", - "house", - "houseboat", - "household", - "housewife", - "housework", - "housing", - "hovel", - "hovercraft", - "howard", - "howitzer", - "hubcap", - "hubris", - "hugger", - "hull", - "human", - "humanity", - "humidity", - "hummus", - "humor", - "humour", - "hunchback", - "hundred", - "hunger", - "hunt", - "hunter", - "hunting", - "hurdle", - "hurdler", - "hurricane", - "hurry", - "hurt", - "husband", - "hutch", - "hyacinth", - "hybridisation", - "hybridization", - "hydrant", - "hydraulics", - "hydrocarb", - "hydrocarbon", - "hydrofoil", - "hydrogen", - "hydrolyse", - "hydrolysis", - "hydrolyze", - "hydroxyl", - "hyena", - "hygienic", - "hype", - "hyphenation", - "hypochondria", - "hypothermia", - "hypothesis", - "iceberg", - "icebreaker", - "icecream", - "icicle", - "icing", - "icon", - "idea", - "ideal", - "identification", - "identity", - "ideology", - "idiom", - "idiot", - "igloo", - "ignorance", - "ignorant", - "ikebana", - "illegal", - "illiteracy", - "illness", - "illusion", - "illustration", - "image", - "imagination", - "imbalance", - "imitation", - "immigrant", - "immigration", - "immortal", - "impact", - "impairment", - "impala", - "impediment", - "implement", - "implementation", - "implication", - "import", - "importance", - "impostor", - "impress", - "impression", - "imprisonment", - "impropriety", - "improvement", - "impudence", - "impulse", - "inability", - "inauguration", - "inbox", - "incandescence", - "incarnation", - "incense", - "incentive", - "inch", - "incidence", - "incident", - "incision", - "inclusion", - "income", - "incompetence", - "inconvenience", - "increase", - "incubation", - "indentation", - "independence", - "independent", - "index", - "indication", - "indicator", - "indigence", - "individual", - "industrialisation", - "industrialization", - "industry", - "inequality", - "inevitable", - "infancy", - "infant", - "infarction", - "infection", - "infiltration", - "infinite", - "infix", - "inflammation", - "inflation", - "influence", - "influx", - "info", - "information", - "infrastructure", - "infusion", - "inglenook", - "ingrate", - "ingredient", - "inhabitant", - "inheritance", - "inhibition", - "inhibitor", - "initial", - "initialise", - "initialize", - "initiative", - "injunction", - "injury", - "injustice", - "inlay", - "innervation", - "innocence", - "innocent", - "innovation", - "input", - "inquiry", - "inscription", - "insect", - "insectarium", - "insert", - "inside", - "insight", - "insolence", - "insomnia", - "inspection", - "inspector", - "inspiration", - "installation", - "instance", - "instant", - "instantiation", - "instinct", - "institute", - "institution", - "instruction", - "instructor", - "instrument", - "instrumentalist", - "instrumentation", - "insulation", - "insurance", - "insurgence", - "insurrection", - "integer", - "integral", - "integration", - "integrity", - "intellect", - "intelligence", - "intensity", - "intent", - "intention", - "intentionality", - "interaction", - "interchange", - "interconnection", - "intercourse", - "interest", - "interface", - "interferometer", - "interior", - "interject", - "interloper", - "internet", - "interpretation", - "interpreter", - "interval", - "intervenor", - "intervention", - "interview", - "interviewer", - "intestine", - "introduction", - "intuition", - "invader", - "invasion", - "invention", - "inventor", - "inventory", - "inverse", - "inversion", - "investigation", - "investigator", - "investment", - "investor", - "invitation", - "invite", - "invoice", - "involvement", - "iridescence", - "iris", - "iron", - "ironclad", - "irony", - "irrigation", - "ischemia", - "island", - "isogloss", - "isolation", - "issue", - "item", - "iteration", - "itinerary", - "ivory", - "jack", - "jackal", - "jacket", - "jackfruit", - "jade", - "jaguar", - "jail", - "jailhouse", - "jalape\u00f1o", - "jasmine", - "java", - "javascript", - "jazz", - "jealousy", - "jeans", - "jeep", - "jelly", - "jellybeans", - "jellyfish", - "jerk", - "jewel", - "jeweller", - "jewellery", - "jewelry", - "jicama", - "jiffy", - "jockey", - "jodhpurs", - "joey", - "jogging", - "joint", - "joke", - "journal", - "journalism", - "journalist", - "journey", - "judge", - "judgment", - "judo", - "juggernaut", - "juice", - "julienne", - "jumbo", - "jump", - "jumper", - "jumpsuit", - "jungle", - "junior", - "junk", - "junker", - "junket", - "jury", - "justice", - "justification", - "jute", - "kale", - "kamikaze", - "kangaroo", - "karate", - "kayak", - "kazoo", - "kebab", - "keep", - "keeper", - "kendo", - "kennel", - "ketch", - "ketchup", - "kettle", - "kettledrum", - "keyboard", - "keyboarding", - "keystone", - "kick", - "kidney", - "kielbasa", - "kill", - "killer", - "killing", - "kilogram", - "kilometer", - "kilt", - "kimono", - "kinase", - "kind", - "kindness", - "king", - "kingdom", - "kingfish", - "kiosk", - "kiss", - "kitchen", - "kite", - "kitsch", - "kitten", - "kitty", - "kiwi", - "knee", - "kneejerk", - "knickers", - "knife", - "knight", - "knitting", - "knock", - "knot", - "knowledge", - "knuckle", - "koala", - "kohlrabi", - "kumquat", - "label", - "labor", - "laboratory", - "laborer", - "labour", - "labourer", - "lace", - "lack", - "lacquerware", - "ladder", - "ladle", - "lady", - "ladybug", - "lake", - "lamb", - "lambkin", - "lament", - "lamp", - "lanai", - "land", - "landform", - "landing", - "landmine", - "landscape", - "lane", - "language", - "lantern", - "laparoscope", - "lapdog", - "laptop", - "larch", - "lard", - "larder", - "lark", - "larva", - "laryngitis", - "lasagna", - "lashes", - "last", - "latency", - "latex", - "lathe", - "latin", - "latitude", - "latte", - "latter", - "laugh", - "laughter", - "laundry", - "lava", - "lawmaker", - "lawn", - "lawsuit", - "lawyer", - "layer", - "layout", - "lead", - "leader", - "leadership", - "leading", - "leaf", - "league", - "leaker", - "leap", - "learning", - "leash", - "leather", - "leave", - "leaver", - "lecture", - "leek", - "leeway", - "left", - "legacy", - "legal", - "legend", - "legging", - "legislation", - "legislator", - "legislature", - "legitimacy", - "legume", - "leisure", - "lemon", - "lemonade", - "lemur", - "lender", - "lending", - "length", - "lens", - "lentil", - "leopard", - "leprosy", - "leptocephalus", - "lesbian", - "lesson", - "letter", - "lettuce", - "level", - "lever", - "leverage", - "leveret", - "liability", - "liar", - "liberty", - "libido", - "library", - "licence", - "license", - "licensing", - "licorice", - "lieu", - "lieutenant", - "life", - "lifestyle", - "lifetime", - "lift", - "ligand", - "light", - "lighting", - "lightning", - "lightscreen", - "ligula", - "likelihood", - "likeness", - "lilac", - "lily", - "limb", - "lime", - "limestone", - "limit", - "limitation", - "limo", - "line", - "linen", - "liner", - "linguist", - "linguistics", - "lining", - "link", - "linkage", - "linseed", - "lion", - "lipid", - "lipoprotein", - "lipstick", - "liquid", - "liquidity", - "liquor", - "list", - "listening", - "listing", - "literate", - "literature", - "litigation", - "litmus", - "litter", - "littleneck", - "liver", - "livestock", - "living", - "lizard", - "llama", - "load", - "loading", - "loaf", - "loafer", - "loan", - "lobby", - "lobotomy", - "lobster", - "local", - "localhost", - "locality", - "location", - "lock", - "locker", - "locket", - "locomotive", - "locust", - "lode", - "loft", - "loggia", - "logic", - "login", - "logistics", - "logo", - "loincloth", - "lollipop", - "loneliness", - "longboat", - "longitude", - "look", - "lookout", - "loop", - "loophole", - "loops", - "loquat", - "lord", - "loss", - "lotion", - "lottery", - "lounge", - "louse", - "lout", - "love", - "lover", - "loyalty", - "luck", - "luggage", - "lumber", - "lumberman", - "lunch", - "luncheonette", - "lunchmeat", - "lunchroom", - "lung", - "lunge", - "lust", - "lute", - "luxury", - "lychee", - "lycra", - "lymphocyte", - "lynx", - "lyocell", - "lyre", - "lyrics", - "lysine", - "mRNA", - "macadamia", - "macaroni", - "macaroon", - "macaw", - "machine", - "machinery", - "macrame", - "macro", - "macrofauna", - "macros", - "madam", - "maelstrom", - "maestro", - "magazine", - "maggot", - "magic", - "magician", - "magnet", - "magnitude", - "maid", - "maiden", - "mail", - "mailbox", - "mailer", - "mailing", - "mailman", - "main", - "mainland", - "mainstream", - "maintainer", - "maintenance", - "maize", - "major", - "majority", - "makeover", - "maker", - "makeup", - "making", - "male", - "malice", - "mall", - "mallard", - "mallet", - "malnutrition", - "mama", - "mambo", - "mammoth", - "manacle", - "management", - "manager", - "manatee", - "mandarin", - "mandate", - "mandolin", - "mangle", - "mango", - "mangrove", - "manhunt", - "maniac", - "manicure", - "manifestation", - "manipulation", - "mankind", - "manner", - "manor", - "mansard", - "manservant", - "mansion", - "mantel", - "mantle", - "mantua", - "manufacturer", - "manufacturing", - "many", - "maple", - "mapping", - "maracas", - "marathon", - "marble", - "march", - "mare", - "margarine", - "margin", - "mariachi", - "marimba", - "marines", - "marionberry", - "mark", - "marker", - "market", - "marketer", - "marketing", - "marketplace", - "marksman", - "markup", - "marmalade", - "marriage", - "marsh", - "marshland", - "marshmallow", - "marten", - "marxism", - "mascara", - "mask", - "mason", - "masonry", - "mass", - "massage", - "mast", - "master", - "masterpiece", - "mastication", - "mastoid", - "match", - "matchmaker", - "mate", - "material", - "maternity", - "math", - "mathematics", - "matrix", - "matter", - "mattock", - "mattress", - "maximum", - "maybe", - "mayonnaise", - "mayor", - "meadow", - "meal", - "mean", - "meander", - "meaning", - "means", - "meantime", - "measles", - "measure", - "measurement", - "meat", - "meatball", - "meatloaf", - "mecca", - "mechanic", - "mechanism", - "medal", - "media", - "median", - "medication", - "medicine", - "medium", - "meet", - "meeting", - "melatonin", - "melody", - "melon", - "member", - "membership", - "membrane", - "meme", - "memo", - "memorial", - "memory", - "menopause", - "menorah", - "mention", - "mentor", - "menu", - "merchandise", - "merchant", - "mercury", - "meridian", - "meringue", - "merit", - "mesenchyme", - "mess", - "message", - "messenger", - "messy", - "metabolite", - "metal", - "metallurgist", - "metaphor", - "meteor", - "meteorology", - "meter", - "methane", - "method", - "methodology", - "methods", - "metric", - "metro", - "metronome", - "mezzanine", - "microlending", - "micronutrient", - "microphone", - "microsoft", - "microwave", - "midden", - "middle", - "middleman", - "midline", - "midnight", - "midwife", - "might", - "migrant", - "migration", - "mile", - "mileage", - "milepost", - "milestone", - "military", - "milk", - "milkshake", - "mill", - "millennium", - "millet", - "millimeter", - "million", - "millisecond", - "millstone", - "mime", - "mimosa", - "mincemeat", - "mind", - "mine", - "mineral", - "mineshaft", - "mini", - "minibus", - "minimalism", - "minimum", - "mining", - "minion", - "minister", - "mink", - "minnow", - "minor", - "minority", - "mint", - "minute", - "miracle", - "mirror", - "miscarriage", - "miscommunication", - "misfit", - "misnomer", - "misogyny", - "misplacement", - "misreading", - "misrepresentation", - "miss", - "missile", - "mission", - "missionary", - "mist", - "mistake", - "mister", - "mistress", - "misunderstand", - "miter", - "mitten", - "mixer", - "mixture", - "moai", - "moat", - "mobile", - "mobility", - "mobster", - "moccasins", - "mocha", - "mochi", - "mode", - "model", - "modeling", - "modem", - "modernist", - "modernity", - "modification", - "molar", - "molasses", - "molding", - "mole", - "molecule", - "moment", - "monastery", - "monasticism", - "money", - "monger", - "monitor", - "monitoring", - "monk", - "monkey", - "monocle", - "monopoly", - "monotheism", - "monsoon", - "monster", - "month", - "monument", - "mood", - "moody", - "moon", - "moonlight", - "moonscape", - "moonshine", - "moose", - "morale", - "morbid", - "morbidity", - "morning", - "moron", - "morphology", - "morsel", - "mortal", - "mortality", - "mortgage", - "mortise", - "mosque", - "mosquito", - "most", - "motel", - "moth", - "mother", - "motion", - "motivation", - "motive", - "motor", - "motorboat", - "motorcar", - "motorcycle", - "mound", - "mountain", - "mouse", - "mouser", - "mousse", - "moustache", - "mouth", - "mouton", - "movement", - "mover", - "movie", - "mower", - "mozzarella", - "muffin", - "mukluk", - "mule", - "multimedia", - "murder", - "muscat", - "muscatel", - "muscle", - "musculature", - "museum", - "mushroom", - "music", - "musician", - "muskrat", - "mussel", - "mustache", - "mustard", - "mutation", - "mutt", - "mutton", - "mycoplasma", - "mystery", - "myth", - "mythology", - "nail", - "name", - "naming", - "nanoparticle", - "napkin", - "narrative", - "nasal", - "nation", - "nationality", - "native", - "naturalisation", - "nature", - "navigation", - "necessity", - "neck", - "necklace", - "necktie", - "nectar", - "nectarine", - "need", - "needle", - "neglect", - "negligee", - "negotiation", - "neighbor", - "neighborhood", - "neighbour", - "neighbourhood", - "neologism", - "neon", - "neonate", - "nephew", - "nerve", - "nest", - "nestling", - "nestmate", - "netball", - "netbook", - "netsuke", - "network", - "networking", - "neurobiologist", - "neuron", - "neuropathologist", - "neuropsychiatry", - "news", - "newsletter", - "newspaper", - "newsprint", - "newsstand", - "nexus", - "nibble", - "nicety", - "niche", - "nick", - "nickel", - "nickname", - "niece", - "night", - "nightclub", - "nightgown", - "nightingale", - "nightlife", - "nightlight", - "nightmare", - "ninja", - "nitrogen", - "nobody", - "node", - "noetic", - "noir", - "noise", - "nonbeliever", - "nonconformist", - "nondisclosure", - "nonsense", - "noodle", - "noodles", - "noon", - "norm", - "normal", - "normalisation", - "normalization", - "north", - "nose", - "notation", - "note", - "notebook", - "notepad", - "nothing", - "notice", - "notion", - "notoriety", - "nougat", - "noun", - "nourishment", - "novel", - "nucleotidase", - "nucleotide", - "nudge", - "nuke", - "number", - "numeracy", - "numeric", - "numismatist", - "nurse", - "nursery", - "nursing", - "nurture", - "nutmeg", - "nutrient", - "nutrition", - "nylon", - "nymph", - "oasis", - "oatmeal", - "oats", - "obedience", - "obesity", - "object", - "objection", - "objective", - "obligation", - "oboe", - "observation", - "observatory", - "obsession", - "obsidian", - "obstacle", - "occasion", - "occupation", - "occurrence", - "ocean", - "ocelot", - "octagon", - "octave", - "octavo", - "octet", - "octopus", - "odometer", - "odyssey", - "oeuvre", - "offence", - "offense", - "offer", - "offering", - "office", - "officer", - "official", - "offset", - "okra", - "oldie", - "oleo", - "olive", - "omega", - "omelet", - "omission", - "omnivore", - "oncology", - "onion", - "online", - "onset", - "opening", - "opera", - "operating", - "operation", - "operator", - "ophthalmologist", - "opinion", - "opium", - "opossum", - "opponent", - "opportunist", - "opportunity", - "opposite", - "opposition", - "optimal", - "optimisation", - "optimist", - "optimization", - "option", - "orange", - "orangutan", - "orator", - "orchard", - "orchestra", - "orchid", - "order", - "ordinary", - "ordination", - "oregano", - "organ", - "organisation", - "organising", - "organization", - "organizing", - "orient", - "orientation", - "origin", - "original", - "originality", - "ornament", - "osmosis", - "osprey", - "ostrich", - "other", - "otter", - "ottoman", - "ounce", - "outback", - "outcome", - "outfielder", - "outfit", - "outhouse", - "outlaw", - "outlay", - "outlet", - "outline", - "outlook", - "output", - "outrage", - "outrigger", - "outrun", - "outset", - "outside", - "oval", - "ovary", - "oven", - "overcharge", - "overclocking", - "overcoat", - "overexertion", - "overflight", - "overhead", - "overheard", - "overload", - "overnighter", - "overshoot", - "oversight", - "overview", - "overweight", - "owner", - "ownership", - "oxford", - "oxygen", - "oyster", - "ozone", - "pace", - "pacemaker", - "pack", - "package", - "packaging", - "packet", - "paddle", - "paddock", - "pagan", - "page", - "pagoda", - "pail", - "pain", - "paint", - "painter", - "painting", - "paintwork", - "pair", - "pajamas", - "palace", - "palate", - "palm", - "pamphlet", - "pancake", - "pancreas", - "panda", - "panel", - "panic", - "pannier", - "panpipe", - "pansy", - "panther", - "panties", - "pantologist", - "pantology", - "pantry", - "pants", - "pantsuit", - "panty", - "pantyhose", - "papa", - "papaya", - "paper", - "paperback", - "paperwork", - "papyrus", - "parable", - "parachute", - "parade", - "paradise", - "paragraph", - "parallelogram", - "paramecium", - "paramedic", - "parameter", - "paranoia", - "parcel", - "parchment", - "pard", - "pardon", - "parent", - "parenthesis", - "parenting", - "park", - "parka", - "parking", - "parliament", - "parole", - "parrot", - "parser", - "parsley", - "parsnip", - "part", - "participant", - "participation", - "particle", - "particular", - "partner", - "partnership", - "partridge", - "party", - "pass", - "passage", - "passbook", - "passenger", - "passing", - "passion", - "passive", - "passport", - "password", - "past", - "pasta", - "paste", - "pastor", - "pastoralist", - "pastry", - "pasture", - "patch", - "pate", - "patent", - "patentee", - "path", - "pathogenesis", - "pathology", - "pathway", - "patience", - "patient", - "patina", - "patio", - "patriarch", - "patrimony", - "patriot", - "patrol", - "patroller", - "patrolling", - "patron", - "pattern", - "patty", - "pattypan", - "pause", - "pavement", - "pavilion", - "pawnshop", - "payee", - "payment", - "payoff", - "peace", - "peach", - "peacoat", - "peacock", - "peak", - "peanut", - "pear", - "pearl", - "peasant", - "pecan", - "pecker", - "pedal", - "peek", - "peen", - "peer", - "pegboard", - "pelican", - "pelt", - "penalty", - "pence", - "pencil", - "pendant", - "pendulum", - "penguin", - "penicillin", - "peninsula", - "penis", - "pennant", - "penny", - "pension", - "pentagon", - "peony", - "people", - "pepper", - "pepperoni", - "percent", - "percentage", - "perception", - "perch", - "perennial", - "perfection", - "performance", - "perfume", - "period", - "periodical", - "peripheral", - "permafrost", - "permission", - "permit", - "perp", - "perpendicular", - "persimmon", - "person", - "personal", - "personality", - "personnel", - "perspective", - "pest", - "pet", - "petal", - "petition", - "petitioner", - "petticoat", - "pharmacist", - "pharmacopoeia", - "phase", - "pheasant", - "phenomenon", - "phenotype", - "pheromone", - "philanthropy", - "philosopher", - "philosophy", - "phone", - "phosphate", - "photo", - "photodiode", - "photograph", - "photographer", - "photography", - "photoreceptor", - "phrase", - "phrasing", - "physical", - "physics", - "physiology", - "pianist", - "piano", - "piccolo", - "pick", - "pickax", - "pickaxe", - "picket", - "pickle", - "pickup", - "picnic", - "picture", - "picturesque", - "piece", - "pier", - "piety", - "pigeon", - "piglet", - "pigpen", - "pigsty", - "pike", - "pilaf", - "pile", - "pilgrim", - "pilgrimage", - "pill", - "pillar", - "pillbox", - "pillow", - "pilot", - "pimp", - "pimple", - "pinafore", - "pine", - "pineapple", - "pinecone", - "ping", - "pink", - "pinkie", - "pinot", - "pinstripe", - "pint", - "pinto", - "pinworm", - "pioneer", - "pipe", - "pipeline", - "piracy", - "pirate", - "piss", - "pistol", - "pita", - "pitch", - "pitcher", - "pitching", - "pith", - "pizza", - "place", - "placebo", - "placement", - "placode", - "plagiarism", - "plain", - "plaintiff", - "plan", - "plane", - "planet", - "planning", - "plant", - "plantation", - "planter", - "planula", - "plasma", - "plaster", - "plasterboard", - "plastic", - "plate", - "platelet", - "platform", - "platinum", - "platter", - "platypus", - "play", - "player", - "playground", - "playroom", - "playwright", - "plea", - "pleasure", - "pleat", - "pledge", - "plenty", - "plier", - "pliers", - "plight", - "plot", - "plough", - "plover", - "plow", - "plowman", - "plug", - "plugin", - "plum", - "plumber", - "plume", - "plunger", - "plywood", - "pneumonia", - "pocket", - "pocketbook", - "podcast", - "poem", - "poet", - "poetry", - "poignance", - "point", - "poison", - "poisoning", - "poker", - "polarisation", - "polarization", - "pole", - "polenta", - "police", - "policeman", - "policy", - "polish", - "politician", - "politics", - "poll", - "polliwog", - "pollutant", - "pollution", - "polo", - "polyester", - "polyp", - "pomegranate", - "pomelo", - "pompom", - "poncho", - "pond", - "pony", - "pool", - "poor", - "popcorn", - "poppy", - "popsicle", - "popularity", - "population", - "populist", - "porcelain", - "porch", - "porcupine", - "pork", - "porpoise", - "port", - "porter", - "portfolio", - "porthole", - "portion", - "portrait", - "position", - "possession", - "possibility", - "possible", - "post", - "postage", - "postbox", - "poster", - "posterior", - "postfix", - "potato", - "potential", - "pottery", - "potty", - "pouch", - "poultry", - "pound", - "pounding", - "poverty", - "powder", - "power", - "practice", - "practitioner", - "prairie", - "praise", - "pray", - "prayer", - "precedence", - "precedent", - "precipitation", - "precision", - "predecessor", - "preface", - "preference", - "prefix", - "pregnancy", - "prejudice", - "prelude", - "premeditation", - "premier", - "premise", - "premium", - "preoccupation", - "preparation", - "prescription", - "presence", - "present", - "presentation", - "preservation", - "preserves", - "presidency", - "president", - "press", - "pressroom", - "pressure", - "pressurisation", - "pressurization", - "prestige", - "presume", - "pretzel", - "prevalence", - "prevention", - "prey", - "price", - "pricing", - "pride", - "priest", - "priesthood", - "primary", - "primate", - "prince", - "princess", - "principal", - "principle", - "print", - "printer", - "printing", - "prior", - "priority", - "prison", - "prisoner", - "privacy", - "private", - "privilege", - "prize", - "prizefight", - "probability", - "probation", - "probe", - "problem", - "procedure", - "proceedings", - "process", - "processing", - "processor", - "proctor", - "procurement", - "produce", - "producer", - "product", - "production", - "productivity", - "profession", - "professional", - "professor", - "profile", - "profit", - "progenitor", - "program", - "programme", - "programmer", - "programming", - "progress", - "progression", - "prohibition", - "project", - "proliferation", - "promenade", - "promise", - "promotion", - "prompt", - "pronoun", - "pronunciation", - "proof", - "propaganda", - "propane", - "property", - "prophet", - "proponent", - "proportion", - "proposal", - "proposition", - "proprietor", - "prose", - "prosecution", - "prosecutor", - "prospect", - "prosperity", - "prostacyclin", - "prostanoid", - "prostrate", - "protection", - "protein", - "protest", - "protocol", - "providence", - "provider", - "province", - "provision", - "prow", - "proximal", - "proximity", - "prune", - "pruner", - "pseudocode", - "pseudoscience", - "psychiatrist", - "psychoanalyst", - "psychologist", - "psychology", - "ptarmigan", - "public", - "publication", - "publicity", - "publisher", - "publishing", - "pudding", - "puddle", - "puffin", - "puggle", - "pulley", - "pulse", - "puma", - "pump", - "pumpernickel", - "pumpkin", - "pumpkinseed", - "punch", - "punctuation", - "punishment", - "pupa", - "pupil", - "puppet", - "puppy", - "purchase", - "puritan", - "purity", - "purple", - "purpose", - "purr", - "purse", - "pursuit", - "push", - "pusher", - "puzzle", - "pyramid", - "pyridine", - "pythagorus", - "python", - "quadrant", - "quail", - "qualification", - "quality", - "quantity", - "quart", - "quarter", - "quartet", - "quartz", - "queen", - "query", - "quest", - "question", - "questioner", - "questionnaire", - "quiche", - "quicksand", - "quiet", - "quill", - "quilt", - "quince", - "quinoa", - "quit", - "quiver", - "quota", - "quotation", - "quote", - "rabbi", - "rabbit", - "raccoon", - "race", - "racer", - "racing", - "racism", - "racist", - "rack", - "radar", - "radiator", - "radio", - "radiosonde", - "radish", - "raffle", - "raft", - "rage", - "raid", - "rail", - "railing", - "railroad", - "railway", - "raiment", - "rain", - "rainbow", - "raincoat", - "rainmaker", - "rainstorm", - "rainy", - "raise", - "raisin", - "rake", - "rally", - "rambler", - "ramen", - "ramie", - "ranch", - "rancher", - "randomisation", - "randomization", - "range", - "ranger", - "rank", - "rape", - "raspberry", - "rat", - "rate", - "ratepayer", - "rating", - "ratio", - "rationale", - "rations", - "raven", - "ravioli", - "rawhide", - "rayon", - "razor", - "reach", - "reactant", - "reaction", - "read", - "reader", - "readiness", - "reading", - "real", - "reality", - "realization", - "realm", - "reamer", - "rear", - "reason", - "reasoning", - "rebel", - "rebellion", - "reboot", - "recall", - "recapitulation", - "receipt", - "receiver", - "reception", - "receptor", - "recess", - "recession", - "recipe", - "recipient", - "reciprocity", - "reclamation", - "recliner", - "recognition", - "recollection", - "recommendation", - "reconsideration", - "record", - "recorder", - "recording", - "recovery", - "recreation", - "recruit", - "rectangle", - "recursion", - "redesign", - "redhead", - "redirect", - "rediscovery", - "reduction", - "reef", - "refectory", - "reference", - "referendum", - "reflection", - "reform", - "refreshments", - "refrigerator", - "refuge", - "refund", - "refusal", - "refuse", - "regard", - "regex", - "regime", - "region", - "regionalism", - "register", - "registration", - "registry", - "regret", - "regulation", - "regulator", - "rehospitalisation", - "rehospitalization", - "reindeer", - "reinscription", - "reject", - "relation", - "relationship", - "relative", - "relaxation", - "relay", - "release", - "reliability", - "relief", - "religion", - "relish", - "reluctance", - "remains", - "remark", - "reminder", - "remnant", - "remote", - "removal", - "renaissance", - "rent", - "reorganisation", - "reorganization", - "repair", - "reparation", - "repayment", - "repeat", - "replacement", - "replica", - "replication", - "reply", - "report", - "reporter", - "reporting", - "repository", - "representation", - "representative", - "reprocessing", - "reptile", - "republic", - "republican", - "reputation", - "request", - "requirement", - "resale", - "rescue", - "research", - "researcher", - "resemblance", - "reservation", - "reserve", - "reservoir", - "reset", - "residence", - "resident", - "residue", - "resist", - "resistance", - "resolution", - "resolve", - "resort", - "resource", - "respect", - "respite", - "response", - "responsibility", - "rest", - "restaurant", - "restoration", - "restriction", - "restroom", - "restructuring", - "result", - "resume", - "retailer", - "retention", - "rethinking", - "retina", - "retirement", - "retouching", - "retreat", - "retrospect", - "retrospective", - "retrospectivity", - "return", - "reunion", - "revascularisation", - "revascularization", - "reveal", - "revelation", - "revenant", - "revenge", - "revenue", - "reversal", - "reverse", - "review", - "revitalisation", - "revitalization", - "revival", - "revolution", - "revolver", - "reward", - "rhetoric", - "rheumatism", - "rhinoceros", - "rhubarb", - "rhyme", - "rhythm", - "ribbon", - "rice", - "riddle", - "ride", - "rider", - "ridge", - "riding", - "rifle", - "right", - "ring", - "ringworm", - "riot", - "ripple", - "rise", - "riser", - "risk", - "rite", - "ritual", - "rituals", - "river", - "riverbed", - "rivulet", - "road", - "roadway", - "roar", - "roast", - "robe", - "robin", - "robot", - "robotics", - "rock", - "rocker", - "rocket", - "role", - "roll", - "roller", - "romaine", - "romance", - "roof", - "room", - "roommate", - "rooster", - "root", - "rope", - "rose", - "rosemary", - "roster", - "rostrum", - "rotation", - "round", - "roundabout", - "route", - "router", - "routine", - "rowboat", - "rowing", - "rubber", - "rubbish", - "rubric", - "ruby", - "ruckus", - "rudiment", - "ruffle", - "rugby", - "ruin", - "rule", - "ruler", - "ruling", - "rumor", - "runaway", - "runner", - "running", - "runway", - "rush", - "rust", - "rutabaga", - "sabre", - "sack", - "saddle", - "sadness", - "safari", - "safe", - "safeguard", - "safety", - "saffron", - "sage", - "sail", - "sailboat", - "sailing", - "sailor", - "saint", - "sake", - "salad", - "salami", - "salary", - "sale", - "salesman", - "salmon", - "salon", - "saloon", - "salsa", - "salt", - "salute", - "samovar", - "sampan", - "sample", - "samurai", - "sanction", - "sanctity", - "sanctuary", - "sand", - "sandal", - "sandbar", - "sandpaper", - "sandwich", - "sanity", - "sardine", - "sari", - "sarong", - "sash", - "satellite", - "satin", - "satire", - "satisfaction", - "sauce", - "saucer", - "sauerkraut", - "sausage", - "savage", - "savannah", - "saving", - "savings", - "savior", - "saviour", - "savory", - "saxophone", - "scaffold", - "scale", - "scallion", - "scallops", - "scalp", - "scam", - "scanner", - "scarecrow", - "scarf", - "scarification", - "scenario", - "scene", - "scenery", - "scent", - "schedule", - "scheduling", - "schema", - "scheme", - "schizophrenic", - "schnitzel", - "scholar", - "scholarship", - "school", - "schoolhouse", - "schooner", - "science", - "scientist", - "scimitar", - "scissors", - "scooter", - "scope", - "score", - "scorn", - "scorpion", - "scotch", - "scout", - "scow", - "scrambled", - "scrap", - "scraper", - "scratch", - "screamer", - "screen", - "screening", - "screenwriting", - "screw", - "screwdriver", - "scrim", - "scrip", - "script", - "scripting", - "scripture", - "scrutiny", - "sculpting", - "sculptural", - "sculpture", - "seabass", - "seafood", - "seagull", - "seal", - "seaplane", - "search", - "seashore", - "seaside", - "season", - "seat", - "seaweed", - "second", - "secrecy", - "secret", - "secretariat", - "secretary", - "secretion", - "section", - "sectional", - "sector", - "security", - "sediment", - "seed", - "seeder", - "seeker", - "seep", - "segment", - "seizure", - "selection", - "self", - "seller", - "selling", - "semantics", - "semester", - "semicircle", - "semicolon", - "semiconductor", - "seminar", - "senate", - "senator", - "sender", - "senior", - "sense", - "sensibility", - "sensitive", - "sensitivity", - "sensor", - "sentence", - "sentencing", - "sentiment", - "sepal", - "separation", - "septicaemia", - "sequel", - "sequence", - "serial", - "series", - "sermon", - "serum", - "serval", - "servant", - "server", - "service", - "servitude", - "sesame", - "session", - "setback", - "setting", - "settlement", - "settler", - "severity", - "sewer", - "sexuality", - "shack", - "shackle", - "shade", - "shadow", - "shadowbox", - "shakedown", - "shaker", - "shallot", - "shallows", - "shaman", - "shame", - "shampoo", - "shanty", - "shape", - "share", - "shareholder", - "shark", - "shaw", - "shawl", - "shear", - "shearling", - "sheath", - "shed", - "sheep", - "sheet", - "shelf", - "shell", - "shelter", - "sherbet", - "sherry", - "shield", - "shift", - "shin", - "shine", - "shingle", - "ship", - "shipper", - "shipping", - "shipyard", - "shirt", - "shirtdress", - "shit", - "shoat", - "shock", - "shoe", - "shoehorn", - "shoelace", - "shoemaker", - "shoes", - "shoestring", - "shofar", - "shoot", - "shootdown", - "shop", - "shopper", - "shopping", - "shore", - "shoreline", - "short", - "shortage", - "shorts", - "shortwave", - "shot", - "shoulder", - "shout", - "shovel", - "show", - "shower", - "shred", - "shrimp", - "shrine", - "shutdown", - "sibling", - "sick", - "sickness", - "side", - "sideboard", - "sideburns", - "sidecar", - "sidestream", - "sidewalk", - "siding", - "siege", - "sigh", - "sight", - "sightseeing", - "sign", - "signal", - "signature", - "signet", - "significance", - "signify", - "signup", - "silence", - "silica", - "silicon", - "silk", - "silkworm", - "sill", - "silly", - "silo", - "silver", - "similarity", - "simple", - "simplicity", - "simplification", - "simvastatin", - "sincere", - "singer", - "singing", - "singular", - "sink", - "sinuosity", - "sister", - "sitar", - "site", - "situation", - "size", - "skate", - "skating", - "skean", - "skeleton", - "skiing", - "skill", - "skin", - "skirt", - "skull", - "skullcap", - "skullduggery", - "skunk", - "skylight", - "skyline", - "skyscraper", - "skywalk", - "slang", - "slapstick", - "slash", - "slate", - "slave", - "slavery", - "slaw", - "sled", - "sledge", - "sleep", - "sleepiness", - "sleeping", - "sleet", - "sleuth", - "slice", - "slide", - "slider", - "slime", - "slip", - "slipper", - "slippers", - "slope", - "slot", - "sloth", - "slump", - "smell", - "smelting", - "smile", - "smith", - "smock", - "smog", - "smoke", - "smoking", - "smolt", - "smuggling", - "snack", - "snail", - "snake", - "snakebite", - "snap", - "snarl", - "sneaker", - "sneakers", - "sneeze", - "sniffle", - "snob", - "snorer", - "snow", - "snowboarding", - "snowflake", - "snowman", - "snowmobiling", - "snowplow", - "snowstorm", - "snowsuit", - "snuck", - "snug", - "snuggle", - "soap", - "soccer", - "socialism", - "socialist", - "society", - "sociology", - "sock", - "socks", - "soda", - "sofa", - "softball", - "softdrink", - "softening", - "software", - "soil", - "soldier", - "sole", - "solicitation", - "solicitor", - "solidarity", - "solidity", - "soliloquy", - "solitaire", - "solution", - "solvency", - "sombrero", - "somebody", - "someone", - "someplace", - "somersault", - "something", - "somewhere", - "sonar", - "sonata", - "song", - "songbird", - "sonnet", - "soot", - "sophomore", - "soprano", - "sorbet", - "sorghum", - "sorrel", - "sorrow", - "sort", - "soul", - "soulmate", - "sound", - "soundness", - "soup", - "source", - "sourwood", - "sousaphone", - "south", - "southeast", - "souvenir", - "sovereignty", - "soybean", - "space", - "spacing", - "spade", - "spaghetti", - "span", - "spandex", - "spank", - "sparerib", - "spark", - "sparrow", - "spasm", - "spat", - "spatula", - "spawn", - "speaker", - "speakerphone", - "speaking", - "spear", - "spec", - "special", - "specialist", - "specialty", - "species", - "specification", - "spectacle", - "spectacles", - "spectrograph", - "spectrum", - "speculation", - "speech", - "speed", - "speedboat", - "spell", - "spelling", - "spelt", - "spending", - "sphere", - "sphynx", - "spice", - "spider", - "spiderling", - "spike", - "spill", - "spinach", - "spine", - "spiral", - "spirit", - "spiritual", - "spirituality", - "spit", - "spite", - "spleen", - "splendor", - "split", - "spokesman", - "spokeswoman", - "sponge", - "sponsor", - "sponsorship", - "spool", - "spoon", - "spork", - "sport", - "sportsman", - "spot", - "spotlight", - "spouse", - "sprag", - "sprat", - "spray", - "spread", - "spreadsheet", - "spree", - "spring", - "sprinkles", - "sprinter", - "sprout", - "spruce", - "spud", - "spume", - "spur", - "spyglass", - "square", - "squash", - "squatter", - "squeegee", - "squid", - "squirrel", - "stab", - "stability", - "stable", - "stack", - "stacking", - "stackoverflow", - "stadium", - "staff", - "stag", - "stage", - "stain", - "stair", - "staircase", - "stake", - "stalk", - "stall", - "stallion", - "stamen", - "stamina", - "stamp", - "stance", - "stand", - "standard", - "standardisation", - "standardization", - "standing", - "standoff", - "standpoint", - "star", - "starboard", - "start", - "starter", - "state", - "statement", - "statin", - "station", - "statistic", - "statistics", - "statue", - "status", - "statute", - "stay", - "steak", - "stealth", - "steam", - "steamroller", - "steel", - "steeple", - "stem", - "stench", - "stencil", - "step", - "stepdaughter", - "stepmother", - "stepson", - "stereo", - "stew", - "steward", - "stick", - "sticker", - "stiletto", - "still", - "stimulation", - "stimulus", - "sting", - "stinger", - "stitch", - "stitcher", - "stock", - "stockings", - "stole", - "stomach", - "stone", - "stonework", - "stool", - "stop", - "stopsign", - "stopwatch", - "storage", - "store", - "storey", - "storm", - "story", - "storyboard", - "stot", - "stove", - "strait", - "strand", - "stranger", - "strap", - "strategy", - "straw", - "strawberry", - "strawman", - "stream", - "street", - "streetcar", - "strength", - "stress", - "stretch", - "strife", - "strike", - "string", - "strip", - "stripe", - "strobe", - "stroke", - "structure", - "strudel", - "struggle", - "stucco", - "stud", - "student", - "studio", - "study", - "stuff", - "stumbling", - "stump", - "stupidity", - "sturgeon", - "style", - "styling", - "stylus", - "subcomponent", - "subconscious", - "subcontractor", - "subexpression", - "subgroup", - "subject", - "submarine", - "submitter", - "subprime", - "subroutine", - "subscription", - "subsection", - "subset", - "subsidence", - "subsidiary", - "subsidy", - "substance", - "substitution", - "subtitle", - "suburb", - "subway", - "success", - "succotash", - "suck", - "sucker", - "suede", - "suet", - "suffocation", - "sugar", - "suggestion", - "suicide", - "suit", - "suitcase", - "suite", - "sulfur", - "sultan", - "summary", - "summer", - "summit", - "sunbeam", - "sunbonnet", - "sundae", - "sunday", - "sundial", - "sunflower", - "sunglasses", - "sunlamp", - "sunlight", - "sunrise", - "sunroom", - "sunset", - "sunshine", - "superiority", - "supermarket", - "supernatural", - "supervision", - "supervisor", - "supper", - "supplement", - "supplier", - "supply", - "support", - "supporter", - "suppression", - "supreme", - "surface", - "surfboard", - "surge", - "surgeon", - "surgery", - "surname", - "surplus", - "surprise", - "surround", - "surroundings", - "surrounds", - "survey", - "survival", - "survivor", - "sushi", - "suspect", - "suspenders", - "suspension", - "sustainment", - "sustenance", - "swallow", - "swamp", - "swan", - "swanling", - "swath", - "sweat", - "sweater", - "sweatshirt", - "sweatshop", - "sweatsuit", - "sweets", - "swell", - "swim", - "swimming", - "swimsuit", - "swine", - "swing", - "switch", - "switchboard", - "switching", - "swivel", - "sword", - "swordfight", - "swordfish", - "sycamore", - "symbol", - "symbolon", - "symmetry", - "symobols", - "sympathy", - "symptom", - "syndicate", - "syndrome", - "synergy", - "synod", - "synonym", - "synthesis", - "syrup", - "system", - "tabby", - "tabernacle", - "table", - "tablecloth", - "tablet", - "tabletop", - "tachometer", - "tackle", - "taco", - "tactics", - "tactile", - "tadpole", - "tail", - "tailbud", - "tailor", - "tailspin", - "takeover", - "tale", - "talent", - "talk", - "talking", - "tamale", - "tambour", - "tambourine", - "tandem", - "tangerine", - "tank", - "tanker", - "tankful", - "tape", - "tapioca", - "target", - "taro", - "tarragon", - "tart", - "task", - "tassel", - "taste", - "tatami", - "tattler", - "tattoo", - "tavern", - "taxi", - "taxicab", - "taxpayer", - "teacher", - "teaching", - "team", - "teammate", - "teapot", - "tear", - "tech", - "technician", - "technique", - "technologist", - "technology", - "tectonics", - "teen", - "teenager", - "teepee", - "telephone", - "telescreen", - "teletype", - "television", - "tell", - "teller", - "temp", - "temper", - "temperature", - "temple", - "tempo", - "temporariness", - "temporary", - "temptation", - "temptress", - "tenant", - "tendency", - "tender", - "tenement", - "tenet", - "tennis", - "tenor", - "tension", - "tensor", - "tent", - "tentacle", - "tenth", - "tepee", - "teriyaki", - "term", - "terminal", - "termination", - "terminology", - "termite", - "terrace", - "terracotta", - "terrapin", - "terrarium", - "territory", - "terror", - "terrorism", - "terrorist", - "test", - "testament", - "testimonial", - "testimony", - "testing", - "text", - "textbook", - "textual", - "texture", - "thanks", - "thaw", - "theater", - "theft", - "theism", - "theme", - "theology", - "theory", - "therapist", - "therapy", - "thermals", - "thermometer", - "thermostat", - "thesis", - "thickness", - "thief", - "thigh", - "thing", - "thinking", - "thirst", - "thistle", - "thong", - "thongs", - "thorn", - "thought", - "thousand", - "thread", - "threat", - "threshold", - "thrift", - "thrill", - "throat", - "throne", - "thrush", - "thrust", - "thug", - "thumb", - "thump", - "thunder", - "thunderbolt", - "thunderhead", - "thunderstorm", - "thyme", - "tiara", - "tick", - "ticket", - "tide", - "tiger", - "tights", - "tile", - "till", - "tilt", - "timbale", - "timber", - "time", - "timeline", - "timeout", - "timer", - "timetable", - "timing", - "timpani", - "tinderbox", - "tinkle", - "tintype", - "tire", - "tissue", - "titanium", - "title", - "toad", - "toast", - "toaster", - "tobacco", - "today", - "toenail", - "toffee", - "tofu", - "toga", - "toilet", - "tolerance", - "tolerant", - "toll", - "tomatillo", - "tomato", - "tomb", - "tomography", - "tomorrow", - "tonality", - "tone", - "tongue", - "tonic", - "tonight", - "tool", - "toot", - "tooth", - "toothbrush", - "toothpaste", - "toothpick", - "topic", - "topsail", - "toque", - "toreador", - "tornado", - "torso", - "torte", - "tortellini", - "tortilla", - "tortoise", - "tosser", - "total", - "tote", - "touch", - "tour", - "tourism", - "tourist", - "tournament", - "towel", - "tower", - "town", - "townhouse", - "township", - "trace", - "trachoma", - "track", - "tracking", - "tracksuit", - "tract", - "tractor", - "trade", - "trader", - "trading", - "tradition", - "traditionalism", - "traffic", - "trafficker", - "tragedy", - "trail", - "trailer", - "trailpatrol", - "train", - "trainer", - "training", - "trait", - "tram", - "tramp", - "trance", - "transaction", - "transcript", - "transfer", - "transformation", - "transit", - "transition", - "translation", - "transmission", - "transom", - "transparency", - "transplantation", - "transport", - "transportation", - "trap", - "trapdoor", - "trapezium", - "trapezoid", - "trash", - "travel", - "traveler", - "tray", - "treasure", - "treasury", - "treat", - "treatment", - "treaty", - "tree", - "trek", - "trellis", - "tremor", - "trench", - "trend", - "triad", - "trial", - "triangle", - "tribe", - "tributary", - "trick", - "trigger", - "trigonometry", - "trillion", - "trim", - "trinket", - "trip", - "tripod", - "tritone", - "triumph", - "trolley", - "trombone", - "troop", - "trooper", - "trophy", - "trouble", - "trousers", - "trout", - "trove", - "trowel", - "truck", - "trumpet", - "trunk", - "trust", - "trustee", - "truth", - "tsunami", - "tuba", - "tube", - "tuber", - "tugboat", - "tuition", - "tulip", - "tumbler", - "tummy", - "tuna", - "tune", - "tunic", - "tunnel", - "turban", - "turf", - "turkey", - "turmeric", - "turn", - "turning", - "turnip", - "turnover", - "turnstile", - "turret", - "turtle", - "tusk", - "tussle", - "tutu", - "tuxedo", - "tweet", - "tweezers", - "twig", - "twilight", - "twine", - "twins", - "twist", - "twister", - "twitter", - "type", - "typeface", - "typescript", - "typewriter", - "typhoon", - "ukulele", - "ultimatum", - "umbrella", - "unblinking", - "uncertainty", - "uncle", - "underclothes", - "underestimate", - "underground", - "underneath", - "underpants", - "underpass", - "undershirt", - "understanding", - "understatement", - "undertaker", - "underwear", - "underweight", - "underwire", - "underwriting", - "unemployment", - "unibody", - "unicorn", - "uniform", - "uniformity", - "union", - "unique", - "unit", - "unity", - "universe", - "university", - "update", - "upgrade", - "uplift", - "upper", - "upstairs", - "upward", - "urge", - "urgency", - "usage", - "user", - "usher", - "usual", - "utensil", - "utilisation", - "utility", - "utilization", - "vacation", - "vaccine", - "vacuum", - "vagrant", - "valance", - "valentine", - "validate", - "validity", - "valley", - "valuable", - "value", - "vampire", - "vanadyl", - "vane", - "vanilla", - "vanity", - "variability", - "variable", - "variant", - "variation", - "variety", - "vascular", - "vase", - "vault", - "vaulting", - "veal", - "vector", - "vegetable", - "vegetarian", - "vegetarianism", - "vegetation", - "vehicle", - "veil", - "vein", - "veldt", - "vellum", - "velocity", - "velodrome", - "velvet", - "vendor", - "veneer", - "vengeance", - "venison", - "venom", - "venti", - "venture", - "venue", - "veranda", - "verb", - "verdict", - "verification", - "vermicelli", - "vernacular", - "verse", - "version", - "vertigo", - "verve", - "vessel", - "vest", - "vestment", - "veteran", - "veterinarian", - "veto", - "viability", - "vibe", - "vibraphone", - "vibration", - "vibrissae", - "vice", - "vicinity", - "victim", - "victory", - "video", - "view", - "viewer", - "vignette", - "villa", - "village", - "vine", - "vinegar", - "vineyard", - "vintage", - "vintner", - "vinyl", - "viola", - "violation", - "violence", - "violet", - "violin", - "virginal", - "virtue", - "virus", - "visa", - "viscose", - "vise", - "vision", - "visit", - "visitor", - "visor", - "vista", - "visual", - "vitality", - "vitamin", - "vitro", - "vivo", - "vixen", - "vodka", - "vogue", - "voice", - "void", - "volatility", - "volcano", - "volleyball", - "volume", - "volunteer", - "volunteering", - "vomit", - "vote", - "voter", - "voting", - "voyage", - "vulture", - "wafer", - "waffle", - "wage", - "wagon", - "waist", - "waistband", - "wait", - "waiter", - "waiting", - "waitress", - "waiver", - "wake", - "walk", - "walker", - "walking", - "walkway", - "wall", - "wallaby", - "wallet", - "walnut", - "walrus", - "wampum", - "wannabe", - "want", - "warden", - "wardrobe", - "warfare", - "warlock", - "warlord", - "warming", - "warmth", - "warning", - "warrant", - "warren", - "warrior", - "wasabi", - "wash", - "washbasin", - "washcloth", - "washer", - "washtub", - "wasp", - "waste", - "wastebasket", - "wasting", - "watch", - "watcher", - "watchmaker", - "water", - "waterbed", - "watercress", - "waterfall", - "waterfront", - "watermelon", - "waterskiing", - "waterspout", - "waterwheel", - "wave", - "waveform", - "weakness", - "wealth", - "weapon", - "wear", - "weasel", - "weather", - "webinar", - "webmail", - "webpage", - "website", - "wedding", - "wedge", - "weed", - "weeder", - "weedkiller", - "week", - "weekend", - "weekender", - "weight", - "weird", - "welcome", - "welfare", - "well", - "west", - "western", - "wetland", - "wetsuit", - "whack", - "whale", - "wharf", - "wheat", - "wheel", - "whelp", - "whey", - "whip", - "whirlpool", - "whirlwind", - "whisker", - "whiskey", - "whisper", - "whistle", - "white", - "whole", - "wholesale", - "wholesaler", - "whorl", - "wick", - "widget", - "widow", - "width", - "wife", - "wifi", - "wild", - "wildebeest", - "wilderness", - "wildlife", - "will", - "willingness", - "willow", - "wind", - "windage", - "window", - "windscreen", - "windshield", - "wine", - "winery", - "wing", - "wingman", - "wingtip", - "wink", - "winner", - "winter", - "wire", - "wiretap", - "wiring", - "wisdom", - "wiseguy", - "wish", - "wisteria", - "witch", - "withdrawal", - "witness", - "wolf", - "woman", - "wombat", - "wonder", - "wont", - "wood", - "woodchuck", - "woodland", - "woodshed", - "woodwind", - "wool", - "woolens", - "word", - "wording", - "words", - "work", - "workbench", - "worker", - "workforce", - "workhorse", - "working", - "workout", - "workplace", - "workshop", - "world", - "worm", - "worry", - "worship", - "worshiper", - "worth", - "wound", - "wrap", - "wraparound", - "wrapper", - "wrapping", - "wreck", - "wrecker", - "wren", - "wrench", - "wrestler", - "wriggler", - "wrinkle", - "wrist", - "writer", - "writing", - "wrong", - "xylophone", - "yacht", - "yahoo", - "yang", - "yard", - "yarmulke", - "yarn", - "yawl", - "year", - "yeast", - "yellow", - "yellowjacket", - "yesterday", - "yoga", - "yogurt", - "yoke", - "yolk", - "young", - "youngster", - "yourself", - "youth", - "yoyo", - "yurt", - "zampone", - "zebra", - "zebrafish", - "zephyr", - "zero", - "ziggurat", - "zinc", - "zipper", - "zither", - "zombie", - "zone", - "zoologist", - "zoology", - "zucchini"], + "language": "en-us", "played": "The letter you wrote was already played!", "you_won": "You won!", "you_lose": "You lose!", @@ -6497,5 +8,6496 @@ "remaining": "guesses remaining", "letters": "Letters already played:", "guess": "Guess letter:", - "hangman": "Hangman" + "hangman": "Hangman", + "words": [ + "aardvark", + "abacus", + "abbey", + "abbreviation", + "abdomen", + "ability", + "abnormality", + "abolishment", + "abortion", + "abrogation", + "absence", + "abundance", + "abuse", + "academics", + "academy", + "accelerant", + "accelerator", + "accent", + "acceptance", + "access", + "accessory", + "accident", + "accommodation", + "accompanist", + "accomplishment", + "accord", + "accordance", + "accordion", + "account", + "accountability", + "accountant", + "accounting", + "accuracy", + "accusation", + "acetate", + "achievement", + "achiever", + "acid", + "acknowledgment", + "acorn", + "acoustics", + "acquaintance", + "acquisition", + "acre", + "acrylic", + "action", + "activation", + "activist", + "activity", + "actor", + "actress", + "acupuncture", + "adaptation", + "adapter", + "addiction", + "addition", + "address", + "adjective", + "adjustment", + "admin", + "administration", + "administrator", + "admire", + "admission", + "adobe", + "adoption", + "adrenalin", + "adrenaline", + "adult", + "adulthood", + "advance", + "advancement", + "advantage", + "advent", + "adverb", + "advertisement", + "advertising", + "advice", + "adviser", + "advocacy", + "advocate", + "affair", + "affect", + "affidavit", + "affiliate", + "affinity", + "afoul", + "afterlife", + "aftermath", + "afternoon", + "aftershave", + "aftershock", + "afterthought", + "agency", + "agenda", + "agent", + "aggradation", + "aggression", + "aglet", + "agony", + "agreement", + "agriculture", + "aide", + "airbag", + "airbus", + "aircraft", + "airfare", + "airfield", + "airforce", + "airline", + "airmail", + "airman", + "airplane", + "airport", + "airship", + "airspace", + "alarm", + "albatross", + "album", + "alcohol", + "alcove", + "alder", + "alert", + "alfalfa", + "algebra", + "algorithm", + "algorithms", + "alias", + "alibi", + "alien", + "allegation", + "allergist", + "alley", + "alliance", + "alligator", + "allocation", + "allowance", + "alloy", + "alluvium", + "almanac", + "almighty", + "almond", + "alpaca", + "alpenglow", + "alpenhorn", + "alpha", + "alphabet", + "altar", + "alteration", + "alternative", + "altitude", + "alto", + "aluminium", + "aluminum", + "amazement", + "amazon", + "ambassador", + "amber", + "ambience", + "ambiguity", + "ambition", + "ambulance", + "amendment", + "amenity", + "ammunition", + "amnesty", + "amount", + "amusement", + "anagram", + "analgesia", + "analog", + "analogue", + "analogy", + "analysis", + "analyst", + "analytics", + "anarchist", + "anarchy", + "anatomy", + "ancestor", + "anchovy", + "android", + "anesthesiologist", + "anesthesiology", + "angel", + "anger", + "angina", + "angiosperm", + "angle", + "angora", + "angstrom", + "anguish", + "animal", + "anime", + "anise", + "ankle", + "anklet", + "anniversary", + "announcement", + "annual", + "anorak", + "answer", + "anteater", + "antecedent", + "antechamber", + "antelope", + "antennae", + "anterior", + "anthropology", + "antibody", + "anticipation", + "anticodon", + "antigen", + "antique", + "antiquity", + "antler", + "antling", + "anxiety", + "anybody", + "anyone", + "anything", + "anywhere", + "apartment", + "aperitif", + "apology", + "apparatus", + "apparel", + "appeal", + "appearance", + "appellation", + "appendix", + "appetiser", + "appetite", + "appetizer", + "applause", + "apple", + "applewood", + "appliance", + "application", + "appointment", + "appreciation", + "apprehension", + "approach", + "appropriation", + "approval", + "apricot", + "apron", + "apse", + "aquarium", + "aquifer", + "arachnid", + "arcade", + "arch", + "archaeologist", + "archaeology", + "archeology", + "archer", + "architect", + "architecture", + "archives", + "area", + "arena", + "argument", + "arguments", + "arithmetic", + "armadillo", + "armament", + "armchair", + "armoire", + "armor", + "armour", + "armpit", + "armrest", + "army", + "arrangement", + "array", + "arrest", + "arrival", + "arrogance", + "arrow", + "artery", + "arthur", + "artichoke", + "article", + "artifact", + "artifacts", + "artificer", + "artist", + "ascend", + "ascent", + "ascot", + "ashram", + "ashtray", + "aside", + "asparagus", + "aspect", + "asphalt", + "aspic", + "assassination", + "assault", + "assembly", + "assertion", + "assessment", + "asset", + "assignment", + "assist", + "assistance", + "assistant", + "associate", + "association", + "assumption", + "assurance", + "asterisk", + "astrakhan", + "astrolabe", + "astrologer", + "astrology", + "astronomy", + "asymmetry", + "atelier", + "atheist", + "athlete", + "athletics", + "atmosphere", + "atom", + "atrium", + "attachment", + "attack", + "attacker", + "attainment", + "attempt", + "attendance", + "attendant", + "attention", + "attenuation", + "attic", + "attitude", + "attorney", + "attraction", + "attribute", + "auction", + "audience", + "audit", + "auditorium", + "aunt", + "authentication", + "authenticity", + "author", + "authorisation", + "authority", + "authorization", + "auto", + "autoimmunity", + "automation", + "automaton", + "autumn", + "availability", + "avalanche", + "avenue", + "average", + "avocado", + "award", + "awareness", + "axis", + "azimuth", + "babe", + "baboon", + "babushka", + "baby", + "bachelor", + "back", + "backbone", + "backburn", + "backdrop", + "background", + "backpack", + "backup", + "backyard", + "bacon", + "bacterium", + "badge", + "badger", + "bafflement", + "bagel", + "baggage", + "baggie", + "baggy", + "bagpipe", + "bail", + "bait", + "bake", + "baker", + "bakery", + "bakeware", + "balaclava", + "balalaika", + "balance", + "balcony", + "ball", + "ballet", + "balloon", + "balloonist", + "ballot", + "ballpark", + "bamboo", + "banana", + "band", + "bandana", + "bandanna", + "bandolier", + "bandwidth", + "bangle", + "banjo", + "bank", + "bankbook", + "banker", + "banking", + "bankruptcy", + "banner", + "banquette", + "banyan", + "baobab", + "barbecue", + "barbeque", + "barber", + "barbiturate", + "bargain", + "barge", + "baritone", + "barium", + "bark", + "barley", + "barn", + "barometer", + "barracks", + "barrage", + "barrel", + "barrier", + "barstool", + "bartender", + "base", + "baseball", + "baseboard", + "baseline", + "basement", + "basics", + "basil", + "basin", + "basis", + "basket", + "basketball", + "bass", + "bassinet", + "bassoon", + "bath", + "bather", + "bathhouse", + "bathrobe", + "bathroom", + "bathtub", + "battalion", + "batter", + "battery", + "batting", + "battle", + "battleship", + "bayou", + "beach", + "bead", + "beak", + "beam", + "bean", + "beancurd", + "beanie", + "beanstalk", + "bear", + "beard", + "beast", + "beastie", + "beat", + "beating", + "beauty", + "beaver", + "beck", + "bedrock", + "bedroom", + "beech", + "beef", + "beer", + "beet", + "beetle", + "beggar", + "beginner", + "beginning", + "begonia", + "behalf", + "behavior", + "behaviour", + "beheading", + "behest", + "behold", + "being", + "belfry", + "belief", + "believer", + "bell", + "belligerency", + "bellows", + "belly", + "belt", + "bench", + "bend", + "beneficiary", + "benefit", + "beret", + "berry", + "bestseller", + "beverage", + "beyond", + "bias", + "bibliography", + "bicycle", + "bidder", + "bidding", + "bidet", + "bifocals", + "bijou", + "bike", + "bikini", + "bill", + "billboard", + "billing", + "billion", + "binary", + "binoculars", + "biology", + "biopsy", + "biosphere", + "biplane", + "birch", + "bird", + "birdbath", + "birdcage", + "birdhouse", + "birth", + "birthday", + "biscuit", + "bite", + "bitten", + "bitter", + "bitwise", + "black", + "blackberry", + "blackbird", + "blackboard", + "blackfish", + "blackness", + "bladder", + "blade", + "blame", + "blank", + "blanket", + "blast", + "blazer", + "blend", + "blessing", + "blight", + "blind", + "blinker", + "blister", + "blizzard", + "block", + "blocker", + "blog", + "blogger", + "blood", + "bloodflow", + "bloom", + "bloomer", + "blossom", + "blouse", + "blow", + "blowgun", + "blowhole", + "blue", + "blueberry", + "blush", + "boar", + "board", + "boat", + "boatload", + "boatyard", + "bobcat", + "body", + "bolero", + "bolt", + "bomb", + "bomber", + "bombing", + "bond", + "bonding", + "bondsman", + "bone", + "bonfire", + "bongo", + "bonnet", + "bonsai", + "bonus", + "boogeyman", + "book", + "bookcase", + "bookend", + "booking", + "booklet", + "bookmark", + "boolean", + "boom", + "boon", + "boost", + "booster", + "boot", + "bootee", + "bootie", + "booty", + "border", + "bore", + "boredom", + "borrower", + "borrowing", + "bosom", + "boss", + "botany", + "bother", + "bottle", + "bottling", + "bottom", + "boudoir", + "bough", + "boulder", + "boulevard", + "boundary", + "bouquet", + "bourgeoisie", + "bout", + "boutique", + "bower", + "bowl", + "bowler", + "bowling", + "bowtie", + "boxer", + "boxspring", + "boycott", + "boyfriend", + "boyhood", + "boysenberry", + "brace", + "bracelet", + "bracket", + "brain", + "brake", + "bran", + "branch", + "brand", + "brandy", + "brass", + "brassiere", + "bratwurst", + "bread", + "breadcrumb", + "breadfruit", + "break", + "breakdown", + "breakfast", + "breakpoint", + "breakthrough", + "breast", + "breastplate", + "breath", + "breeze", + "brewer", + "bribery", + "brick", + "bricklaying", + "bride", + "bridge", + "brief", + "briefing", + "briefly", + "briefs", + "brilliant", + "brink", + "brisket", + "broad", + "broadcast", + "broccoli", + "brochure", + "brocolli", + "broiler", + "broker", + "bronchitis", + "bronco", + "bronze", + "brooch", + "brood", + "brook", + "broom", + "brother", + "brow", + "brown", + "brownie", + "browser", + "browsing", + "brulee", + "brunch", + "brush", + "brushfire", + "brushing", + "bubble", + "buck", + "bucket", + "buckle", + "buckwheat", + "buddy", + "budget", + "buffalo", + "buffer", + "buffet", + "buggy", + "bugle", + "builder", + "building", + "bulb", + "bulk", + "bull", + "bulldozer", + "bullet", + "bump", + "bumper", + "bunch", + "bungalow", + "bunghole", + "bunkhouse", + "burden", + "bureau", + "burglar", + "burial", + "burlesque", + "burn", + "burning", + "burrito", + "burro", + "burrow", + "burst", + "bush", + "business", + "businessman", + "bust", + "bustle", + "butane", + "butcher", + "butler", + "butter", + "butterfly", + "button", + "buyer", + "buying", + "buzz", + "buzzard", + "bytecode", + "cabana", + "cabbage", + "cabin", + "cabinet", + "cable", + "caboose", + "cacao", + "cactus", + "caddy", + "cadet", + "cafe", + "caffeine", + "caftan", + "cage", + "cake", + "calcification", + "calculation", + "calculator", + "calculus", + "calendar", + "calf", + "caliber", + "calibre", + "calico", + "call", + "calm", + "calorie", + "camel", + "cameo", + "camera", + "camp", + "campaign", + "campaigning", + "campanile", + "camper", + "campus", + "canal", + "cancer", + "candelabra", + "candidacy", + "candidate", + "candle", + "candy", + "cane", + "cannibal", + "cannon", + "canoe", + "canon", + "canopy", + "cantaloupe", + "canteen", + "canvas", + "capability", + "capacity", + "cape", + "caper", + "capital", + "capitalism", + "capitulation", + "capon", + "cappelletti", + "cappuccino", + "captain", + "caption", + "captor", + "carabao", + "caramel", + "caravan", + "carbohydrate", + "carbon", + "carboxyl", + "card", + "cardboard", + "cardigan", + "care", + "career", + "cargo", + "caribou", + "carload", + "carnation", + "carnival", + "carol", + "carotene", + "carp", + "carpenter", + "carpet", + "carpeting", + "carport", + "carriage", + "carrier", + "carrot", + "carry", + "cart", + "cartel", + "carter", + "cartilage", + "cartload", + "cartoon", + "cartridge", + "carving", + "cascade", + "case", + "casement", + "cash", + "cashew", + "cashier", + "casino", + "casket", + "cassava", + "casserole", + "cassock", + "cast", + "castanet", + "castle", + "casualty", + "cat", + "catacomb", + "catalogue", + "catalysis", + "catalyst", + "catamaran", + "catastrophe", + "catch", + "catcher", + "category", + "caterpillar", + "cathedral", + "cation", + "catsup", + "cattle", + "cauliflower", + "causal", + "cause", + "causeway", + "caution", + "cave", + "caviar", + "cayenne", + "ceiling", + "celebration", + "celebrity", + "celeriac", + "celery", + "cell", + "cellar", + "cello", + "celsius", + "cement", + "cemetery", + "cenotaph", + "census", + "cent", + "center", + "centimeter", + "centre", + "centurion", + "century", + "cephalopod", + "ceramic", + "ceramics", + "cereal", + "ceremony", + "certainty", + "certificate", + "certification", + "cesspool", + "chafe", + "chain", + "chainstay", + "chair", + "chairlift", + "chairman", + "chairperson", + "chaise", + "chalet", + "chalice", + "chalk", + "challenge", + "chamber", + "champagne", + "champion", + "championship", + "chance", + "chandelier", + "change", + "channel", + "chaos", + "chap", + "chapel", + "chaplain", + "chapter", + "character", + "characteristic", + "characterization", + "chard", + "charge", + "charger", + "charity", + "charlatan", + "charm", + "charset", + "chart", + "charter", + "chasm", + "chassis", + "chastity", + "chasuble", + "chateau", + "chatter", + "chauffeur", + "chauvinist", + "check", + "checkbook", + "checking", + "checkout", + "checkroom", + "cheddar", + "cheek", + "cheer", + "cheese", + "cheesecake", + "cheetah", + "chef", + "chem", + "chemical", + "chemistry", + "chemotaxis", + "cheque", + "cherry", + "chess", + "chest", + "chestnut", + "chick", + "chicken", + "chicory", + "chief", + "chiffonier", + "child", + "childbirth", + "childhood", + "chili", + "chill", + "chime", + "chimpanzee", + "chin", + "chinchilla", + "chino", + "chip", + "chipmunk", + "chivalry", + "chive", + "chives", + "chocolate", + "choice", + "choir", + "choker", + "cholesterol", + "choosing", + "chop", + "chops", + "chopstick", + "chopsticks", + "chord", + "chorus", + "chow", + "chowder", + "chrome", + "chromolithograph", + "chronicle", + "chronograph", + "chronometer", + "chrysalis", + "chub", + "chuck", + "chug", + "church", + "churn", + "chutney", + "cicada", + "cigarette", + "cilantro", + "cinder", + "cinema", + "cinnamon", + "circadian", + "circle", + "circuit", + "circulation", + "circumference", + "circumstance", + "cirrhosis", + "cirrus", + "citizen", + "citizenship", + "citron", + "citrus", + "city", + "civilian", + "civilisation", + "civilization", + "claim", + "clam", + "clamp", + "clan", + "clank", + "clapboard", + "clarification", + "clarinet", + "clarity", + "clasp", + "class", + "classic", + "classification", + "classmate", + "classroom", + "clause", + "clave", + "clavicle", + "clavier", + "claw", + "clay", + "cleaner", + "clearance", + "clearing", + "cleat", + "cleavage", + "clef", + "cleft", + "clergyman", + "cleric", + "clerk", + "click", + "client", + "cliff", + "climate", + "climb", + "clinic", + "clip", + "clipboard", + "clipper", + "cloak", + "cloakroom", + "clock", + "clockwork", + "clogs", + "cloister", + "clone", + "close", + "closet", + "closing", + "closure", + "cloth", + "clothes", + "clothing", + "cloud", + "cloudburst", + "clove", + "clover", + "cloves", + "club", + "clue", + "cluster", + "clutch", + "coach", + "coal", + "coalition", + "coast", + "coaster", + "coat", + "cobbler", + "cobweb", + "cock", + "cockpit", + "cockroach", + "cocktail", + "cocoa", + "coconut", + "code", + "codepage", + "coder", + "codling", + "codon", + "codpiece", + "coevolution", + "cofactor", + "coffee", + "coffin", + "cohesion", + "cohort", + "coil", + "coin", + "coincidence", + "coinsurance", + "coke", + "cold", + "coleslaw", + "coliseum", + "collaboration", + "collagen", + "collapse", + "collar", + "collard", + "collateral", + "colleague", + "collection", + "collectivisation", + "collectivization", + "collector", + "college", + "collision", + "colloquy", + "colon", + "colonial", + "colonialism", + "colonisation", + "colonization", + "colony", + "color", + "colorlessness", + "colt", + "column", + "columnist", + "comb", + "combat", + "combination", + "combine", + "comeback", + "comedy", + "comestible", + "comfort", + "comfortable", + "comic", + "comics", + "comma", + "command", + "commander", + "commandment", + "comment", + "commerce", + "commercial", + "commission", + "commitment", + "committee", + "commodity", + "common", + "commonsense", + "commotion", + "communicant", + "communication", + "communion", + "communist", + "community", + "commuter", + "company", + "comparison", + "compass", + "compassion", + "compassionate", + "compensation", + "competence", + "competition", + "competitor", + "complaint", + "complement", + "completion", + "complex", + "complexity", + "compliance", + "complication", + "complicity", + "compliment", + "component", + "comportment", + "composer", + "composite", + "composition", + "compost", + "comprehension", + "compress", + "compromise", + "comptroller", + "compulsion", + "computer", + "comradeship", + "concentrate", + "concentration", + "concept", + "conception", + "concern", + "concert", + "conclusion", + "concrete", + "condition", + "conditional", + "conditioner", + "condominium", + "condor", + "conduct", + "conductor", + "cone", + "confectionery", + "conference", + "confidence", + "confidentiality", + "configuration", + "confirmation", + "conflict", + "conformation", + "confusion", + "conga", + "congo", + "congregation", + "congress", + "congressman", + "congressperson", + "conifer", + "connection", + "connotation", + "conscience", + "consciousness", + "consensus", + "consent", + "consequence", + "conservation", + "conservative", + "consideration", + "consignment", + "consist", + "consistency", + "console", + "consonant", + "conspiracy", + "conspirator", + "constant", + "constellation", + "constitution", + "constraint", + "construction", + "constructor", + "consul", + "consulate", + "consulting", + "consumer", + "consumption", + "contact", + "contagion", + "container", + "content", + "contention", + "contest", + "context", + "continent", + "contingency", + "continuity", + "contour", + "contract", + "contractor", + "contrail", + "contrary", + "contrast", + "contribution", + "contributor", + "control", + "controller", + "controversy", + "convection", + "convenience", + "convention", + "conversation", + "conversion", + "convert", + "convertible", + "conviction", + "cook", + "cookbook", + "cookie", + "cooking", + "coonskin", + "cooperation", + "coordination", + "coordinator", + "cope", + "copper", + "copy", + "copying", + "copyright", + "copywriter", + "coral", + "cord", + "corduroy", + "core", + "cork", + "cormorant", + "corn", + "corner", + "cornerstone", + "cornet", + "cornflakes", + "cornmeal", + "corporal", + "corporation", + "corporatism", + "corps", + "corral", + "correspondence", + "correspondent", + "corridor", + "corruption", + "corsage", + "cosset", + "cost", + "costume", + "cottage", + "cotton", + "couch", + "cougar", + "cough", + "council", + "councilman", + "councilor", + "councilperson", + "counsel", + "counseling", + "counselling", + "counsellor", + "counselor", + "count", + "counter", + "counterpart", + "counterterrorism", + "countess", + "country", + "countryside", + "county", + "couple", + "coupon", + "courage", + "course", + "court", + "courthouse", + "courtroom", + "cousin", + "covariate", + "cover", + "coverage", + "coverall", + "cowbell", + "cowboy", + "coyote", + "crab", + "crack", + "cracker", + "crackers", + "cradle", + "craft", + "craftsman", + "cranberry", + "crane", + "cranky", + "crap", + "crash", + "crate", + "cravat", + "craw", + "crawdad", + "crayfish", + "crayon", + "crazy", + "cream", + "creation", + "creationism", + "creationist", + "creative", + "creativity", + "creator", + "creature", + "creche", + "credential", + "credenza", + "credibility", + "credit", + "creditor", + "creek", + "creme", + "crepe", + "crest", + "crew", + "crewman", + "crewmate", + "crewmember", + "crewmen", + "cria", + "crib", + "cribbage", + "cricket", + "cricketer", + "crime", + "criminal", + "crinoline", + "crisis", + "crisp", + "criteria", + "criterion", + "critic", + "criticism", + "crocodile", + "crocus", + "croissant", + "crook", + "crop", + "cross", + "crotch", + "croup", + "crow", + "crowd", + "crown", + "crucifixion", + "crude", + "cruelty", + "cruise", + "crumb", + "crunch", + "crusader", + "crush", + "crust", + "cryptex", + "crystal", + "crystallography", + "cube", + "cuckoo", + "cucumber", + "cuisine", + "cultivar", + "cultivator", + "culture", + "culvert", + "cummerbund", + "cupboard", + "cupcake", + "cupola", + "curd", + "cure", + "curio", + "curiosity", + "curl", + "curler", + "currant", + "currency", + "current", + "curriculum", + "curry", + "curse", + "cursor", + "curtailment", + "curtain", + "curve", + "cushion", + "custard", + "custody", + "custom", + "customer", + "cuticle", + "cutlet", + "cutover", + "cutting", + "cyclamen", + "cycle", + "cyclone", + "cyclooxygenase", + "cygnet", + "cylinder", + "cymbal", + "cynic", + "cyst", + "cytokine", + "cytoplasm", + "daddy", + "daffodil", + "dagger", + "dahlia", + "daikon", + "daily", + "dairy", + "daisy", + "damage", + "dame", + "damn", + "dance", + "dancer", + "dancing", + "dandelion", + "danger", + "dare", + "dark", + "darkness", + "darn", + "dart", + "dash", + "dashboard", + "data", + "database", + "date", + "daughter", + "dawn", + "daybed", + "daylight", + "dead", + "deadline", + "deal", + "dealer", + "dealing", + "dearest", + "death", + "deathwatch", + "debate", + "debris", + "debt", + "debtor", + "decade", + "decadence", + "decency", + "decimal", + "decision", + "deck", + "declaration", + "declination", + "decline", + "decoder", + "decongestant", + "decoration", + "decrease", + "decryption", + "dedication", + "deduce", + "deduction", + "deed", + "deep", + "deer", + "default", + "defeat", + "defendant", + "defender", + "defense", + "deficit", + "definition", + "deformation", + "degradation", + "degree", + "delay", + "deliberation", + "delight", + "delivery", + "demand", + "democracy", + "democrat", + "demon", + "demur", + "denim", + "denominator", + "density", + "dentist", + "deodorant", + "department", + "departure", + "dependency", + "dependent", + "deployment", + "deposit", + "deposition", + "depot", + "depression", + "depressive", + "depth", + "deputy", + "derby", + "derivation", + "derivative", + "derrick", + "descendant", + "descent", + "description", + "desert", + "design", + "designation", + "designer", + "desire", + "desk", + "desktop", + "despise", + "dessert", + "destination", + "destiny", + "destroyer", + "destruction", + "detail", + "detainee", + "detainment", + "detection", + "detective", + "detector", + "detention", + "determination", + "detour", + "devastation", + "developer", + "developing", + "development", + "developmental", + "deviance", + "deviation", + "device", + "devil", + "dhow", + "diabetes", + "diadem", + "diagnosis", + "diagram", + "dial", + "dialect", + "dialogue", + "diam", + "diamond", + "diaper", + "diaphragm", + "diarist", + "diary", + "dibble", + "dick", + "dickey", + "dictaphone", + "dictator", + "diction", + "dictionary", + "diesel", + "diet", + "difference", + "differential", + "difficulty", + "diffuse", + "digestion", + "digestive", + "digger", + "digging", + "digit", + "dignity", + "dilapidation", + "dill", + "dilution", + "dime", + "dimension", + "dimple", + "diner", + "dinghy", + "dining", + "dinner", + "dinosaur", + "dioxide", + "diploma", + "diplomacy", + "dipstick", + "direction", + "directive", + "director", + "directory", + "dirndl", + "dirt", + "disability", + "disadvantage", + "disagreement", + "disappointment", + "disarmament", + "disaster", + "discharge", + "discipline", + "disclaimer", + "disclosure", + "disco", + "disconnection", + "discount", + "discourse", + "discovery", + "discrepancy", + "discretion", + "discrimination", + "discussion", + "disdain", + "disease", + "disembodiment", + "disengagement", + "disguise", + "disgust", + "dish", + "dishwasher", + "disk", + "disparity", + "dispatch", + "displacement", + "display", + "disposal", + "disposer", + "disposition", + "dispute", + "disregard", + "disruption", + "dissemination", + "dissonance", + "distance", + "distinction", + "distortion", + "distribution", + "distributor", + "district", + "divalent", + "divan", + "diver", + "diversity", + "divide", + "dividend", + "divider", + "divine", + "diving", + "division", + "divorce", + "dock", + "doctor", + "doctorate", + "doctrine", + "document", + "documentary", + "documentation", + "dog", + "doggie", + "dogsled", + "dogwood", + "doing", + "doll", + "dollar", + "dollop", + "dolman", + "dolor", + "dolphin", + "domain", + "dome", + "domination", + "donation", + "donkey", + "donor", + "donut", + "door", + "doorbell", + "doorknob", + "doorpost", + "doorway", + "dory", + "dose", + "double", + "doubling", + "doubt", + "doubter", + "dough", + "doughnut", + "down", + "downfall", + "downforce", + "downgrade", + "download", + "downstairs", + "downtown", + "downturn", + "dozen", + "draft", + "drag", + "dragon", + "dragonfly", + "dragonfruit", + "dragster", + "drain", + "drainage", + "drake", + "drama", + "dramaturge", + "drapes", + "draw", + "drawbridge", + "drawer", + "drawing", + "dream", + "dreamer", + "dredger", + "dress", + "dresser", + "dressing", + "drill", + "drink", + "drinking", + "drive", + "driver", + "driveway", + "driving", + "drizzle", + "dromedary", + "drop", + "drudgery", + "drug", + "drum", + "drummer", + "drunk", + "dryer", + "duck", + "duckling", + "dude", + "duel", + "dueling", + "duffel", + "dugout", + "dulcimer", + "dumbwaiter", + "dump", + "dune", + "dungarees", + "dungeon", + "duplexer", + "duration", + "durian", + "dusk", + "dust", + "duster", + "duty", + "dwarf", + "dwell", + "dwelling", + "dynamics", + "dynamite", + "dynamo", + "dynasty", + "dysfunction", + "eagle", + "eaglet", + "eardrum", + "earmuffs", + "earnings", + "earplug", + "earring", + "earrings", + "earth", + "earthquake", + "earthworm", + "ease", + "easel", + "east", + "eating", + "eaves", + "eavesdropper", + "ecclesia", + "echidna", + "eclipse", + "ecliptic", + "ecology", + "economics", + "economy", + "ecosystem", + "ectoderm", + "ectodermal", + "ecumenist", + "eddy", + "edge", + "edger", + "edible", + "editing", + "edition", + "editor", + "editorial", + "education", + "effacement", + "effect", + "effective", + "effectiveness", + "effector", + "efficacy", + "efficiency", + "effort", + "egghead", + "eggnog", + "eggplant", + "eicosanoid", + "ejector", + "elbow", + "elderberry", + "eldritch", + "election", + "electricity", + "electrocardiogram", + "electronics", + "element", + "elephant", + "elevation", + "elevator", + "eleventh", + "elicit", + "eligibility", + "elimination", + "elite", + "elixir", + "ellipse", + "elongation", + "elven", + "elver", + "email", + "emanate", + "embarrassment", + "embassy", + "embellishment", + "embossing", + "embryo", + "emerald", + "emergence", + "emergency", + "emergent", + "emery", + "emission", + "emitter", + "emotion", + "emphasis", + "empire", + "employ", + "employee", + "employer", + "employment", + "empowerment", + "enactment", + "encirclement", + "enclave", + "enclosure", + "encounter", + "encouragement", + "encyclopedia", + "endive", + "endoderm", + "endorsement", + "endothelium", + "endpoint", + "enemy", + "energy", + "enforcement", + "engagement", + "engine", + "engineer", + "engineering", + "enigma", + "enjoyment", + "enquiry", + "enrollment", + "enterprise", + "entertainment", + "enthusiasm", + "entirety", + "entity", + "entrance", + "entree", + "entrepreneur", + "entry", + "envelope", + "environment", + "envy", + "enzyme", + "epauliere", + "epee", + "ephemera", + "ephemeris", + "ephyra", + "epic", + "episode", + "epithelium", + "epoch", + "eponym", + "epoxy", + "equal", + "equality", + "equation", + "equinox", + "equipment", + "equity", + "equivalent", + "eraser", + "erection", + "erosion", + "error", + "escalator", + "escape", + "escort", + "espadrille", + "espalier", + "essay", + "essence", + "essential", + "establishment", + "estate", + "estimate", + "estrogen", + "estuary", + "eternity", + "ethernet", + "ethics", + "ethnicity", + "ethyl", + "euphonium", + "eurocentrism", + "evaluation", + "evaluator", + "evaporation", + "evening", + "event", + "everybody", + "everyone", + "everything", + "eviction", + "evidence", + "evil", + "evocation", + "evolution", + "exaggeration", + "exam", + "examination", + "examiner", + "example", + "exasperation", + "excellence", + "exception", + "excerpt", + "excess", + "exchange", + "excitement", + "exclamation", + "excursion", + "excuse", + "execution", + "executive", + "executor", + "exercise", + "exhaust", + "exhaustion", + "exhibit", + "exhibition", + "exile", + "existence", + "exit", + "exocrine", + "expansion", + "expansionism", + "expectancy", + "expectation", + "expedition", + "expense", + "experience", + "experiment", + "experimentation", + "expert", + "expertise", + "explanation", + "exploration", + "explorer", + "explosion", + "explosive", + "export", + "expose", + "exposition", + "exposure", + "expression", + "extension", + "extent", + "exterior", + "external", + "extinction", + "extreme", + "extremist", + "eyeball", + "eyebrow", + "eyebrows", + "eyeglasses", + "eyelash", + "eyelashes", + "eyelid", + "eyelids", + "eyeliner", + "eyestrain", + "eyrie", + "fabric", + "face", + "facelift", + "facet", + "facility", + "facsimile", + "fact", + "factor", + "factorial", + "factory", + "faculty", + "fahrenheit", + "fail", + "failure", + "fairness", + "fairy", + "faith", + "faithful", + "fall", + "fallacy", + "fame", + "familiar", + "familiarity", + "family", + "fang", + "fanlight", + "fanny", + "fantasy", + "farm", + "farmer", + "farming", + "farmland", + "farrow", + "fascia", + "fashion", + "fate", + "father", + "fatigue", + "fatigues", + "faucet", + "fault", + "fava", + "favor", + "favorite", + "fawn", + "fear", + "feast", + "feather", + "feature", + "fedelini", + "federation", + "fedora", + "feed", + "feedback", + "feeding", + "feel", + "feeling", + "fellow", + "felony", + "female", + "fence", + "fencing", + "fender", + "feng", + "fennel", + "ferret", + "ferry", + "ferryboat", + "fertilizer", + "festival", + "fetus", + "fiber", + "fiberglass", + "fibre", + "fibroblast", + "fibrosis", + "ficlet", + "fiction", + "fiddle", + "field", + "fields", + "fiery", + "fiesta", + "fifth", + "fight", + "fighter", + "figure", + "figurine", + "file", + "files", + "filing", + "fill", + "fillet", + "filly", + "film", + "filter", + "filth", + "final", + "finance", + "financing", + "finding", + "fine", + "finer", + "finger", + "fingerling", + "fingernail", + "finish", + "finisher", + "fire", + "fireman", + "fireplace", + "firewall", + "firm", + "first", + "fish", + "fishbone", + "fisherman", + "fishery", + "fishing", + "fishmonger", + "fishnet", + "fisting", + "fitness", + "fixture", + "flag", + "flair", + "flame", + "flan", + "flanker", + "flare", + "flash", + "flat", + "flatboat", + "flavor", + "flax", + "fleck", + "fledgling", + "fleece", + "flesh", + "flexibility", + "flick", + "flicker", + "flight", + "flint", + "flintlock", + "flock", + "flood", + "floodplain", + "floor", + "floozie", + "flour", + "flow", + "flower", + "flugelhorn", + "fluke", + "flume", + "flung", + "flute", + "flytrap", + "foal", + "foam", + "focus", + "fold", + "folder", + "folk", + "folklore", + "follower", + "following", + "fondue", + "font", + "food", + "foodstuffs", + "fool", + "foot", + "footage", + "football", + "footnote", + "footprint", + "footrest", + "footstep", + "footstool", + "footwear", + "forage", + "forager", + "foray", + "force", + "ford", + "forearm", + "forebear", + "forecast", + "forehead", + "foreigner", + "forelimb", + "forest", + "forestry", + "forever", + "forgery", + "fork", + "form", + "formal", + "formamide", + "format", + "formation", + "former", + "formicarium", + "formula", + "fort", + "forte", + "fortnight", + "fortress", + "fortune", + "forum", + "foundation", + "founder", + "founding", + "fountain", + "fourths", + "fowl", + "fox", + "foxglove", + "fraction", + "fragrance", + "frame", + "framework", + "fratricide", + "fraud", + "fraudster", + "freak", + "freckle", + "freedom", + "freelance", + "freezer", + "freezing", + "freight", + "freighter", + "frenzy", + "freon", + "frequency", + "fresco", + "friction", + "fridge", + "friend", + "friendship", + "fries", + "frigate", + "fright", + "fringe", + "fritter", + "frock", + "frog", + "front", + "frontier", + "frost", + "frosting", + "frown", + "fruit", + "frustration", + "fuck", + "fuel", + "fugato", + "fulfillment", + "full", + "function", + "functionality", + "fund", + "funding", + "fundraising", + "funeral", + "furnace", + "furniture", + "furry", + "fusarium", + "futon", + "future", + "gadget", + "gaffe", + "gaffer", + "gain", + "gaiters", + "gale", + "gallery", + "galley", + "gallon", + "galoshes", + "gambling", + "game", + "gamebird", + "gaming", + "gander", + "gang", + "garage", + "garb", + "garbage", + "garden", + "garlic", + "garment", + "garter", + "gasket", + "gasoline", + "gasp", + "gastronomy", + "gastropod", + "gate", + "gateway", + "gather", + "gathering", + "gator", + "gauge", + "gauntlet", + "gavel", + "gazebo", + "gazelle", + "gear", + "gearshift", + "geek", + "gelatin", + "gelding", + "gemsbok", + "gender", + "gene", + "general", + "generation", + "generator", + "generosity", + "genetics", + "genie", + "genius", + "genocide", + "genre", + "gentleman", + "geography", + "geology", + "geometry", + "geranium", + "gerbil", + "gesture", + "geyser", + "gherkin", + "ghost", + "giant", + "gift", + "gigantism", + "giggle", + "ginger", + "gingerbread", + "ginseng", + "giraffe", + "girdle", + "girl", + "girlfriend", + "github", + "glacier", + "gladiolus", + "glance", + "gland", + "glass", + "glasses", + "glee", + "glen", + "glider", + "gliding", + "glimpse", + "globe", + "glockenspiel", + "gloom", + "glory", + "glove", + "glow", + "glucose", + "glue", + "glut", + "glutamate", + "gnat", + "goal", + "goat", + "gobbler", + "goddess", + "godfather", + "godmother", + "godparent", + "goggles", + "going", + "gold", + "goldfish", + "golf", + "gondola", + "gong", + "good", + "goodbye", + "goodie", + "goodness", + "goodnight", + "goodwill", + "google", + "goose", + "gopher", + "gorilla", + "gosling", + "gossip", + "governance", + "government", + "governor", + "gown", + "grace", + "grade", + "gradient", + "graduate", + "graduation", + "graffiti", + "graft", + "grain", + "gram", + "grammar", + "gran", + "grand", + "grandchild", + "granddaughter", + "grandfather", + "grandma", + "grandmom", + "grandmother", + "grandpa", + "grandparent", + "grandson", + "granny", + "granola", + "grant", + "grape", + "grapefruit", + "graph", + "graphic", + "grasp", + "grass", + "grasshopper", + "grassland", + "gratitude", + "gravel", + "gravitas", + "gravity", + "gravy", + "gray", + "grease", + "greatness", + "greed", + "green", + "greenhouse", + "greens", + "grenade", + "grey", + "grid", + "grief", + "grill", + "grin", + "grip", + "gripper", + "grit", + "grocery", + "ground", + "group", + "grouper", + "grouse", + "grove", + "growth", + "grub", + "guacamole", + "guarantee", + "guard", + "guava", + "guerrilla", + "guess", + "guest", + "guestbook", + "guidance", + "guide", + "guideline", + "guilder", + "guilt", + "guilty", + "guinea", + "guitar", + "guitarist", + "gumshoe", + "gunpowder", + "gutter", + "gymnast", + "gymnastics", + "gynaecology", + "gyro", + "habit", + "habitat", + "hacienda", + "hacker", + "hacksaw", + "hackwork", + "hail", + "hair", + "haircut", + "hake", + "half", + "halibut", + "hall", + "halloween", + "hallway", + "halt", + "hamburger", + "hammer", + "hammock", + "hamster", + "hand", + "handball", + "handful", + "handgun", + "handicap", + "handle", + "handlebar", + "handmaiden", + "handover", + "handrail", + "handsaw", + "hanger", + "hangman", + "happening", + "happiness", + "harald", + "harbor", + "harbour", + "hardboard", + "hardcover", + "hardening", + "hardhat", + "hardship", + "hardware", + "hare", + "harm", + "harmonica", + "harmonise", + "harmonize", + "harmony", + "harp", + "harpooner", + "harpsichord", + "harvest", + "harvester", + "hash", + "hashtag", + "hassock", + "haste", + "hatbox", + "hatchet", + "hatchling", + "hate", + "hatred", + "haunt", + "haven", + "haversack", + "havoc", + "hawk", + "haze", + "hazel", + "hazelnut", + "head", + "headache", + "headlight", + "headline", + "headphones", + "headquarters", + "headrest", + "health", + "heap", + "hearing", + "hearsay", + "heart", + "heartache", + "heartbeat", + "hearth", + "hearthside", + "heartwood", + "heat", + "heater", + "heating", + "heaven", + "heavy", + "hebrew", + "hectare", + "hedge", + "hedgehog", + "heel", + "heifer", + "height", + "heir", + "heirloom", + "helicopter", + "helium", + "hell", + "hellcat", + "hello", + "helmet", + "helo", + "help", + "hemisphere", + "hemp", + "hepatitis", + "herb", + "herbs", + "heritage", + "hermit", + "hero", + "heroine", + "heron", + "herring", + "hesitation", + "heterosexual", + "hexagon", + "heyday", + "hiccups", + "hide", + "hierarchy", + "high", + "highland", + "highlight", + "highway", + "hike", + "hiking", + "hill", + "hint", + "hippodrome", + "hippopotamus", + "hire", + "hiring", + "historian", + "history", + "hive", + "hobbit", + "hobby", + "hockey", + "hold", + "holder", + "hole", + "holiday", + "home", + "homeland", + "homeownership", + "hometown", + "homework", + "homicide", + "homogenate", + "homonym", + "homosexual", + "homosexuality", + "honesty", + "honey", + "honeybee", + "honeydew", + "honor", + "honoree", + "hood", + "hoof", + "hook", + "hope", + "hops", + "horde", + "horizon", + "hormone", + "horn", + "hornet", + "horror", + "horse", + "horseradish", + "horst", + "hose", + "hosiery", + "hospice", + "hospital", + "hospitalisation", + "hospitality", + "hospitalization", + "host", + "hostel", + "hostess", + "hotdog", + "hotel", + "hound", + "hour", + "hourglass", + "house", + "houseboat", + "household", + "housewife", + "housework", + "housing", + "hovel", + "hovercraft", + "howard", + "howitzer", + "hubcap", + "hubris", + "hugger", + "hull", + "human", + "humanity", + "humidity", + "hummus", + "humor", + "humour", + "hunchback", + "hundred", + "hunger", + "hunt", + "hunter", + "hunting", + "hurdle", + "hurdler", + "hurricane", + "hurry", + "hurt", + "husband", + "hutch", + "hyacinth", + "hybridisation", + "hybridization", + "hydrant", + "hydraulics", + "hydrocarb", + "hydrocarbon", + "hydrofoil", + "hydrogen", + "hydrolyse", + "hydrolysis", + "hydrolyze", + "hydroxyl", + "hyena", + "hygienic", + "hype", + "hyphenation", + "hypochondria", + "hypothermia", + "hypothesis", + "iceberg", + "icebreaker", + "icecream", + "icicle", + "icing", + "icon", + "idea", + "ideal", + "identification", + "identity", + "ideology", + "idiom", + "idiot", + "igloo", + "ignorance", + "ignorant", + "ikebana", + "illegal", + "illiteracy", + "illness", + "illusion", + "illustration", + "image", + "imagination", + "imbalance", + "imitation", + "immigrant", + "immigration", + "immortal", + "impact", + "impairment", + "impala", + "impediment", + "implement", + "implementation", + "implication", + "import", + "importance", + "impostor", + "impress", + "impression", + "imprisonment", + "impropriety", + "improvement", + "impudence", + "impulse", + "inability", + "inauguration", + "inbox", + "incandescence", + "incarnation", + "incense", + "incentive", + "inch", + "incidence", + "incident", + "incision", + "inclusion", + "income", + "incompetence", + "inconvenience", + "increase", + "incubation", + "indentation", + "independence", + "independent", + "index", + "indication", + "indicator", + "indigence", + "individual", + "industrialisation", + "industrialization", + "industry", + "inequality", + "inevitable", + "infancy", + "infant", + "infarction", + "infection", + "infiltration", + "infinite", + "infix", + "inflammation", + "inflation", + "influence", + "influx", + "info", + "information", + "infrastructure", + "infusion", + "inglenook", + "ingrate", + "ingredient", + "inhabitant", + "inheritance", + "inhibition", + "inhibitor", + "initial", + "initialise", + "initialize", + "initiative", + "injunction", + "injury", + "injustice", + "inlay", + "innervation", + "innocence", + "innocent", + "innovation", + "input", + "inquiry", + "inscription", + "insect", + "insectarium", + "insert", + "inside", + "insight", + "insolence", + "insomnia", + "inspection", + "inspector", + "inspiration", + "installation", + "instance", + "instant", + "instantiation", + "instinct", + "institute", + "institution", + "instruction", + "instructor", + "instrument", + "instrumentalist", + "instrumentation", + "insulation", + "insurance", + "insurgence", + "insurrection", + "integer", + "integral", + "integration", + "integrity", + "intellect", + "intelligence", + "intensity", + "intent", + "intention", + "intentionality", + "interaction", + "interchange", + "interconnection", + "intercourse", + "interest", + "interface", + "interferometer", + "interior", + "interject", + "interloper", + "internet", + "interpretation", + "interpreter", + "interval", + "intervenor", + "intervention", + "interview", + "interviewer", + "intestine", + "introduction", + "intuition", + "invader", + "invasion", + "invention", + "inventor", + "inventory", + "inverse", + "inversion", + "investigation", + "investigator", + "investment", + "investor", + "invitation", + "invite", + "invoice", + "involvement", + "iridescence", + "iris", + "iron", + "ironclad", + "irony", + "irrigation", + "ischemia", + "island", + "isogloss", + "isolation", + "issue", + "item", + "iteration", + "itinerary", + "ivory", + "jack", + "jackal", + "jacket", + "jackfruit", + "jade", + "jaguar", + "jail", + "jailhouse", + "jalape\u00f1o", + "jasmine", + "java", + "javascript", + "jazz", + "jealousy", + "jeans", + "jeep", + "jelly", + "jellybeans", + "jellyfish", + "jerk", + "jewel", + "jeweller", + "jewellery", + "jewelry", + "jicama", + "jiffy", + "jockey", + "jodhpurs", + "joey", + "jogging", + "joint", + "joke", + "journal", + "journalism", + "journalist", + "journey", + "judge", + "judgment", + "judo", + "juggernaut", + "juice", + "julienne", + "jumbo", + "jump", + "jumper", + "jumpsuit", + "jungle", + "junior", + "junk", + "junker", + "junket", + "jury", + "justice", + "justification", + "jute", + "kale", + "kamikaze", + "kangaroo", + "karate", + "kayak", + "kazoo", + "kebab", + "keep", + "keeper", + "kendo", + "kennel", + "ketch", + "ketchup", + "kettle", + "kettledrum", + "keyboard", + "keyboarding", + "keystone", + "kick", + "kidney", + "kielbasa", + "kill", + "killer", + "killing", + "kilogram", + "kilometer", + "kilt", + "kimono", + "kinase", + "kind", + "kindness", + "king", + "kingdom", + "kingfish", + "kiosk", + "kiss", + "kitchen", + "kite", + "kitsch", + "kitten", + "kitty", + "kiwi", + "knee", + "kneejerk", + "knickers", + "knife", + "knight", + "knitting", + "knock", + "knot", + "knowledge", + "knuckle", + "koala", + "kohlrabi", + "kumquat", + "label", + "labor", + "laboratory", + "laborer", + "labour", + "labourer", + "lace", + "lack", + "lacquerware", + "ladder", + "ladle", + "lady", + "ladybug", + "lake", + "lamb", + "lambkin", + "lament", + "lamp", + "lanai", + "land", + "landform", + "landing", + "landmine", + "landscape", + "lane", + "language", + "lantern", + "laparoscope", + "lapdog", + "laptop", + "larch", + "lard", + "larder", + "lark", + "larva", + "laryngitis", + "lasagna", + "lashes", + "last", + "latency", + "latex", + "lathe", + "latin", + "latitude", + "latte", + "latter", + "laugh", + "laughter", + "laundry", + "lava", + "lawmaker", + "lawn", + "lawsuit", + "lawyer", + "layer", + "layout", + "lead", + "leader", + "leadership", + "leading", + "leaf", + "league", + "leaker", + "leap", + "learning", + "leash", + "leather", + "leave", + "leaver", + "lecture", + "leek", + "leeway", + "left", + "legacy", + "legal", + "legend", + "legging", + "legislation", + "legislator", + "legislature", + "legitimacy", + "legume", + "leisure", + "lemon", + "lemonade", + "lemur", + "lender", + "lending", + "length", + "lens", + "lentil", + "leopard", + "leprosy", + "leptocephalus", + "lesbian", + "lesson", + "letter", + "lettuce", + "level", + "lever", + "leverage", + "leveret", + "liability", + "liar", + "liberty", + "libido", + "library", + "licence", + "license", + "licensing", + "licorice", + "lieu", + "lieutenant", + "life", + "lifestyle", + "lifetime", + "lift", + "ligand", + "light", + "lighting", + "lightning", + "lightscreen", + "ligula", + "likelihood", + "likeness", + "lilac", + "lily", + "limb", + "lime", + "limestone", + "limit", + "limitation", + "limo", + "line", + "linen", + "liner", + "linguist", + "linguistics", + "lining", + "link", + "linkage", + "linseed", + "lion", + "lipid", + "lipoprotein", + "lipstick", + "liquid", + "liquidity", + "liquor", + "list", + "listening", + "listing", + "literate", + "literature", + "litigation", + "litmus", + "litter", + "littleneck", + "liver", + "livestock", + "living", + "lizard", + "llama", + "load", + "loading", + "loaf", + "loafer", + "loan", + "lobby", + "lobotomy", + "lobster", + "local", + "localhost", + "locality", + "location", + "lock", + "locker", + "locket", + "locomotive", + "locust", + "lode", + "loft", + "loggia", + "logic", + "login", + "logistics", + "logo", + "loincloth", + "lollipop", + "loneliness", + "longboat", + "longitude", + "look", + "lookout", + "loop", + "loophole", + "loops", + "loquat", + "lord", + "loss", + "lotion", + "lottery", + "lounge", + "louse", + "lout", + "love", + "lover", + "loyalty", + "luck", + "luggage", + "lumber", + "lumberman", + "lunch", + "luncheonette", + "lunchmeat", + "lunchroom", + "lung", + "lunge", + "lust", + "lute", + "luxury", + "lychee", + "lycra", + "lymphocyte", + "lynx", + "lyocell", + "lyre", + "lyrics", + "lysine", + "mRNA", + "macadamia", + "macaroni", + "macaroon", + "macaw", + "machine", + "machinery", + "macrame", + "macro", + "macrofauna", + "macros", + "madam", + "maelstrom", + "maestro", + "magazine", + "maggot", + "magic", + "magician", + "magnet", + "magnitude", + "maid", + "maiden", + "mail", + "mailbox", + "mailer", + "mailing", + "mailman", + "main", + "mainland", + "mainstream", + "maintainer", + "maintenance", + "maize", + "major", + "majority", + "makeover", + "maker", + "makeup", + "making", + "male", + "malice", + "mall", + "mallard", + "mallet", + "malnutrition", + "mama", + "mambo", + "mammoth", + "manacle", + "management", + "manager", + "manatee", + "mandarin", + "mandate", + "mandolin", + "mangle", + "mango", + "mangrove", + "manhunt", + "maniac", + "manicure", + "manifestation", + "manipulation", + "mankind", + "manner", + "manor", + "mansard", + "manservant", + "mansion", + "mantel", + "mantle", + "mantua", + "manufacturer", + "manufacturing", + "many", + "maple", + "mapping", + "maracas", + "marathon", + "marble", + "march", + "mare", + "margarine", + "margin", + "mariachi", + "marimba", + "marines", + "marionberry", + "mark", + "marker", + "market", + "marketer", + "marketing", + "marketplace", + "marksman", + "markup", + "marmalade", + "marriage", + "marsh", + "marshland", + "marshmallow", + "marten", + "marxism", + "mascara", + "mask", + "mason", + "masonry", + "mass", + "massage", + "mast", + "master", + "masterpiece", + "mastication", + "mastoid", + "match", + "matchmaker", + "mate", + "material", + "maternity", + "math", + "mathematics", + "matrix", + "matter", + "mattock", + "mattress", + "maximum", + "maybe", + "mayonnaise", + "mayor", + "meadow", + "meal", + "mean", + "meander", + "meaning", + "means", + "meantime", + "measles", + "measure", + "measurement", + "meat", + "meatball", + "meatloaf", + "mecca", + "mechanic", + "mechanism", + "medal", + "media", + "median", + "medication", + "medicine", + "medium", + "meet", + "meeting", + "melatonin", + "melody", + "melon", + "member", + "membership", + "membrane", + "meme", + "memo", + "memorial", + "memory", + "menopause", + "menorah", + "mention", + "mentor", + "menu", + "merchandise", + "merchant", + "mercury", + "meridian", + "meringue", + "merit", + "mesenchyme", + "mess", + "message", + "messenger", + "messy", + "metabolite", + "metal", + "metallurgist", + "metaphor", + "meteor", + "meteorology", + "meter", + "methane", + "method", + "methodology", + "methods", + "metric", + "metro", + "metronome", + "mezzanine", + "microlending", + "micronutrient", + "microphone", + "microsoft", + "microwave", + "midden", + "middle", + "middleman", + "midline", + "midnight", + "midwife", + "might", + "migrant", + "migration", + "mile", + "mileage", + "milepost", + "milestone", + "military", + "milk", + "milkshake", + "mill", + "millennium", + "millet", + "millimeter", + "million", + "millisecond", + "millstone", + "mime", + "mimosa", + "mincemeat", + "mind", + "mine", + "mineral", + "mineshaft", + "mini", + "minibus", + "minimalism", + "minimum", + "mining", + "minion", + "minister", + "mink", + "minnow", + "minor", + "minority", + "mint", + "minute", + "miracle", + "mirror", + "miscarriage", + "miscommunication", + "misfit", + "misnomer", + "misogyny", + "misplacement", + "misreading", + "misrepresentation", + "miss", + "missile", + "mission", + "missionary", + "mist", + "mistake", + "mister", + "mistress", + "misunderstand", + "miter", + "mitten", + "mixer", + "mixture", + "moai", + "moat", + "mobile", + "mobility", + "mobster", + "moccasins", + "mocha", + "mochi", + "mode", + "model", + "modeling", + "modem", + "modernist", + "modernity", + "modification", + "molar", + "molasses", + "molding", + "mole", + "molecule", + "moment", + "monastery", + "monasticism", + "money", + "monger", + "monitor", + "monitoring", + "monk", + "monkey", + "monocle", + "monopoly", + "monotheism", + "monsoon", + "monster", + "month", + "monument", + "mood", + "moody", + "moon", + "moonlight", + "moonscape", + "moonshine", + "moose", + "morale", + "morbid", + "morbidity", + "morning", + "moron", + "morphology", + "morsel", + "mortal", + "mortality", + "mortgage", + "mortise", + "mosque", + "mosquito", + "most", + "motel", + "moth", + "mother", + "motion", + "motivation", + "motive", + "motor", + "motorboat", + "motorcar", + "motorcycle", + "mound", + "mountain", + "mouse", + "mouser", + "mousse", + "moustache", + "mouth", + "mouton", + "movement", + "mover", + "movie", + "mower", + "mozzarella", + "muffin", + "mukluk", + "mule", + "multimedia", + "murder", + "muscat", + "muscatel", + "muscle", + "musculature", + "museum", + "mushroom", + "music", + "musician", + "muskrat", + "mussel", + "mustache", + "mustard", + "mutation", + "mutt", + "mutton", + "mycoplasma", + "mystery", + "myth", + "mythology", + "nail", + "name", + "naming", + "nanoparticle", + "napkin", + "narrative", + "nasal", + "nation", + "nationality", + "native", + "naturalisation", + "nature", + "navigation", + "necessity", + "neck", + "necklace", + "necktie", + "nectar", + "nectarine", + "need", + "needle", + "neglect", + "negligee", + "negotiation", + "neighbor", + "neighborhood", + "neighbour", + "neighbourhood", + "neologism", + "neon", + "neonate", + "nephew", + "nerve", + "nest", + "nestling", + "nestmate", + "netball", + "netbook", + "netsuke", + "network", + "networking", + "neurobiologist", + "neuron", + "neuropathologist", + "neuropsychiatry", + "news", + "newsletter", + "newspaper", + "newsprint", + "newsstand", + "nexus", + "nibble", + "nicety", + "niche", + "nick", + "nickel", + "nickname", + "niece", + "night", + "nightclub", + "nightgown", + "nightingale", + "nightlife", + "nightlight", + "nightmare", + "ninja", + "nitrogen", + "nobody", + "node", + "noetic", + "noir", + "noise", + "nonbeliever", + "nonconformist", + "nondisclosure", + "nonsense", + "noodle", + "noodles", + "noon", + "norm", + "normal", + "normalisation", + "normalization", + "north", + "nose", + "notation", + "note", + "notebook", + "notepad", + "nothing", + "notice", + "notion", + "notoriety", + "nougat", + "noun", + "nourishment", + "novel", + "nucleotidase", + "nucleotide", + "nudge", + "nuke", + "number", + "numeracy", + "numeric", + "numismatist", + "nurse", + "nursery", + "nursing", + "nurture", + "nutmeg", + "nutrient", + "nutrition", + "nylon", + "nymph", + "oasis", + "oatmeal", + "oats", + "obedience", + "obesity", + "object", + "objection", + "objective", + "obligation", + "oboe", + "observation", + "observatory", + "obsession", + "obsidian", + "obstacle", + "occasion", + "occupation", + "occurrence", + "ocean", + "ocelot", + "octagon", + "octave", + "octavo", + "octet", + "octopus", + "odometer", + "odyssey", + "oeuvre", + "offence", + "offense", + "offer", + "offering", + "office", + "officer", + "official", + "offset", + "okra", + "oldie", + "oleo", + "olive", + "omega", + "omelet", + "omission", + "omnivore", + "oncology", + "onion", + "online", + "onset", + "opening", + "opera", + "operating", + "operation", + "operator", + "ophthalmologist", + "opinion", + "opium", + "opossum", + "opponent", + "opportunist", + "opportunity", + "opposite", + "opposition", + "optimal", + "optimisation", + "optimist", + "optimization", + "option", + "orange", + "orangutan", + "orator", + "orchard", + "orchestra", + "orchid", + "order", + "ordinary", + "ordination", + "oregano", + "organ", + "organisation", + "organising", + "organization", + "organizing", + "orient", + "orientation", + "origin", + "original", + "originality", + "ornament", + "osmosis", + "osprey", + "ostrich", + "other", + "otter", + "ottoman", + "ounce", + "outback", + "outcome", + "outfielder", + "outfit", + "outhouse", + "outlaw", + "outlay", + "outlet", + "outline", + "outlook", + "output", + "outrage", + "outrigger", + "outrun", + "outset", + "outside", + "oval", + "ovary", + "oven", + "overcharge", + "overclocking", + "overcoat", + "overexertion", + "overflight", + "overhead", + "overheard", + "overload", + "overnighter", + "overshoot", + "oversight", + "overview", + "overweight", + "owner", + "ownership", + "oxford", + "oxygen", + "oyster", + "ozone", + "pace", + "pacemaker", + "pack", + "package", + "packaging", + "packet", + "paddle", + "paddock", + "pagan", + "page", + "pagoda", + "pail", + "pain", + "paint", + "painter", + "painting", + "paintwork", + "pair", + "pajamas", + "palace", + "palate", + "palm", + "pamphlet", + "pancake", + "pancreas", + "panda", + "panel", + "panic", + "pannier", + "panpipe", + "pansy", + "panther", + "panties", + "pantologist", + "pantology", + "pantry", + "pants", + "pantsuit", + "panty", + "pantyhose", + "papa", + "papaya", + "paper", + "paperback", + "paperwork", + "papyrus", + "parable", + "parachute", + "parade", + "paradise", + "paragraph", + "parallelogram", + "paramecium", + "paramedic", + "parameter", + "paranoia", + "parcel", + "parchment", + "pard", + "pardon", + "parent", + "parenthesis", + "parenting", + "park", + "parka", + "parking", + "parliament", + "parole", + "parrot", + "parser", + "parsley", + "parsnip", + "part", + "participant", + "participation", + "particle", + "particular", + "partner", + "partnership", + "partridge", + "party", + "pass", + "passage", + "passbook", + "passenger", + "passing", + "passion", + "passive", + "passport", + "password", + "past", + "pasta", + "paste", + "pastor", + "pastoralist", + "pastry", + "pasture", + "patch", + "pate", + "patent", + "patentee", + "path", + "pathogenesis", + "pathology", + "pathway", + "patience", + "patient", + "patina", + "patio", + "patriarch", + "patrimony", + "patriot", + "patrol", + "patroller", + "patrolling", + "patron", + "pattern", + "patty", + "pattypan", + "pause", + "pavement", + "pavilion", + "pawnshop", + "payee", + "payment", + "payoff", + "peace", + "peach", + "peacoat", + "peacock", + "peak", + "peanut", + "pear", + "pearl", + "peasant", + "pecan", + "pecker", + "pedal", + "peek", + "peen", + "peer", + "pegboard", + "pelican", + "pelt", + "penalty", + "pence", + "pencil", + "pendant", + "pendulum", + "penguin", + "penicillin", + "peninsula", + "penis", + "pennant", + "penny", + "pension", + "pentagon", + "peony", + "people", + "pepper", + "pepperoni", + "percent", + "percentage", + "perception", + "perch", + "perennial", + "perfection", + "performance", + "perfume", + "period", + "periodical", + "peripheral", + "permafrost", + "permission", + "permit", + "perp", + "perpendicular", + "persimmon", + "person", + "personal", + "personality", + "personnel", + "perspective", + "pest", + "pet", + "petal", + "petition", + "petitioner", + "petticoat", + "pharmacist", + "pharmacopoeia", + "phase", + "pheasant", + "phenomenon", + "phenotype", + "pheromone", + "philanthropy", + "philosopher", + "philosophy", + "phone", + "phosphate", + "photo", + "photodiode", + "photograph", + "photographer", + "photography", + "photoreceptor", + "phrase", + "phrasing", + "physical", + "physics", + "physiology", + "pianist", + "piano", + "piccolo", + "pick", + "pickax", + "pickaxe", + "picket", + "pickle", + "pickup", + "picnic", + "picture", + "picturesque", + "piece", + "pier", + "piety", + "pigeon", + "piglet", + "pigpen", + "pigsty", + "pike", + "pilaf", + "pile", + "pilgrim", + "pilgrimage", + "pill", + "pillar", + "pillbox", + "pillow", + "pilot", + "pimp", + "pimple", + "pinafore", + "pine", + "pineapple", + "pinecone", + "ping", + "pink", + "pinkie", + "pinot", + "pinstripe", + "pint", + "pinto", + "pinworm", + "pioneer", + "pipe", + "pipeline", + "piracy", + "pirate", + "piss", + "pistol", + "pita", + "pitch", + "pitcher", + "pitching", + "pith", + "pizza", + "place", + "placebo", + "placement", + "placode", + "plagiarism", + "plain", + "plaintiff", + "plan", + "plane", + "planet", + "planning", + "plant", + "plantation", + "planter", + "planula", + "plasma", + "plaster", + "plasterboard", + "plastic", + "plate", + "platelet", + "platform", + "platinum", + "platter", + "platypus", + "play", + "player", + "playground", + "playroom", + "playwright", + "plea", + "pleasure", + "pleat", + "pledge", + "plenty", + "plier", + "pliers", + "plight", + "plot", + "plough", + "plover", + "plow", + "plowman", + "plug", + "plugin", + "plum", + "plumber", + "plume", + "plunger", + "plywood", + "pneumonia", + "pocket", + "pocketbook", + "podcast", + "poem", + "poet", + "poetry", + "poignance", + "point", + "poison", + "poisoning", + "poker", + "polarisation", + "polarization", + "pole", + "polenta", + "police", + "policeman", + "policy", + "polish", + "politician", + "politics", + "poll", + "polliwog", + "pollutant", + "pollution", + "polo", + "polyester", + "polyp", + "pomegranate", + "pomelo", + "pompom", + "poncho", + "pond", + "pony", + "pool", + "poor", + "popcorn", + "poppy", + "popsicle", + "popularity", + "population", + "populist", + "porcelain", + "porch", + "porcupine", + "pork", + "porpoise", + "port", + "porter", + "portfolio", + "porthole", + "portion", + "portrait", + "position", + "possession", + "possibility", + "possible", + "post", + "postage", + "postbox", + "poster", + "posterior", + "postfix", + "potato", + "potential", + "pottery", + "potty", + "pouch", + "poultry", + "pound", + "pounding", + "poverty", + "powder", + "power", + "practice", + "practitioner", + "prairie", + "praise", + "pray", + "prayer", + "precedence", + "precedent", + "precipitation", + "precision", + "predecessor", + "preface", + "preference", + "prefix", + "pregnancy", + "prejudice", + "prelude", + "premeditation", + "premier", + "premise", + "premium", + "preoccupation", + "preparation", + "prescription", + "presence", + "present", + "presentation", + "preservation", + "preserves", + "presidency", + "president", + "press", + "pressroom", + "pressure", + "pressurisation", + "pressurization", + "prestige", + "presume", + "pretzel", + "prevalence", + "prevention", + "prey", + "price", + "pricing", + "pride", + "priest", + "priesthood", + "primary", + "primate", + "prince", + "princess", + "principal", + "principle", + "print", + "printer", + "printing", + "prior", + "priority", + "prison", + "prisoner", + "privacy", + "private", + "privilege", + "prize", + "prizefight", + "probability", + "probation", + "probe", + "problem", + "procedure", + "proceedings", + "process", + "processing", + "processor", + "proctor", + "procurement", + "produce", + "producer", + "product", + "production", + "productivity", + "profession", + "professional", + "professor", + "profile", + "profit", + "progenitor", + "program", + "programme", + "programmer", + "programming", + "progress", + "progression", + "prohibition", + "project", + "proliferation", + "promenade", + "promise", + "promotion", + "prompt", + "pronoun", + "pronunciation", + "proof", + "propaganda", + "propane", + "property", + "prophet", + "proponent", + "proportion", + "proposal", + "proposition", + "proprietor", + "prose", + "prosecution", + "prosecutor", + "prospect", + "prosperity", + "prostacyclin", + "prostanoid", + "prostrate", + "protection", + "protein", + "protest", + "protocol", + "providence", + "provider", + "province", + "provision", + "prow", + "proximal", + "proximity", + "prune", + "pruner", + "pseudocode", + "pseudoscience", + "psychiatrist", + "psychoanalyst", + "psychologist", + "psychology", + "ptarmigan", + "public", + "publication", + "publicity", + "publisher", + "publishing", + "pudding", + "puddle", + "puffin", + "puggle", + "pulley", + "pulse", + "puma", + "pump", + "pumpernickel", + "pumpkin", + "pumpkinseed", + "punch", + "punctuation", + "punishment", + "pupa", + "pupil", + "puppet", + "puppy", + "purchase", + "puritan", + "purity", + "purple", + "purpose", + "purr", + "purse", + "pursuit", + "push", + "pusher", + "puzzle", + "pyramid", + "pyridine", + "pythagorus", + "python", + "quadrant", + "quail", + "qualification", + "quality", + "quantity", + "quart", + "quarter", + "quartet", + "quartz", + "queen", + "query", + "quest", + "question", + "questioner", + "questionnaire", + "quiche", + "quicksand", + "quiet", + "quill", + "quilt", + "quince", + "quinoa", + "quit", + "quiver", + "quota", + "quotation", + "quote", + "rabbi", + "rabbit", + "raccoon", + "race", + "racer", + "racing", + "racism", + "racist", + "rack", + "radar", + "radiator", + "radio", + "radiosonde", + "radish", + "raffle", + "raft", + "rage", + "raid", + "rail", + "railing", + "railroad", + "railway", + "raiment", + "rain", + "rainbow", + "raincoat", + "rainmaker", + "rainstorm", + "rainy", + "raise", + "raisin", + "rake", + "rally", + "rambler", + "ramen", + "ramie", + "ranch", + "rancher", + "randomisation", + "randomization", + "range", + "ranger", + "rank", + "rape", + "raspberry", + "rat", + "rate", + "ratepayer", + "rating", + "ratio", + "rationale", + "rations", + "raven", + "ravioli", + "rawhide", + "rayon", + "razor", + "reach", + "reactant", + "reaction", + "read", + "reader", + "readiness", + "reading", + "real", + "reality", + "realization", + "realm", + "reamer", + "rear", + "reason", + "reasoning", + "rebel", + "rebellion", + "reboot", + "recall", + "recapitulation", + "receipt", + "receiver", + "reception", + "receptor", + "recess", + "recession", + "recipe", + "recipient", + "reciprocity", + "reclamation", + "recliner", + "recognition", + "recollection", + "recommendation", + "reconsideration", + "record", + "recorder", + "recording", + "recovery", + "recreation", + "recruit", + "rectangle", + "recursion", + "redesign", + "redhead", + "redirect", + "rediscovery", + "reduction", + "reef", + "refectory", + "reference", + "referendum", + "reflection", + "reform", + "refreshments", + "refrigerator", + "refuge", + "refund", + "refusal", + "refuse", + "regard", + "regex", + "regime", + "region", + "regionalism", + "register", + "registration", + "registry", + "regret", + "regulation", + "regulator", + "rehospitalisation", + "rehospitalization", + "reindeer", + "reinscription", + "reject", + "relation", + "relationship", + "relative", + "relaxation", + "relay", + "release", + "reliability", + "relief", + "religion", + "relish", + "reluctance", + "remains", + "remark", + "reminder", + "remnant", + "remote", + "removal", + "renaissance", + "rent", + "reorganisation", + "reorganization", + "repair", + "reparation", + "repayment", + "repeat", + "replacement", + "replica", + "replication", + "reply", + "report", + "reporter", + "reporting", + "repository", + "representation", + "representative", + "reprocessing", + "reptile", + "republic", + "republican", + "reputation", + "request", + "requirement", + "resale", + "rescue", + "research", + "researcher", + "resemblance", + "reservation", + "reserve", + "reservoir", + "reset", + "residence", + "resident", + "residue", + "resist", + "resistance", + "resolution", + "resolve", + "resort", + "resource", + "respect", + "respite", + "response", + "responsibility", + "rest", + "restaurant", + "restoration", + "restriction", + "restroom", + "restructuring", + "result", + "resume", + "retailer", + "retention", + "rethinking", + "retina", + "retirement", + "retouching", + "retreat", + "retrospect", + "retrospective", + "retrospectivity", + "return", + "reunion", + "revascularisation", + "revascularization", + "reveal", + "revelation", + "revenant", + "revenge", + "revenue", + "reversal", + "reverse", + "review", + "revitalisation", + "revitalization", + "revival", + "revolution", + "revolver", + "reward", + "rhetoric", + "rheumatism", + "rhinoceros", + "rhubarb", + "rhyme", + "rhythm", + "ribbon", + "rice", + "riddle", + "ride", + "rider", + "ridge", + "riding", + "rifle", + "right", + "ring", + "ringworm", + "riot", + "ripple", + "rise", + "riser", + "risk", + "rite", + "ritual", + "rituals", + "river", + "riverbed", + "rivulet", + "road", + "roadway", + "roar", + "roast", + "robe", + "robin", + "robot", + "robotics", + "rock", + "rocker", + "rocket", + "role", + "roll", + "roller", + "romaine", + "romance", + "roof", + "room", + "roommate", + "rooster", + "root", + "rope", + "rose", + "rosemary", + "roster", + "rostrum", + "rotation", + "round", + "roundabout", + "route", + "router", + "routine", + "rowboat", + "rowing", + "rubber", + "rubbish", + "rubric", + "ruby", + "ruckus", + "rudiment", + "ruffle", + "rugby", + "ruin", + "rule", + "ruler", + "ruling", + "rumor", + "runaway", + "runner", + "running", + "runway", + "rush", + "rust", + "rutabaga", + "sabre", + "sack", + "saddle", + "sadness", + "safari", + "safe", + "safeguard", + "safety", + "saffron", + "sage", + "sail", + "sailboat", + "sailing", + "sailor", + "saint", + "sake", + "salad", + "salami", + "salary", + "sale", + "salesman", + "salmon", + "salon", + "saloon", + "salsa", + "salt", + "salute", + "samovar", + "sampan", + "sample", + "samurai", + "sanction", + "sanctity", + "sanctuary", + "sand", + "sandal", + "sandbar", + "sandpaper", + "sandwich", + "sanity", + "sardine", + "sari", + "sarong", + "sash", + "satellite", + "satin", + "satire", + "satisfaction", + "sauce", + "saucer", + "sauerkraut", + "sausage", + "savage", + "savannah", + "saving", + "savings", + "savior", + "saviour", + "savory", + "saxophone", + "scaffold", + "scale", + "scallion", + "scallops", + "scalp", + "scam", + "scanner", + "scarecrow", + "scarf", + "scarification", + "scenario", + "scene", + "scenery", + "scent", + "schedule", + "scheduling", + "schema", + "scheme", + "schizophrenic", + "schnitzel", + "scholar", + "scholarship", + "school", + "schoolhouse", + "schooner", + "science", + "scientist", + "scimitar", + "scissors", + "scooter", + "scope", + "score", + "scorn", + "scorpion", + "scotch", + "scout", + "scow", + "scrambled", + "scrap", + "scraper", + "scratch", + "screamer", + "screen", + "screening", + "screenwriting", + "screw", + "screwdriver", + "scrim", + "scrip", + "script", + "scripting", + "scripture", + "scrutiny", + "sculpting", + "sculptural", + "sculpture", + "seabass", + "seafood", + "seagull", + "seal", + "seaplane", + "search", + "seashore", + "seaside", + "season", + "seat", + "seaweed", + "second", + "secrecy", + "secret", + "secretariat", + "secretary", + "secretion", + "section", + "sectional", + "sector", + "security", + "sediment", + "seed", + "seeder", + "seeker", + "seep", + "segment", + "seizure", + "selection", + "self", + "seller", + "selling", + "semantics", + "semester", + "semicircle", + "semicolon", + "semiconductor", + "seminar", + "senate", + "senator", + "sender", + "senior", + "sense", + "sensibility", + "sensitive", + "sensitivity", + "sensor", + "sentence", + "sentencing", + "sentiment", + "sepal", + "separation", + "septicaemia", + "sequel", + "sequence", + "serial", + "series", + "sermon", + "serum", + "serval", + "servant", + "server", + "service", + "servitude", + "sesame", + "session", + "setback", + "setting", + "settlement", + "settler", + "severity", + "sewer", + "sexuality", + "shack", + "shackle", + "shade", + "shadow", + "shadowbox", + "shakedown", + "shaker", + "shallot", + "shallows", + "shaman", + "shame", + "shampoo", + "shanty", + "shape", + "share", + "shareholder", + "shark", + "shaw", + "shawl", + "shear", + "shearling", + "sheath", + "shed", + "sheep", + "sheet", + "shelf", + "shell", + "shelter", + "sherbet", + "sherry", + "shield", + "shift", + "shin", + "shine", + "shingle", + "ship", + "shipper", + "shipping", + "shipyard", + "shirt", + "shirtdress", + "shit", + "shoat", + "shock", + "shoe", + "shoehorn", + "shoelace", + "shoemaker", + "shoes", + "shoestring", + "shofar", + "shoot", + "shootdown", + "shop", + "shopper", + "shopping", + "shore", + "shoreline", + "short", + "shortage", + "shorts", + "shortwave", + "shot", + "shoulder", + "shout", + "shovel", + "show", + "shower", + "shred", + "shrimp", + "shrine", + "shutdown", + "sibling", + "sick", + "sickness", + "side", + "sideboard", + "sideburns", + "sidecar", + "sidestream", + "sidewalk", + "siding", + "siege", + "sigh", + "sight", + "sightseeing", + "sign", + "signal", + "signature", + "signet", + "significance", + "signify", + "signup", + "silence", + "silica", + "silicon", + "silk", + "silkworm", + "sill", + "silly", + "silo", + "silver", + "similarity", + "simple", + "simplicity", + "simplification", + "simvastatin", + "sincere", + "singer", + "singing", + "singular", + "sink", + "sinuosity", + "sister", + "sitar", + "site", + "situation", + "size", + "skate", + "skating", + "skean", + "skeleton", + "skiing", + "skill", + "skin", + "skirt", + "skull", + "skullcap", + "skullduggery", + "skunk", + "skylight", + "skyline", + "skyscraper", + "skywalk", + "slang", + "slapstick", + "slash", + "slate", + "slave", + "slavery", + "slaw", + "sled", + "sledge", + "sleep", + "sleepiness", + "sleeping", + "sleet", + "sleuth", + "slice", + "slide", + "slider", + "slime", + "slip", + "slipper", + "slippers", + "slope", + "slot", + "sloth", + "slump", + "smell", + "smelting", + "smile", + "smith", + "smock", + "smog", + "smoke", + "smoking", + "smolt", + "smuggling", + "snack", + "snail", + "snake", + "snakebite", + "snap", + "snarl", + "sneaker", + "sneakers", + "sneeze", + "sniffle", + "snob", + "snorer", + "snow", + "snowboarding", + "snowflake", + "snowman", + "snowmobiling", + "snowplow", + "snowstorm", + "snowsuit", + "snuck", + "snug", + "snuggle", + "soap", + "soccer", + "socialism", + "socialist", + "society", + "sociology", + "sock", + "socks", + "soda", + "sofa", + "softball", + "softdrink", + "softening", + "software", + "soil", + "soldier", + "sole", + "solicitation", + "solicitor", + "solidarity", + "solidity", + "soliloquy", + "solitaire", + "solution", + "solvency", + "sombrero", + "somebody", + "someone", + "someplace", + "somersault", + "something", + "somewhere", + "sonar", + "sonata", + "song", + "songbird", + "sonnet", + "soot", + "sophomore", + "soprano", + "sorbet", + "sorghum", + "sorrel", + "sorrow", + "sort", + "soul", + "soulmate", + "sound", + "soundness", + "soup", + "source", + "sourwood", + "sousaphone", + "south", + "southeast", + "souvenir", + "sovereignty", + "soybean", + "space", + "spacing", + "spade", + "spaghetti", + "span", + "spandex", + "spank", + "sparerib", + "spark", + "sparrow", + "spasm", + "spat", + "spatula", + "spawn", + "speaker", + "speakerphone", + "speaking", + "spear", + "spec", + "special", + "specialist", + "specialty", + "species", + "specification", + "spectacle", + "spectacles", + "spectrograph", + "spectrum", + "speculation", + "speech", + "speed", + "speedboat", + "spell", + "spelling", + "spelt", + "spending", + "sphere", + "sphynx", + "spice", + "spider", + "spiderling", + "spike", + "spill", + "spinach", + "spine", + "spiral", + "spirit", + "spiritual", + "spirituality", + "spit", + "spite", + "spleen", + "splendor", + "split", + "spokesman", + "spokeswoman", + "sponge", + "sponsor", + "sponsorship", + "spool", + "spoon", + "spork", + "sport", + "sportsman", + "spot", + "spotlight", + "spouse", + "sprag", + "sprat", + "spray", + "spread", + "spreadsheet", + "spree", + "spring", + "sprinkles", + "sprinter", + "sprout", + "spruce", + "spud", + "spume", + "spur", + "spyglass", + "square", + "squash", + "squatter", + "squeegee", + "squid", + "squirrel", + "stab", + "stability", + "stable", + "stack", + "stacking", + "stackoverflow", + "stadium", + "staff", + "stag", + "stage", + "stain", + "stair", + "staircase", + "stake", + "stalk", + "stall", + "stallion", + "stamen", + "stamina", + "stamp", + "stance", + "stand", + "standard", + "standardisation", + "standardization", + "standing", + "standoff", + "standpoint", + "star", + "starboard", + "start", + "starter", + "state", + "statement", + "statin", + "station", + "statistic", + "statistics", + "statue", + "status", + "statute", + "stay", + "steak", + "stealth", + "steam", + "steamroller", + "steel", + "steeple", + "stem", + "stench", + "stencil", + "step", + "stepdaughter", + "stepmother", + "stepson", + "stereo", + "stew", + "steward", + "stick", + "sticker", + "stiletto", + "still", + "stimulation", + "stimulus", + "sting", + "stinger", + "stitch", + "stitcher", + "stock", + "stockings", + "stole", + "stomach", + "stone", + "stonework", + "stool", + "stop", + "stopsign", + "stopwatch", + "storage", + "store", + "storey", + "storm", + "story", + "storyboard", + "stot", + "stove", + "strait", + "strand", + "stranger", + "strap", + "strategy", + "straw", + "strawberry", + "strawman", + "stream", + "street", + "streetcar", + "strength", + "stress", + "stretch", + "strife", + "strike", + "string", + "strip", + "stripe", + "strobe", + "stroke", + "structure", + "strudel", + "struggle", + "stucco", + "stud", + "student", + "studio", + "study", + "stuff", + "stumbling", + "stump", + "stupidity", + "sturgeon", + "style", + "styling", + "stylus", + "subcomponent", + "subconscious", + "subcontractor", + "subexpression", + "subgroup", + "subject", + "submarine", + "submitter", + "subprime", + "subroutine", + "subscription", + "subsection", + "subset", + "subsidence", + "subsidiary", + "subsidy", + "substance", + "substitution", + "subtitle", + "suburb", + "subway", + "success", + "succotash", + "suck", + "sucker", + "suede", + "suet", + "suffocation", + "sugar", + "suggestion", + "suicide", + "suit", + "suitcase", + "suite", + "sulfur", + "sultan", + "summary", + "summer", + "summit", + "sunbeam", + "sunbonnet", + "sundae", + "sunday", + "sundial", + "sunflower", + "sunglasses", + "sunlamp", + "sunlight", + "sunrise", + "sunroom", + "sunset", + "sunshine", + "superiority", + "supermarket", + "supernatural", + "supervision", + "supervisor", + "supper", + "supplement", + "supplier", + "supply", + "support", + "supporter", + "suppression", + "supreme", + "surface", + "surfboard", + "surge", + "surgeon", + "surgery", + "surname", + "surplus", + "surprise", + "surround", + "surroundings", + "surrounds", + "survey", + "survival", + "survivor", + "sushi", + "suspect", + "suspenders", + "suspension", + "sustainment", + "sustenance", + "swallow", + "swamp", + "swan", + "swanling", + "swath", + "sweat", + "sweater", + "sweatshirt", + "sweatshop", + "sweatsuit", + "sweets", + "swell", + "swim", + "swimming", + "swimsuit", + "swine", + "swing", + "switch", + "switchboard", + "switching", + "swivel", + "sword", + "swordfight", + "swordfish", + "sycamore", + "symbol", + "symbolon", + "symmetry", + "symobols", + "sympathy", + "symptom", + "syndicate", + "syndrome", + "synergy", + "synod", + "synonym", + "synthesis", + "syrup", + "system", + "tabby", + "tabernacle", + "table", + "tablecloth", + "tablet", + "tabletop", + "tachometer", + "tackle", + "taco", + "tactics", + "tactile", + "tadpole", + "tail", + "tailbud", + "tailor", + "tailspin", + "takeover", + "tale", + "talent", + "talk", + "talking", + "tamale", + "tambour", + "tambourine", + "tandem", + "tangerine", + "tank", + "tanker", + "tankful", + "tape", + "tapioca", + "target", + "taro", + "tarragon", + "tart", + "task", + "tassel", + "taste", + "tatami", + "tattler", + "tattoo", + "tavern", + "taxi", + "taxicab", + "taxpayer", + "teacher", + "teaching", + "team", + "teammate", + "teapot", + "tear", + "tech", + "technician", + "technique", + "technologist", + "technology", + "tectonics", + "teen", + "teenager", + "teepee", + "telephone", + "telescreen", + "teletype", + "television", + "tell", + "teller", + "temp", + "temper", + "temperature", + "temple", + "tempo", + "temporariness", + "temporary", + "temptation", + "temptress", + "tenant", + "tendency", + "tender", + "tenement", + "tenet", + "tennis", + "tenor", + "tension", + "tensor", + "tent", + "tentacle", + "tenth", + "tepee", + "teriyaki", + "term", + "terminal", + "termination", + "terminology", + "termite", + "terrace", + "terracotta", + "terrapin", + "terrarium", + "territory", + "terror", + "terrorism", + "terrorist", + "test", + "testament", + "testimonial", + "testimony", + "testing", + "text", + "textbook", + "textual", + "texture", + "thanks", + "thaw", + "theater", + "theft", + "theism", + "theme", + "theology", + "theory", + "therapist", + "therapy", + "thermals", + "thermometer", + "thermostat", + "thesis", + "thickness", + "thief", + "thigh", + "thing", + "thinking", + "thirst", + "thistle", + "thong", + "thongs", + "thorn", + "thought", + "thousand", + "thread", + "threat", + "threshold", + "thrift", + "thrill", + "throat", + "throne", + "thrush", + "thrust", + "thug", + "thumb", + "thump", + "thunder", + "thunderbolt", + "thunderhead", + "thunderstorm", + "thyme", + "tiara", + "tick", + "ticket", + "tide", + "tiger", + "tights", + "tile", + "till", + "tilt", + "timbale", + "timber", + "time", + "timeline", + "timeout", + "timer", + "timetable", + "timing", + "timpani", + "tinderbox", + "tinkle", + "tintype", + "tire", + "tissue", + "titanium", + "title", + "toad", + "toast", + "toaster", + "tobacco", + "today", + "toenail", + "toffee", + "tofu", + "toga", + "toilet", + "tolerance", + "tolerant", + "toll", + "tomatillo", + "tomato", + "tomb", + "tomography", + "tomorrow", + "tonality", + "tone", + "tongue", + "tonic", + "tonight", + "tool", + "toot", + "tooth", + "toothbrush", + "toothpaste", + "toothpick", + "topic", + "topsail", + "toque", + "toreador", + "tornado", + "torso", + "torte", + "tortellini", + "tortilla", + "tortoise", + "tosser", + "total", + "tote", + "touch", + "tour", + "tourism", + "tourist", + "tournament", + "towel", + "tower", + "town", + "townhouse", + "township", + "trace", + "trachoma", + "track", + "tracking", + "tracksuit", + "tract", + "tractor", + "trade", + "trader", + "trading", + "tradition", + "traditionalism", + "traffic", + "trafficker", + "tragedy", + "trail", + "trailer", + "trailpatrol", + "train", + "trainer", + "training", + "trait", + "tram", + "tramp", + "trance", + "transaction", + "transcript", + "transfer", + "transformation", + "transit", + "transition", + "translation", + "transmission", + "transom", + "transparency", + "transplantation", + "transport", + "transportation", + "trap", + "trapdoor", + "trapezium", + "trapezoid", + "trash", + "travel", + "traveler", + "tray", + "treasure", + "treasury", + "treat", + "treatment", + "treaty", + "tree", + "trek", + "trellis", + "tremor", + "trench", + "trend", + "triad", + "trial", + "triangle", + "tribe", + "tributary", + "trick", + "trigger", + "trigonometry", + "trillion", + "trim", + "trinket", + "trip", + "tripod", + "tritone", + "triumph", + "trolley", + "trombone", + "troop", + "trooper", + "trophy", + "trouble", + "trousers", + "trout", + "trove", + "trowel", + "truck", + "trumpet", + "trunk", + "trust", + "trustee", + "truth", + "tsunami", + "tuba", + "tube", + "tuber", + "tugboat", + "tuition", + "tulip", + "tumbler", + "tummy", + "tuna", + "tune", + "tunic", + "tunnel", + "turban", + "turf", + "turkey", + "turmeric", + "turn", + "turning", + "turnip", + "turnover", + "turnstile", + "turret", + "turtle", + "tusk", + "tussle", + "tutu", + "tuxedo", + "tweet", + "tweezers", + "twig", + "twilight", + "twine", + "twins", + "twist", + "twister", + "twitter", + "type", + "typeface", + "typescript", + "typewriter", + "typhoon", + "ukulele", + "ultimatum", + "umbrella", + "unblinking", + "uncertainty", + "uncle", + "underclothes", + "underestimate", + "underground", + "underneath", + "underpants", + "underpass", + "undershirt", + "understanding", + "understatement", + "undertaker", + "underwear", + "underweight", + "underwire", + "underwriting", + "unemployment", + "unibody", + "unicorn", + "uniform", + "uniformity", + "union", + "unique", + "unit", + "unity", + "universe", + "university", + "update", + "upgrade", + "uplift", + "upper", + "upstairs", + "upward", + "urge", + "urgency", + "usage", + "user", + "usher", + "usual", + "utensil", + "utilisation", + "utility", + "utilization", + "vacation", + "vaccine", + "vacuum", + "vagrant", + "valance", + "valentine", + "validate", + "validity", + "valley", + "valuable", + "value", + "vampire", + "vanadyl", + "vane", + "vanilla", + "vanity", + "variability", + "variable", + "variant", + "variation", + "variety", + "vascular", + "vase", + "vault", + "vaulting", + "veal", + "vector", + "vegetable", + "vegetarian", + "vegetarianism", + "vegetation", + "vehicle", + "veil", + "vein", + "veldt", + "vellum", + "velocity", + "velodrome", + "velvet", + "vendor", + "veneer", + "vengeance", + "venison", + "venom", + "venti", + "venture", + "venue", + "veranda", + "verb", + "verdict", + "verification", + "vermicelli", + "vernacular", + "verse", + "version", + "vertigo", + "verve", + "vessel", + "vest", + "vestment", + "veteran", + "veterinarian", + "veto", + "viability", + "vibe", + "vibraphone", + "vibration", + "vibrissae", + "vice", + "vicinity", + "victim", + "victory", + "video", + "view", + "viewer", + "vignette", + "villa", + "village", + "vine", + "vinegar", + "vineyard", + "vintage", + "vintner", + "vinyl", + "viola", + "violation", + "violence", + "violet", + "violin", + "virginal", + "virtue", + "virus", + "visa", + "viscose", + "vise", + "vision", + "visit", + "visitor", + "visor", + "vista", + "visual", + "vitality", + "vitamin", + "vitro", + "vivo", + "vixen", + "vodka", + "vogue", + "voice", + "void", + "volatility", + "volcano", + "volleyball", + "volume", + "volunteer", + "volunteering", + "vomit", + "vote", + "voter", + "voting", + "voyage", + "vulture", + "wafer", + "waffle", + "wage", + "wagon", + "waist", + "waistband", + "wait", + "waiter", + "waiting", + "waitress", + "waiver", + "wake", + "walk", + "walker", + "walking", + "walkway", + "wall", + "wallaby", + "wallet", + "walnut", + "walrus", + "wampum", + "wannabe", + "want", + "warden", + "wardrobe", + "warfare", + "warlock", + "warlord", + "warming", + "warmth", + "warning", + "warrant", + "warren", + "warrior", + "wasabi", + "wash", + "washbasin", + "washcloth", + "washer", + "washtub", + "wasp", + "waste", + "wastebasket", + "wasting", + "watch", + "watcher", + "watchmaker", + "water", + "waterbed", + "watercress", + "waterfall", + "waterfront", + "watermelon", + "waterskiing", + "waterspout", + "waterwheel", + "wave", + "waveform", + "weakness", + "wealth", + "weapon", + "wear", + "weasel", + "weather", + "webinar", + "webmail", + "webpage", + "website", + "wedding", + "wedge", + "weed", + "weeder", + "weedkiller", + "week", + "weekend", + "weekender", + "weight", + "weird", + "welcome", + "welfare", + "well", + "west", + "western", + "wetland", + "wetsuit", + "whack", + "whale", + "wharf", + "wheat", + "wheel", + "whelp", + "whey", + "whip", + "whirlpool", + "whirlwind", + "whisker", + "whiskey", + "whisper", + "whistle", + "white", + "whole", + "wholesale", + "wholesaler", + "whorl", + "wick", + "widget", + "widow", + "width", + "wife", + "wifi", + "wild", + "wildebeest", + "wilderness", + "wildlife", + "will", + "willingness", + "willow", + "wind", + "windage", + "window", + "windscreen", + "windshield", + "wine", + "winery", + "wing", + "wingman", + "wingtip", + "wink", + "winner", + "winter", + "wire", + "wiretap", + "wiring", + "wisdom", + "wiseguy", + "wish", + "wisteria", + "witch", + "withdrawal", + "witness", + "wolf", + "woman", + "wombat", + "wonder", + "wont", + "wood", + "woodchuck", + "woodland", + "woodshed", + "woodwind", + "wool", + "woolens", + "word", + "wording", + "words", + "work", + "workbench", + "worker", + "workforce", + "workhorse", + "working", + "workout", + "workplace", + "workshop", + "world", + "worm", + "worry", + "worship", + "worshiper", + "worth", + "wound", + "wrap", + "wraparound", + "wrapper", + "wrapping", + "wreck", + "wrecker", + "wren", + "wrench", + "wrestler", + "wriggler", + "wrinkle", + "wrist", + "writer", + "writing", + "wrong", + "xylophone", + "yacht", + "yahoo", + "yang", + "yard", + "yarmulke", + "yarn", + "yawl", + "year", + "yeast", + "yellow", + "yellowjacket", + "yesterday", + "yoga", + "yogurt", + "yoke", + "yolk", + "young", + "youngster", + "yourself", + "youth", + "yoyo", + "yurt", + "zampone", + "zebra", + "zebrafish", + "zephyr", + "zero", + "ziggurat", + "zinc", + "zipper", + "zither", + "zombie", + "zone", + "zoologist", + "zoology", + "zucchini" + ] } diff --git a/Hangman/words/es.json b/Hangman/words/es.json index 8522666..2d3b239 100644 --- a/Hangman/words/es.json +++ b/Hangman/words/es.json @@ -1,5 +1,5 @@ { - "words": ["javascript", "java", "python", "typescript", "ahorcado", "programador", "desarrollador", "codeador", "github", "google", "terminal", "maquina", "scripting", "server", "programa", "lista", "bytecode", "comando", "funcion", "constructor", "argumentos", "visual", "variable", "fuente", "editor", "microsoft", "biblioteca", "dependencia", "version", "probar", "paquete", "documentacion", "condicional", "ciclos", "database", "hacker", "binario", "bitwise", "datos", "algoritmos", "cliente", "localhost", "objeto", "clase", "campos", "deployment", "boleano", "metodos", "factorial", "recursion", "iteracion", "instanciacion", "declaracion", "tipo", "pila", "heap", "stackoverflow", "indentacion", "regex", "memoria", "macros", "teclado", "automatizacion", "archivos", "dictionario", "simbolo", "mason", "cryptex", "masterpiece", "artefactos", "pyramid", "rituales", "noetic", "pythagorus", "sincero", "templo", "papyrus", "hebrew", "latino", "manzana", "altar", "crucificcion", "shaman", "oscuridad", "craneo", "vino", "alma", "simbolos", "libro", "elemento", "bestia", "mono", "montar", "eliminar", "enjuagar", "echar", "tener", "verdadero", "ingenieria", "arquitectura", "biologia", "doctor", "palmas", "telefono", "entregar", "amenazar", "jugar", "elaborar", "enamoramiento", "jugarreta", "ver", "saltar", "codear", "imaginar", "palabra", "ganador", "carga", "etiquetar", "familia", "puro", "recomendacion", "amigo", "tipografia", "foto", "modelo", "brevedad", "paloma", "pelar", "prioridades", "adelantar", "manejar", "activar", "desactivar", "encender", "apagar", "consumir", "interdimencional", "extraterrestre", "agartha","naranja","manzana","amor","sandia","fresa", "mesa","silla","auditorio","refrigerador","cocina","cubiertos","camarero", "cama", "mano", "cabeza", "cuello", "pierna", "brazo", "pie", "espalda", "cama", "television", "bicicleta", "zapato", "zapatilla", "almohada", "agua", "zumo", "cable", "lampara", "taza", "lapiz", "boligrafo", "lapel"], + "language": "es", "played": "¡La letra que escribiste ya fue usada!", "you_won": "¡Ganaste!", "you_lose": "¡Perdiste!", @@ -8,5 +8,180 @@ "remaining": "letras por adivinar", "letters": "Letras que ya se usaron:", "guess": "Adivina la letra:", - "hangman": "Ahorcado" + "hangman": "Ahorcado", + "words": [ + "javascript", + "java", + "python", + "typescript", + "ahorcado", + "programador", + "desarrollador", + "codeador", + "github", + "google", + "terminal", + "maquina", + "scripting", + "server", + "programa", + "lista", + "bytecode", + "comando", + "funcion", + "constructor", + "argumentos", + "visual", + "variable", + "fuente", + "editor", + "microsoft", + "biblioteca", + "dependencia", + "version", + "probar", + "paquete", + "documentacion", + "condicional", + "ciclos", + "database", + "hacker", + "binario", + "bitwise", + "datos", + "algoritmos", + "cliente", + "localhost", + "objeto", + "clase", + "campos", + "deployment", + "boleano", + "metodos", + "factorial", + "recursion", + "iteracion", + "instanciacion", + "declaracion", + "tipo", + "pila", + "heap", + "stackoverflow", + "indentacion", + "regex", + "memoria", + "macros", + "teclado", + "automatizacion", + "archivos", + "dictionario", + "simbolo", + "mason", + "cryptex", + "masterpiece", + "artefactos", + "pyramid", + "rituales", + "noetic", + "pythagorus", + "sincero", + "templo", + "papyrus", + "hebrew", + "latino", + "manzana", + "altar", + "crucificcion", + "shaman", + "oscuridad", + "craneo", + "vino", + "alma", + "simbolos", + "libro", + "elemento", + "bestia", + "mono", + "montar", + "eliminar", + "enjuagar", + "echar", + "tener", + "verdadero", + "ingenieria", + "arquitectura", + "biologia", + "doctor", + "palmas", + "telefono", + "entregar", + "amenazar", + "jugar", + "elaborar", + "enamoramiento", + "jugarreta", + "ver", + "saltar", + "codear", + "imaginar", + "palabra", + "ganador", + "carga", + "etiquetar", + "familia", + "puro", + "recomendacion", + "amigo", + "tipografia", + "foto", + "modelo", + "brevedad", + "paloma", + "pelar", + "prioridades", + "adelantar", + "manejar", + "activar", + "desactivar", + "encender", + "apagar", + "consumir", + "interdimencional", + "extraterrestre", + "agartha", + "naranja", + "manzana", + "amor", + "sandia", + "fresa", + "mesa", + "silla", + "auditorio", + "refrigerador", + "cocina", + "cubiertos", + "camarero", + "cama", + "mano", + "cabeza", + "cuello", + "pierna", + "brazo", + "pie", + "espalda", + "cama", + "television", + "bicicleta", + "zapato", + "zapatilla", + "almohada", + "agua", + "zumo", + "cable", + "lampara", + "taza", + "lapiz", + "boligrafo", + "lapel" + ] } diff --git a/Hangman/words/fr.json b/Hangman/words/fr.json index 6ef9bc0..e999a77 100644 --- a/Hangman/words/fr.json +++ b/Hangman/words/fr.json @@ -1,117 +1,118 @@ { - "words": [ - "algorithmes", - "ancienne", - "ancieux", - "ame", - "arguments", - "artefacts", - "autel", - "automatisation", - "bibliotheque", - "binaire", - "booleen", - "boucle", - "bytecode", - "chaman", - "champs", - "classe", - "clavier", - "client", - "codeur", - "commande ", - "conditionnel", - "constructeur", - "craindre", - "crane", - "crever", - "creuser", - "crier", - "croire", - "crucifixion", - "cryptographie", - "database", - "declaration", - "dependance", - "deploiement", - "developpeur", - "dictionnaire", - "documentation", - "donnees", - "editeur", - "embleme", - "essais", - "factoriel", - "fichiers", - "fonction", - "github", - "google", - "hackeur", - "hebreu", - "indentation", - "instanciation", - "iteration", - "java", - "javascript", - "latin", - "localhost", - "machine", - "macon", - "macros", - "memoire", - "methodes", - "microsoft", - "niveau", - "nouvelle", - "nouveau", - "nouvel", - "noetique", - "noirceur", - "objet", - "papyrus", - "paquet", - "pendu", - "pile", - "pomme", - "programme", - "programmeur", - "professeur", - "pyramide", - "pythagore", - "python", - "recueil", - "recursivite", - "regex", - "rites", - "saccade", - "saccadé", - "saccager", - "scriptage", - "serveur", - "serveuse", - "sincere", - "source", - "stackoverflow", - "tableau ", - "tas", - "temple", - "terminal", - "type", - "typescript", - "variable", - "version", - "vigne", - "visuel", - "vicieux", - "vieux" - ], - "played": "La lettre que vous avez écrite a déjà été jouée!", - "you_won": "Vous avez gagné!", - "you_lose": "Vous avez perdu!", - "word_was": "Le mot était:", - "one_char": "Ecrivez un seul caractère!", - "remaining": "Essais restants:", - "letters": "Lettres déjà jouées:", - "guess": "Devinez une lettre:", - "hangman": "Pendu" + "language": "fr", + "played": "La lettre que vous avez écrite a déjà été jouée!", + "you_won": "Vous avez gagné!", + "you_lose": "Vous avez perdu!", + "word_was": "Le mot était:", + "one_char": "Ecrivez un seul caractère!", + "remaining": "Essais restants:", + "letters": "Lettres déjà jouées:", + "guess": "Devinez une lettre:", + "hangman": "Pendu", + "words": [ + "algorithmes", + "ancienne", + "ancieux", + "ame", + "arguments", + "artefacts", + "autel", + "automatisation", + "bibliotheque", + "binaire", + "booleen", + "boucle", + "bytecode", + "chaman", + "champs", + "classe", + "clavier", + "client", + "codeur", + "commande ", + "conditionnel", + "constructeur", + "craindre", + "crane", + "crever", + "creuser", + "crier", + "croire", + "crucifixion", + "cryptographie", + "database", + "declaration", + "dependance", + "deploiement", + "developpeur", + "dictionnaire", + "documentation", + "donnees", + "editeur", + "embleme", + "essais", + "factoriel", + "fichiers", + "fonction", + "github", + "google", + "hackeur", + "hebreu", + "indentation", + "instanciation", + "iteration", + "java", + "javascript", + "latin", + "localhost", + "machine", + "macon", + "macros", + "memoire", + "methodes", + "microsoft", + "niveau", + "nouvelle", + "nouveau", + "nouvel", + "noetique", + "noirceur", + "objet", + "papyrus", + "paquet", + "pendu", + "pile", + "pomme", + "programme", + "programmeur", + "professeur", + "pyramide", + "pythagore", + "python", + "recueil", + "recursivite", + "regex", + "rites", + "saccade", + "saccadé", + "saccager", + "scriptage", + "serveur", + "serveuse", + "sincere", + "source", + "stackoverflow", + "tableau ", + "tas", + "temple", + "terminal", + "type", + "typescript", + "variable", + "version", + "vigne", + "visuel", + "vicieux", + "vieux" + ] } diff --git a/Hangman/words/gr.json b/Hangman/words/gr.json index 465c32d..7e1aab6 100644 --- a/Hangman/words/gr.json +++ b/Hangman/words/gr.json @@ -1,103 +1,106 @@ { + "language": "gr", + "played": "Το γράμμα που έβαλες έχει ήδη χρησιμοποιηθεί!", + "you_won": "Κέρδισες!", + "you_lose": "Έχασες!", + "word_was": "Η λέξη ήταν:", + "one_char": "Γράψε μόνο έναν χαρακτήρα!", + "remaining": "Μαντεψιές που απέμειναν", + "letters": "Χρησιμοποιημένα γράμματα:", + "guess": "Μάντεψε γράμμα:", + "hangman": "Κρεμάλα", "words": [ - "javascript", - "java", - "python", - "typescript", - "κρεμάλα", - "προγραμματιστής", - "developer", - "coder", - "github", - "google", - "τερματικό", - "μηχανή", - "scripting", - "διακομιστής", - "πρόγραμμα", - "σειρά", - "bytecode", - "εντολή", - "λειτουργία", - "κατασκευαστής", - "διαφωνίες", - "οπτικό", - "μεταβλητή", - "πηγή", - "εκδότης", - "microsoft", - "βιβλιοθήκη", - "εξάρτηση", - "εκδοχή", - "δοκιμαστικός", - "πακέτο", - "έγγραφα", - "conditional", - "επαναλήψεις", - "βάση δεδομένων", - "hacker", - "δυαδικό", - "bitwise", - "δεδομένα", - "αλγόριθμοι", - "πελάτης", - "localhost", - "αντικείμενο", - "τάξη", - "πεδία", - "ανάπτυξη", - "boolean", + "javascript", + "java", + "python", + "typescript", + "κρεμάλα", + "προγραμματιστής", + "developer", + "coder", + "github", + "google", + "τερματικό", + "μηχανή", + "scripting", + "διακομιστής", + "πρόγραμμα", + "σειρά", + "bytecode", + "εντολή", + "λειτουργία", + "κατασκευαστής", + "διαφωνίες", + "οπτικό", + "μεταβλητή", + "πηγή", + "εκδότης", + "microsoft", + "βιβλιοθήκη", + "εξάρτηση", + "εκδοχή", + "δοκιμαστικός", + "πακέτο", + "έγγραφα", + "conditional", + "επαναλήψεις", + "βάση δεδομένων", + "hacker", + "δυαδικό", + "bitwise", + "δεδομένα", + "αλγόριθμοι", + "πελάτης", + "localhost", + "αντικείμενο", + "τάξη", + "πεδία", + "ανάπτυξη", + "boolean", "μέθοδοι", "παραγοντικός", - "επιστροφή", - "επανάληψη", - "ενσάρκωση", - "διακήρυξη", - "τύπος", - "στοίβα", - "σωρός", - "stackoverflow", + "επιστροφή", + "επανάληψη", + "ενσάρκωση", + "διακήρυξη", + "τύπος", + "στοίβα", + "σωρός", + "stackoverflow", "indentation", - "regex", + "regex", "μνήμη", "macros", - "πληκτρολόγιο", - "αυτοματισμός", - "φάκελοι", - "λεξικό", "symbolon", - "κτίστης", + "πληκτρολόγιο", + "αυτοματισμός", + "φάκελοι", + "λεξικό", + "symbolon", + "κτίστης", "cryptex", - "", + "", "αριστούργημα", "πυραμίδα", - "τελετουργικά", - "νοητικός", - "pythagorus", + "τελετουργικά", + "νοητικός", + "pythagorus", "ειλικρινής", - "ναός", + "ναός", "πάπυρος", - "εβραϊκά", - "λατινικό", - "μήλο", - "βωμός", - "στάυρωση", + "εβραϊκά", + "λατινικό", + "μήλο", + "βωμός", + "στάυρωση", "σαμάνος", - "σκοτάδι", - "κρανίο", + "σκοτάδι", + "κρανίο", "vine", "ψυχή", - "σύμβολα", - "βιβλίο", - "διακοπές", - "Χριστούγεννα", - "Εκπαίδευση"], - "played": "Το γράμμα που έβαλες έχει ήδη χρησιμοποιηθεί!", - "you_won": "Κέρδισες!", - "you_lose": "Έχασες!", - "word_was": "Η λέξη ήταν:", - "one_char": "Γράψε μόνο έναν χαρακτήρα!", - "remaining": "Μαντεψιές που απέμειναν", - "letters": "Χρησιμοποιημένα γράμματα:", - "guess": "Μάντεψε γράμμα:", - "hangman": "Κρεμάλα" + "σύμβολα", + "βιβλίο", + "διακοπές", + "Χριστούγεννα", + "Εκπαίδευση" + ] } diff --git a/Hangman/words/hr.json b/Hangman/words/hr.json index 00c31ac..23995c8 100644 --- a/Hangman/words/hr.json +++ b/Hangman/words/hr.json @@ -1,5 +1,5 @@ { - "words": ["javascript", "java", "python", "typescript", "Vješala", "programer", "razvijač", "koder", "github", "google", "terminal", "mašina", "skriptiranje", "server", "program", "array", "bajt", "naredba", "funkcija", "konstruktor", "argumenti", "vidni", "varijabla", "podrijetlo", "urednik", "microsoft", "biblioteka", "zavisnost", "verzija", "testiranje", "paket", "dokumentacija", "uvjetovana", "lup", "baza podataka", "haker", "binarni", "bitovima", "podaci", "algoritmi", "klijent", "localhost", "objekt", "klasa", "polja", "razvijanje", "boolean", "methods", "factorial", "recursion", "iteration", "instantiation", "deklaracija", "tip", "stack", "heap", "stackoverflow", "uvlačenje", "regex", "memorija", "makronaredbe", "tastatura", "automatizacija", "datoteke", "rječnik", "symbolon", "zidar", "cryptex", "remekdjelo", "artefakti", "piramida", "rituali", "saznajni", "pitagora", "iskren", "hram", "papirus", "hebrejski", "latinski", "jabuka", "oltar", "raspeće", "šaman", "tama", "lubanja", "loza", "duša", "simboli", "knjiga"], + "language": "hr", "played": "Pismo ste već odabrali!", "you_won": "Pobjedio si!", "you_lose": "Izgubio si!", @@ -8,5 +8,96 @@ "remaining": "preostali pokušaji", "letters": "Odabrana slova:", "guess": "Odaberite pismo:", - "hangman": "Vješala" + "hangman": "Vješala", + "words": [ + "javascript", + "java", + "python", + "typescript", + "Vješala", + "programer", + "razvijač", + "koder", + "github", + "google", + "terminal", + "mašina", + "skriptiranje", + "server", + "program", + "array", + "bajt", + "naredba", + "funkcija", + "konstruktor", + "argumenti", + "vidni", + "varijabla", + "podrijetlo", + "urednik", + "microsoft", + "biblioteka", + "zavisnost", + "verzija", + "testiranje", + "paket", + "dokumentacija", + "uvjetovana", + "lup", + "baza podataka", + "haker", + "binarni", + "bitovima", + "podaci", + "algoritmi", + "klijent", + "localhost", + "objekt", + "klasa", + "polja", + "razvijanje", + "boolean", + "methods", + "factorial", + "recursion", + "iteration", + "instantiation", + "deklaracija", + "tip", + "stack", + "heap", + "stackoverflow", + "uvlačenje", + "regex", + "memorija", + "makronaredbe", + "tastatura", + "automatizacija", + "datoteke", + "rječnik", + "symbolon", + "zidar", + "cryptex", + "remekdjelo", + "artefakti", + "piramida", + "rituali", + "saznajni", + "pitagora", + "iskren", + "hram", + "papirus", + "hebrejski", + "latinski", + "jabuka", + "oltar", + "raspeće", + "šaman", + "tama", + "lubanja", + "loza", + "duša", + "simboli", + "knjiga" + ] } diff --git a/Hangman/words/id.json b/Hangman/words/id.json index e72afe5..879866d 100644 --- a/Hangman/words/id.json +++ b/Hangman/words/id.json @@ -1,1502 +1,5 @@ { - "words": [ - "abad", - "ada", - "adalah", - "adil", - "afrika", - "agak", - "agustus", - "air", - "akan", - "akar", - "akhir", - "akhirnya", - "akrab", - "aktif", - "aktivitas", - "alam", - "alasan", - "alaska", - "alat", - "alfabet", - "aliran", - "aman", - "amerika", - "anak", - "anda", - "aneh", - "anggota", - "angin", - "angka", - "angkat", - "angkutan", - "angsa", - "anjing", - "antara", - "apa", - "apakah", - "apapun", - "apartemen", - "apel", - "api", - "april", - "arah", - "artikel", - "arus", - "asal", - "asap", - "asia", - "asing", - "asli", - "atap", - "atas", - "atau", - "atom", - "aturan", - "australia", - "awal", - "awam", - "awan", - "ayah", - "ayam", - "ayat", - "ayunan", - "bab", - "babi", - "badai", - "bagaimana", - "bagasi", - "bagian", - "bagikan", - "bagus", - "bahan", - "bahasa", - "bahaya", - "bahkan", - "bahu", - "bahwa", - "baik", - "baja", - "balai", - "balon", - "bangga", - "bangsa", - "bangunan", - "bank", - "bantuan", - "banyak", - "bapak", - "bar", - "barat", - "baris", - "baru", - "basah", - "baseball", - "bata", - "batang", - "batas", - "batin", - "batu", - "bau", - "bayangan", - "bayi", - "beban", - "bebek", - "beberapa", - "bekas", - "beku", - "bel", - "belajar", - "belakang", - "belanda", - "belum", - "benang", - "benar", - "benda", - "bendera", - "bengkok", - "benih", - "bensin", - "benteng", - "bentuk", - "benua", - "beranda", - "berani", - "berarti", - "beras", - "berat", - "berbagai", - "berbahaya", - "berbatu", - "berbeda", - "berbicara", - "berbisik", - "berburu", - "berdiri", - "berenang", - "berencana", - "bergabung", - "bergerak", - "berguna", - "berharap", - "berharga", - "berhasil", - "berhenti", - "berikutnya", - "berita", - "berjalan", - "berjanji", - "berjuang", - "berkepala", - "berlari", - "berlayar", - "berlindung", - "bermain", - "bermanfaat", - "bermimpi", - "bernafas", - "bernilai", - "berongga", - "berpikir", - "berputar", - "bersama", - "bersemangat", - "bersih", - "bersinar", - "bertahap", - "bertanya", - "bertemu", - "bertindak", - "beruntung", - "besar", - "besi", - "besok", - "biasa", - "biasanya", - "biaya", - "bibi", - "bibir", - "bidang", - "bijaksana", - "bingkai", - "bintang", - "biru", - "bis", - "bisa", - "bisnis", - "blok", - "bodoh", - "bohong", - "bola", - "boneka", - "botol", - "buah", - "bubuk", - "budak", - "bukit", - "bukti", - "buku", - "bulan", - "bulat", - "bulu", - "bumi", - "bunga", - "buru", - "buruk", - "burung", - "busur", - "buta", - "butir", - "cabang", - "cahaya", - "cair", - "campuran", - "cangkir", - "cara", - "cat", - "catatan", - "cemas", - "cepat", - "cerah", - "cerita", - "cermin", - "cina", - "cinta", - "ciri", - "coklat", - "contoh", - "cuaca", - "cuci", - "cukup", - "curam", - "dada", - "daerah", - "daftar", - "daging", - "dalam", - "dan", - "danau", - "dangkal", - "dapur", - "darah", - "dari", - "dasar", - "dasi", - "datang", - "datar", - "daun", - "debu", - "definisi", - "dekat", - "delapan", - "demikian", - "dengan", - "dengki", - "depan", - "desa", - "dewasa", - "di", - "dia", - "diadakan", - "diagram", - "diajarkan", - "diam", - "diambil", - "diameter", - "dibangun", - "dibayar", - "diberikan", - "dibungkus", - "dibutuhkan", - "dicairkan", - "dicatat", - "didorong", - "digambarkan", - "diketahui", - "dilakukan", - "dilemparkan", - "dimakan", - "dimana", - "dinding", - "dingin", - "diobati", - "diperkenalkan", - "diri", - "disain", - "disimpan", - "diskusi", - "ditampilkan", - "ditangkap", - "ditarik", - "ditemukan", - "divisi", - "diyakini", - "dokter", - "dolar", - "domba", - "dongkrak", - "dorongan", - "dot", - "drew", - "dua", - "duabelas", - "duapuluh", - "duduk", - "dunia", - "efek", - "ekor", - "eksperimen", - "ekspresi", - "ekstra", - "elemen", - "emas", - "empat", - "empatpuluh", - "enam", - "energi", - "engkau", - "es", - "fajar", - "fakta", - "faktor", - "favorit", - "film", - "fisik", - "frasa", - "fungsi", - "gadis", - "gagal", - "gaib", - "gajah", - "gambar", - "gandum", - "garam", - "garasi", - "gas", - "gaun", - "gelap", - "gelombang", - "gembira", - "gerakan", - "gerbang", - "gereja", - "gergaji", - "gerobak", - "gigi", - "gigitan", - "gila", - "giliran", - "goncangan", - "grafik", - "gratis", - "gua", - "guci", - "gugup", - "gula", - "gulungan", - "gunung", - "gurauan", - "guru", - "gurun", - "hadiah", - "hakim", - "halaman", - "halo", - "halus", - "hampir", - "hangat", - "hanya", - "harga", - "hari", - "harus", - "hasil", - "hebat", - "hektar", - "hewan", - "hidangan", - "hidung", - "hidup", - "hijau", - "hilang", - "hitam", - "hubungan", - "hujan", - "hukum", - "hung", - "hutan", - "ibu", - "ide", - "identitas", - "ikan", - "iklim", - "ikut", - "illinois", - "ilmiah", - "ilmu", - "ilmuwan", - "inci", - "indah", - "independen", - "india", - "individu", - "induk", - "industri", - "informasi", - "ingat", - "ingatan", - "inggris", - "ingin", - "ini", - "insinyur", - "instrumen", - "irama", - "istana", - "istilah", - "istirahat", - "istri", - "italia", - "itu", - "jadi", - "jadian", - "jagung", - "jalan", - "jalur", - "jam", - "jamak", - "jantung", - "januari", - "jarak", - "jarang", - "jari", - "jarum", - "jatuh", - "jauh", - "jawaban", - "jejak", - "jelas", - "jembatan", - "jempol", - "jendela", - "jenis", - "jepang", - "jerami", - "jerman", - "jeruk", - "jet", - "jika", - "judul", - "juga", - "jujur", - "juli", - "jumlah", - "juni", - "kabin", - "kabut", - "kaca", - "kacang", - "kacang", - "kadang", - "kain", - "kakek", - "kaki", - "kaku", - "kalah", - "kalimat", - "kamera", - "kami", - "kamp", - "kamu", - "kanada", - "kanal", - "kandang", - "kantor", - "kapal", - "kapan", - "kapas", - "kapten", - "karakter", - "karbon", - "karena", - "karet", - "kartu", - "kasar", - "kasus", - "kata", - "katak", - "kawanan", - "kawat", - "kaya", - "kayu", - "ke", - "keagamaan", - "kebanggaan", - "kebanyakan", - "kebebasan", - "kebenaran", - "keberanian", - "keberuntungan", - "kebiasaan", - "kebisingan", - "kebohongan", - "kebun", - "kebutuhan", - "kecantikan", - "kecelakaan", - "kecepatan", - "kecil", - "kecuali", - "kedalaman", - "kedatangan", - "kedua", - "keemasan", - "keempat", - "kegelapan", - "kegembiraan", - "kehilangan", - "kehormatan", - "keju", - "kekayaan", - "kekuasaan", - "kekuatan", - "kekurangan", - "kelahiran", - "kelas", - "keledai", - "kelelawar", - "kelima", - "kelinci", - "kelompok", - "keluarga", - "kemajuan", - "kemampuan", - "kemarin", - "kematian", - "kembali", - "kemeja", - "kemenangan", - "kemudian", - "kenaikan", - "kentang", - "kepala", - "keraguan", - "kerang", - "keranjang", - "keras", - "kerbau", - "keren", - "kering", - "kerja", - "kertas", - "kerugian", - "kerusakan", - "kesalahan", - "kesehatan", - "keseimbangan", - "keselamatan", - "kesempatan", - "kesenangan", - "kesepian", - "kesulitan", - "ketat", - "ketiga", - "ketrampilan", - "keuntungan", - "khas", - "khatulistiwa", - "khusus", - "khususnya", - "kimia", - "kira", - "kiri", - "kita", - "klub", - "koboi", - "koki", - "kolam", - "kolom", - "koloni", - "kombinasi", - "kompas", - "kompleks", - "kompor", - "komposisi", - "kondisi", - "koneksi", - "kongres", - "konsonan", - "konstruksi", - "kontras", - "kontrol", - "kopi", - "koran", - "kosong", - "kota", - "kotak", - "kotor", - "kotoran", - "krim", - "kuasa", - "kuat", - "kuatir", - "kucing", - "kuda", - "kue", - "kuku", - "kuliah", - "kulit", - "kunci", - "kuning", - "kuningan", - "kunjungan", - "kuno", - "kursi", - "label", - "lagi", - "lagu", - "lain", - "laju", - "lajur", - "laku", - "lalat", - "lalu", - "lambat", - "lampu", - "langit", - "langkah", - "langsung", - "lantai", - "lapar", - "lapisan", - "laporan", - "larutan", - "latin", - "laut", - "layanan", - "layar", - "lebah", - "lebar", - "lebih", - "ledakan", - "leher", - "lelah", - "lemah", - "lemak", - "lembah", - "lembar", - "lembaran", - "lembut", - "lengan", - "lengkap", - "lepas", - "lereng", - "liar", - "lidah", - "lima", - "limabelas", - "limapuluh", - "limbah", - "lingkaran", - "lingkungan", - "lisan", - "listrik", - "logam", - "lokal", - "longgar", - "luar", - "luas", - "lubang", - "lucu", - "lulus", - "lumbung", - "lumpur", - "lupa", - "lurus", - "lusin", - "magnet", - "mahasiswa", - "mainan", - "makan", - "makanan", - "makhluk", - "malam", - "mama", - "mangkuk", - "manis", - "mantap", - "mantel", - "manusia", - "marah", - "maret", - "mari", - "masalah", - "masih", - "massa", - "masuk", - "masyarakat", - "mata", - "matahari", - "matang", - "matematika", - "mati", - "maupun", - "mawar", - "mebel", - "mei", - "meja", - "melaju", - "melakukan", - "melalui", - "melangkah", - "melayani", - "melemparkan", - "melengkung", - "meletakkan", - "melihat", - "melompat", - "meluncur", - "memakai", - "memang", - "memasukkan", - "membagi", - "membahas", - "membakar", - "membandingkan", - "membangun", - "membantu", - "membawa", - "membayangkan", - "membayar", - "membeli", - "memberi", - "memberikan", - "membiarkan", - "membosankan", - "membuat", - "membuktikan", - "membunuh", - "membutuhkan", - "memecahkan", - "memegang", - "memenuhi", - "memeriksa", - "memilih", - "memiliki", - "memimpin", - "meminta", - "memotong", - "mempengaruhi", - "memperbaiki", - "memperingatkan", - "mempersiapkan", - "mempertimbangkan", - "memukul", - "memutuskan", - "menaikkan", - "menakuti", - "menambahkan", - "menang", - "menangani", - "menanggung", - "menangis", - "menangkap", - "menara", - "menarik", - "menatap", - "menawarkan", - "mencampur", - "mencapai", - "mencatat", - "mencegah", - "mencoba", - "mendalam", - "mendapat", - "mendapatkan", - "mendengar", - "mendengarkan", - "mendirikan", - "mendukung", - "menembak", - "menempatkan", - "menemukan", - "menentukan", - "menerima", - "menetap", - "mengacu", - "mengajar", - "mengalahkan", - "mengalir", - "mengamati", - "mengambang", - "mengambil", - "mengandung", - "mengangguk", - "mengapa", - "mengatakan", - "mengatur", - "mengayunkan", - "mengeja", - "mengekspresikan", - "mengembangkan", - "mengenakan", - "mengenali", - "mengerikan", - "menggabungkan", - "menggali", - "menggambar", - "menggambarkan", - "menggantikan", - "menggantung", - "menggarisbawahi", - "menggoyang", - "menggunakan", - "menghabiskan", - "menghadapi", - "menghapus", - "mengharapkan", - "menghasilkan", - "mengherankan", - "menghilang", - "menghindari", - "menghitung", - "menghormati", - "mengikuti", - "mengira", - "mengirim", - "mengisi", - "mengizinkan", - "menguasai", - "mengubah", - "mengukur", - "mengumpulkan", - "mengumumkan", - "mengusap", - "menikah", - "menikmati", - "menimang", - "menimbang", - "meninggalkan", - "meningkatkan", - "menipu", - "menit", - "meniup", - "menjadi", - "menjaga", - "menjalankan", - "menjatuhkan", - "menjawab", - "menjelajah", - "menjelaskan", - "menjual", - "menolak", - "menonton", - "mentah", - "mentega", - "menuangkan", - "menuju", - "menulis", - "menunggu", - "menunjukkan", - "menurunkan", - "menurut", - "menutup", - "menyadari", - "menyakiti", - "menyanyi", - "menyanyikan", - "menyapu", - "menyarankan", - "menyatakan", - "menyeberang", - "menyembunyikan", - "menyentuh", - "menyerobot", - "menyimpan", - "merah", - "meraih", - "merasa", - "meregang", - "mereka", - "mesin", - "mesir", - "meskipun", - "metode", - "mewakili", - "mil", - "milik", - "militer", - "mineral", - "minggu", - "minuman", - "minyak", - "mirip", - "misi", - "miskin", - "mobil", - "modal", - "model", - "modern", - "monyet", - "motor", - "muda", - "mudah", - "mulai", - "mulut", - "mungil", - "mungkin", - "murid", - "murni", - "musik", - "musikal", - "musim", - "mustahil", - "musuh", - "nada", - "nafas", - "naik", - "nama", - "namun", - "nasihat", - "nasional", - "natal", - "naungan", - "negara", - "negatif", - "negro", - "nenek", - "nilai", - "nol", - "nya", - "nyaman", - "nyaring", - "nyata", - "obat", - "obyek", - "oksigen", - "oktober", - "olahraga", - "oleh", - "operasi", - "orang", - "orbit", - "organisasi", - "otak", - "otot", - "pabrik", - "padat", - "pagar", - "pagi", - "paham", - "pai", - "pajak", - "pak", - "pakaian", - "paket", - "paling", - "paman", - "panah", - "panas", - "panci", - "pandangan", - "panduan", - "panggilan", - "panjang", - "panjangnya", - "pantai", - "papan", - "paralel", - "paris", - "partai", - "partikel", - "pasang", - "pasangan", - "pasar", - "pasifik", - "pasir", - "pasti", - "pasukan", - "path", - "pecah", - "pedalaman", - "peduli", - "pekerja", - "pekerjaan", - "pelabuhan", - "pelajaran", - "pelana", - "pelatih", - "pelayaran", - "peluit", - "pembaca", - "pemberian", - "pemberitahuan", - "pembuluh", - "pemburu", - "pemerintah", - "pemilik", - "pemimpin", - "pemogokan", - "pemotongan", - "pemuda", - "pemukim", - "pena", - "penampilan", - "penarikan", - "penasaran", - "pencarian", - "pendakian", - "pendapat", - "pendapatan", - "pendek", - "pendengaran", - "pendidikan", - "penelitian", - "penemuan", - "penerbangan", - "pengadilan", - "pengalaman", - "pengaruh", - "pengaturan", - "pengembangan", - "pengetahuan", - "penggaris", - "penggerak", - "penggunaan", - "penglihatan", - "pengunjung", - "penjaga", - "penjelasan", - "penjualan", - "pensil", - "penting", - "pentingnya", - "penuh", - "penulis", - "penulisan", - "penutup", - "penyair", - "penyakit", - "penyebab", - "penyebaran", - "penyusunan", - "per", - "perahu", - "perak", - "peralatan", - "perancis", - "perang", - "perangkap", - "perapian", - "perbedaan", - "percakapan", - "perdagangan", - "perdamaian", - "perempat", - "perempuan", - "perencanaan", - "pergi", - "perhatian", - "perincian", - "perintah", - "periode", - "peristiwa", - "perjalanan", - "perjuangan", - "perkelahian", - "perlindungan", - "perlu", - "permainan", - "permukaan", - "pernafasan", - "pernah", - "pernyataan", - "perpustakaan", - "persediaan", - "persegi", - "persen", - "persis", - "pertama", - "pertanyaan", - "pertarungan", - "pertempuran", - "pertukaran", - "pertumbuhan", - "pertunjukan", - "perubahan", - "perusahaan", - "perut", - "pesanan", - "pesawat", - "peta", - "petani", - "peternakan", - "petir", - "petualangan", - "petugas", - "philadelphia", - "piano", - "pidato", - "pijat", - "pikir", - "pikiran", - "pilihan", - "pilot", - "pintu", - "pinus", - "pipa", - "piring", - "pisau", - "pistol", - "pita", - "planit", - "plastik", - "plus", - "pohon", - "pola", - "polisi", - "politik", - "polos", - "pon", - "poni", - "populasi", - "populer", - "pos", - "posisi", - "positif", - "pot", - "potongan", - "praktek", - "praktis", - "prancis", - "presiden", - "pribadi", - "prihatin", - "primitif", - "prinsip", - "produk", - "produksi", - "program", - "proses", - "puas", - "publik", - "pucat", - "puisi", - "pukulan", - "pulau", - "pusat", - "putih", - "putra", - "putri", - "radio", - "rahasia", - "raja", - "rak", - "raksasa", - "ramah", - "rambut", - "rantai", - "rapat", - "ras", - "rasa", - "ratus", - "raungan", - "rekening", - "rela", - "renang", - "rencana", - "rendah", - "resmi", - "retak", - "ribu", - "riding", - "rimba", - "robek", - "roda", - "roket", - "roti", - "ruang", - "rubah", - "rumah", - "rumput", - "rusa", - "rusak", - "rusia", - "rute", - "saat", - "sabtu", - "sabuk", - "sabun", - "sadar", - "saham", - "sajak", - "sakit", - "saku", - "salah", - "salinan", - "salju", - "sama", - "sampai", - "samudra", - "sangat", - "sanggup", - "sapi", - "sarang", - "sarapan", - "satelit", - "satu", - "satuan", - "saudara", - "saya", - "sayang", - "sayap", - "sayuran", - "sebagai", - "sebagian", - "sebelas", - "sebelum", - "sebelumnya", - "sebenarnya", - "seberang", - "sebuah", - "sederhana", - "sedih", - "sedikit", - "segar", - "segera", - "seharusnya", - "sejak", - "sejarah", - "sekali", - "sekarang", - "sekitar", - "sekolah", - "sel", - "selain", - "selama", - "selatan", - "selesai", - "selimut", - "seluruh", - "semak", - "semangat", - "sembilan", - "sementara", - "sempurna", - "semua", - "semuanya", - "semut", - "sen", - "senang", - "sendiri", - "sengit", - "seni", - "senyawa", - "senyum", - "sepanjang", - "sepasang", - "sepatu", - "sepeda", - "sepenuhnya", - "seperti", - "sepuluh", - "serangan", - "seri", - "serigala", - "serikat", - "sering", - "serius", - "seru", - "sesama", - "seseorang", - "sesuatu", - "set", - "setelah", - "setelan", - "setengah", - "seterusnya", - "setiap", - "setuju", - "siap", - "siapa", - "sibuk", - "sihir", - "sikat", - "silahkan", - "simbol", - "sinar", - "singa", - "singkat", - "sinyal", - "sirkus", - "sisa", - "sisi", - "sistem", - "situasi", - "skala", - "skor", - "sopir", - "sore", - "sosial", - "spanyol", - "spesifik", - "standar", - "stasiun", - "struktur", - "suami", - "suara", - "suasana", - "subyek", - "sudah", - "sudut", - "suhu", - "sukses", - "suku", - "sulit", - "sulung", - "sumber", - "sungai", - "surat", - "susu", - "sutra", - "tabung", - "tagihan", - "tahap", - "tahu", - "tahun", - "tajam", - "takut", - "tali", - "taman", - "tambahan", - "tambang", - "tampaknya", - "tampan", - "tanah", - "tanaman", - "tanda", - "tanduk", - "tangan", - "tangga", - "tanggal", - "tangki", - "tanpa", - "tape", - "tapi", - "tari", - "taruhan", - "tas", - "tebal", - "teh", - "tekan", - "tekanan", - "telah", - "telanjang", - "telepon", - "televisi", - "telinga", - "teluk", - "telur", - "tema", - "teman", - "tembaga", - "tembakan", - "tembakau", - "tempat", - "tenang", - "tenda", - "tengah", - "tenggorokan", - "tentang", - "tentara", - "teori", - "tepat", - "tepi", - "terakhir", - "terapan", - "teratas", - "terbaik", - "terbang", - "terbatas", - "terbelah", - "terbesar", - "terbuat", - "terbuka", - "terdahulu", - "terdekat", - "terdiri", - "tergantung", - "tergelincir", - "terhadap", - "terhenti", - "teriakan", - "terikat", - "terima", - "terjadi", - "terjual", - "terkait", - "terkecil", - "terkena", - "terkenal", - "terkepung", - "terlalu", - "terlambat", - "terlampir", - "terlibat", - "terlihat", - "terlupakan", - "termasuk", - "ternak", - "terorganisir", - "terpilih", - "terpisah", - "tersebut", - "tersedia", - "tersembunyi", - "tersusun", - "tertancap", - "tertangkap", - "tertawa", - "tertentu", - "tertera", - "tertimbun", - "tertulis", - "terus", - "terus", - "terutama", - "tetangga", - "tiang", - "tiba", - "tiba", - "tidak", - "tidur", - "tiga", - "tigapuluh", - "tikungan", - "tikus", - "tim", - "timah", - "timur", - "tindakan", - "tinggal", - "tinggi", - "tingkat", - "tip", - "tipis", - "titik", - "toh", - "toko", - "tongkat", - "topi", - "total", - "transaksi", - "tropis", - "truk", - "tua", - "tuan", - "tubuh", - "tugas", - "tujuan", - "tujuh", - "tulang", - "tumbuh", - "tumpukan", - "tunggal", - "turun", - "uang", - "uap", - "udara", - "uji", - "ukuran", - "ulangi", - "ular", - "ulasan", - "umum", - "umumnya", - "unggul", - "ungu", - "universitas", - "untuk", - "usaha", - "usia", - "utama", - "utara", - "variasi", - "virginia", - "vokal", - "volume", - "wajah", - "waktu", - "wanita", - "warganegara", - "warna", - "wastafel", - "wilayah", - "wol", - "yakin", - "yang", - "yunani", - "zat" - ], + "language": "id", "played": "Huruf yang kamu tebak sudah dimainkan!", "you_won": "Kamu menang!", "you_lose": "Kamu kalah!", @@ -1505,5 +8,1503 @@ "remaining": "tebakan lagi", "letters": "Huruf yang sudah ditebak:", "guess": "Tebak huruf:", - "hangman": "Hangman" + "hangman": "Hangman", + "words": [ + "abad", + "ada", + "adalah", + "adil", + "afrika", + "agak", + "agustus", + "air", + "akan", + "akar", + "akhir", + "akhirnya", + "akrab", + "aktif", + "aktivitas", + "alam", + "alasan", + "alaska", + "alat", + "alfabet", + "aliran", + "aman", + "amerika", + "anak", + "anda", + "aneh", + "anggota", + "angin", + "angka", + "angkat", + "angkutan", + "angsa", + "anjing", + "antara", + "apa", + "apakah", + "apapun", + "apartemen", + "apel", + "api", + "april", + "arah", + "artikel", + "arus", + "asal", + "asap", + "asia", + "asing", + "asli", + "atap", + "atas", + "atau", + "atom", + "aturan", + "australia", + "awal", + "awam", + "awan", + "ayah", + "ayam", + "ayat", + "ayunan", + "bab", + "babi", + "badai", + "bagaimana", + "bagasi", + "bagian", + "bagikan", + "bagus", + "bahan", + "bahasa", + "bahaya", + "bahkan", + "bahu", + "bahwa", + "baik", + "baja", + "balai", + "balon", + "bangga", + "bangsa", + "bangunan", + "bank", + "bantuan", + "banyak", + "bapak", + "bar", + "barat", + "baris", + "baru", + "basah", + "baseball", + "bata", + "batang", + "batas", + "batin", + "batu", + "bau", + "bayangan", + "bayi", + "beban", + "bebek", + "beberapa", + "bekas", + "beku", + "bel", + "belajar", + "belakang", + "belanda", + "belum", + "benang", + "benar", + "benda", + "bendera", + "bengkok", + "benih", + "bensin", + "benteng", + "bentuk", + "benua", + "beranda", + "berani", + "berarti", + "beras", + "berat", + "berbagai", + "berbahaya", + "berbatu", + "berbeda", + "berbicara", + "berbisik", + "berburu", + "berdiri", + "berenang", + "berencana", + "bergabung", + "bergerak", + "berguna", + "berharap", + "berharga", + "berhasil", + "berhenti", + "berikutnya", + "berita", + "berjalan", + "berjanji", + "berjuang", + "berkepala", + "berlari", + "berlayar", + "berlindung", + "bermain", + "bermanfaat", + "bermimpi", + "bernafas", + "bernilai", + "berongga", + "berpikir", + "berputar", + "bersama", + "bersemangat", + "bersih", + "bersinar", + "bertahap", + "bertanya", + "bertemu", + "bertindak", + "beruntung", + "besar", + "besi", + "besok", + "biasa", + "biasanya", + "biaya", + "bibi", + "bibir", + "bidang", + "bijaksana", + "bingkai", + "bintang", + "biru", + "bis", + "bisa", + "bisnis", + "blok", + "bodoh", + "bohong", + "bola", + "boneka", + "botol", + "buah", + "bubuk", + "budak", + "bukit", + "bukti", + "buku", + "bulan", + "bulat", + "bulu", + "bumi", + "bunga", + "buru", + "buruk", + "burung", + "busur", + "buta", + "butir", + "cabang", + "cahaya", + "cair", + "campuran", + "cangkir", + "cara", + "cat", + "catatan", + "cemas", + "cepat", + "cerah", + "cerita", + "cermin", + "cina", + "cinta", + "ciri", + "coklat", + "contoh", + "cuaca", + "cuci", + "cukup", + "curam", + "dada", + "daerah", + "daftar", + "daging", + "dalam", + "dan", + "danau", + "dangkal", + "dapur", + "darah", + "dari", + "dasar", + "dasi", + "datang", + "datar", + "daun", + "debu", + "definisi", + "dekat", + "delapan", + "demikian", + "dengan", + "dengki", + "depan", + "desa", + "dewasa", + "di", + "dia", + "diadakan", + "diagram", + "diajarkan", + "diam", + "diambil", + "diameter", + "dibangun", + "dibayar", + "diberikan", + "dibungkus", + "dibutuhkan", + "dicairkan", + "dicatat", + "didorong", + "digambarkan", + "diketahui", + "dilakukan", + "dilemparkan", + "dimakan", + "dimana", + "dinding", + "dingin", + "diobati", + "diperkenalkan", + "diri", + "disain", + "disimpan", + "diskusi", + "ditampilkan", + "ditangkap", + "ditarik", + "ditemukan", + "divisi", + "diyakini", + "dokter", + "dolar", + "domba", + "dongkrak", + "dorongan", + "dot", + "drew", + "dua", + "duabelas", + "duapuluh", + "duduk", + "dunia", + "efek", + "ekor", + "eksperimen", + "ekspresi", + "ekstra", + "elemen", + "emas", + "empat", + "empatpuluh", + "enam", + "energi", + "engkau", + "es", + "fajar", + "fakta", + "faktor", + "favorit", + "film", + "fisik", + "frasa", + "fungsi", + "gadis", + "gagal", + "gaib", + "gajah", + "gambar", + "gandum", + "garam", + "garasi", + "gas", + "gaun", + "gelap", + "gelombang", + "gembira", + "gerakan", + "gerbang", + "gereja", + "gergaji", + "gerobak", + "gigi", + "gigitan", + "gila", + "giliran", + "goncangan", + "grafik", + "gratis", + "gua", + "guci", + "gugup", + "gula", + "gulungan", + "gunung", + "gurauan", + "guru", + "gurun", + "hadiah", + "hakim", + "halaman", + "halo", + "halus", + "hampir", + "hangat", + "hanya", + "harga", + "hari", + "harus", + "hasil", + "hebat", + "hektar", + "hewan", + "hidangan", + "hidung", + "hidup", + "hijau", + "hilang", + "hitam", + "hubungan", + "hujan", + "hukum", + "hung", + "hutan", + "ibu", + "ide", + "identitas", + "ikan", + "iklim", + "ikut", + "illinois", + "ilmiah", + "ilmu", + "ilmuwan", + "inci", + "indah", + "independen", + "india", + "individu", + "induk", + "industri", + "informasi", + "ingat", + "ingatan", + "inggris", + "ingin", + "ini", + "insinyur", + "instrumen", + "irama", + "istana", + "istilah", + "istirahat", + "istri", + "italia", + "itu", + "jadi", + "jadian", + "jagung", + "jalan", + "jalur", + "jam", + "jamak", + "jantung", + "januari", + "jarak", + "jarang", + "jari", + "jarum", + "jatuh", + "jauh", + "jawaban", + "jejak", + "jelas", + "jembatan", + "jempol", + "jendela", + "jenis", + "jepang", + "jerami", + "jerman", + "jeruk", + "jet", + "jika", + "judul", + "juga", + "jujur", + "juli", + "jumlah", + "juni", + "kabin", + "kabut", + "kaca", + "kacang", + "kacang", + "kadang", + "kain", + "kakek", + "kaki", + "kaku", + "kalah", + "kalimat", + "kamera", + "kami", + "kamp", + "kamu", + "kanada", + "kanal", + "kandang", + "kantor", + "kapal", + "kapan", + "kapas", + "kapten", + "karakter", + "karbon", + "karena", + "karet", + "kartu", + "kasar", + "kasus", + "kata", + "katak", + "kawanan", + "kawat", + "kaya", + "kayu", + "ke", + "keagamaan", + "kebanggaan", + "kebanyakan", + "kebebasan", + "kebenaran", + "keberanian", + "keberuntungan", + "kebiasaan", + "kebisingan", + "kebohongan", + "kebun", + "kebutuhan", + "kecantikan", + "kecelakaan", + "kecepatan", + "kecil", + "kecuali", + "kedalaman", + "kedatangan", + "kedua", + "keemasan", + "keempat", + "kegelapan", + "kegembiraan", + "kehilangan", + "kehormatan", + "keju", + "kekayaan", + "kekuasaan", + "kekuatan", + "kekurangan", + "kelahiran", + "kelas", + "keledai", + "kelelawar", + "kelima", + "kelinci", + "kelompok", + "keluarga", + "kemajuan", + "kemampuan", + "kemarin", + "kematian", + "kembali", + "kemeja", + "kemenangan", + "kemudian", + "kenaikan", + "kentang", + "kepala", + "keraguan", + "kerang", + "keranjang", + "keras", + "kerbau", + "keren", + "kering", + "kerja", + "kertas", + "kerugian", + "kerusakan", + "kesalahan", + "kesehatan", + "keseimbangan", + "keselamatan", + "kesempatan", + "kesenangan", + "kesepian", + "kesulitan", + "ketat", + "ketiga", + "ketrampilan", + "keuntungan", + "khas", + "khatulistiwa", + "khusus", + "khususnya", + "kimia", + "kira", + "kiri", + "kita", + "klub", + "koboi", + "koki", + "kolam", + "kolom", + "koloni", + "kombinasi", + "kompas", + "kompleks", + "kompor", + "komposisi", + "kondisi", + "koneksi", + "kongres", + "konsonan", + "konstruksi", + "kontras", + "kontrol", + "kopi", + "koran", + "kosong", + "kota", + "kotak", + "kotor", + "kotoran", + "krim", + "kuasa", + "kuat", + "kuatir", + "kucing", + "kuda", + "kue", + "kuku", + "kuliah", + "kulit", + "kunci", + "kuning", + "kuningan", + "kunjungan", + "kuno", + "kursi", + "label", + "lagi", + "lagu", + "lain", + "laju", + "lajur", + "laku", + "lalat", + "lalu", + "lambat", + "lampu", + "langit", + "langkah", + "langsung", + "lantai", + "lapar", + "lapisan", + "laporan", + "larutan", + "latin", + "laut", + "layanan", + "layar", + "lebah", + "lebar", + "lebih", + "ledakan", + "leher", + "lelah", + "lemah", + "lemak", + "lembah", + "lembar", + "lembaran", + "lembut", + "lengan", + "lengkap", + "lepas", + "lereng", + "liar", + "lidah", + "lima", + "limabelas", + "limapuluh", + "limbah", + "lingkaran", + "lingkungan", + "lisan", + "listrik", + "logam", + "lokal", + "longgar", + "luar", + "luas", + "lubang", + "lucu", + "lulus", + "lumbung", + "lumpur", + "lupa", + "lurus", + "lusin", + "magnet", + "mahasiswa", + "mainan", + "makan", + "makanan", + "makhluk", + "malam", + "mama", + "mangkuk", + "manis", + "mantap", + "mantel", + "manusia", + "marah", + "maret", + "mari", + "masalah", + "masih", + "massa", + "masuk", + "masyarakat", + "mata", + "matahari", + "matang", + "matematika", + "mati", + "maupun", + "mawar", + "mebel", + "mei", + "meja", + "melaju", + "melakukan", + "melalui", + "melangkah", + "melayani", + "melemparkan", + "melengkung", + "meletakkan", + "melihat", + "melompat", + "meluncur", + "memakai", + "memang", + "memasukkan", + "membagi", + "membahas", + "membakar", + "membandingkan", + "membangun", + "membantu", + "membawa", + "membayangkan", + "membayar", + "membeli", + "memberi", + "memberikan", + "membiarkan", + "membosankan", + "membuat", + "membuktikan", + "membunuh", + "membutuhkan", + "memecahkan", + "memegang", + "memenuhi", + "memeriksa", + "memilih", + "memiliki", + "memimpin", + "meminta", + "memotong", + "mempengaruhi", + "memperbaiki", + "memperingatkan", + "mempersiapkan", + "mempertimbangkan", + "memukul", + "memutuskan", + "menaikkan", + "menakuti", + "menambahkan", + "menang", + "menangani", + "menanggung", + "menangis", + "menangkap", + "menara", + "menarik", + "menatap", + "menawarkan", + "mencampur", + "mencapai", + "mencatat", + "mencegah", + "mencoba", + "mendalam", + "mendapat", + "mendapatkan", + "mendengar", + "mendengarkan", + "mendirikan", + "mendukung", + "menembak", + "menempatkan", + "menemukan", + "menentukan", + "menerima", + "menetap", + "mengacu", + "mengajar", + "mengalahkan", + "mengalir", + "mengamati", + "mengambang", + "mengambil", + "mengandung", + "mengangguk", + "mengapa", + "mengatakan", + "mengatur", + "mengayunkan", + "mengeja", + "mengekspresikan", + "mengembangkan", + "mengenakan", + "mengenali", + "mengerikan", + "menggabungkan", + "menggali", + "menggambar", + "menggambarkan", + "menggantikan", + "menggantung", + "menggarisbawahi", + "menggoyang", + "menggunakan", + "menghabiskan", + "menghadapi", + "menghapus", + "mengharapkan", + "menghasilkan", + "mengherankan", + "menghilang", + "menghindari", + "menghitung", + "menghormati", + "mengikuti", + "mengira", + "mengirim", + "mengisi", + "mengizinkan", + "menguasai", + "mengubah", + "mengukur", + "mengumpulkan", + "mengumumkan", + "mengusap", + "menikah", + "menikmati", + "menimang", + "menimbang", + "meninggalkan", + "meningkatkan", + "menipu", + "menit", + "meniup", + "menjadi", + "menjaga", + "menjalankan", + "menjatuhkan", + "menjawab", + "menjelajah", + "menjelaskan", + "menjual", + "menolak", + "menonton", + "mentah", + "mentega", + "menuangkan", + "menuju", + "menulis", + "menunggu", + "menunjukkan", + "menurunkan", + "menurut", + "menutup", + "menyadari", + "menyakiti", + "menyanyi", + "menyanyikan", + "menyapu", + "menyarankan", + "menyatakan", + "menyeberang", + "menyembunyikan", + "menyentuh", + "menyerobot", + "menyimpan", + "merah", + "meraih", + "merasa", + "meregang", + "mereka", + "mesin", + "mesir", + "meskipun", + "metode", + "mewakili", + "mil", + "milik", + "militer", + "mineral", + "minggu", + "minuman", + "minyak", + "mirip", + "misi", + "miskin", + "mobil", + "modal", + "model", + "modern", + "monyet", + "motor", + "muda", + "mudah", + "mulai", + "mulut", + "mungil", + "mungkin", + "murid", + "murni", + "musik", + "musikal", + "musim", + "mustahil", + "musuh", + "nada", + "nafas", + "naik", + "nama", + "namun", + "nasihat", + "nasional", + "natal", + "naungan", + "negara", + "negatif", + "negro", + "nenek", + "nilai", + "nol", + "nya", + "nyaman", + "nyaring", + "nyata", + "obat", + "obyek", + "oksigen", + "oktober", + "olahraga", + "oleh", + "operasi", + "orang", + "orbit", + "organisasi", + "otak", + "otot", + "pabrik", + "padat", + "pagar", + "pagi", + "paham", + "pai", + "pajak", + "pak", + "pakaian", + "paket", + "paling", + "paman", + "panah", + "panas", + "panci", + "pandangan", + "panduan", + "panggilan", + "panjang", + "panjangnya", + "pantai", + "papan", + "paralel", + "paris", + "partai", + "partikel", + "pasang", + "pasangan", + "pasar", + "pasifik", + "pasir", + "pasti", + "pasukan", + "path", + "pecah", + "pedalaman", + "peduli", + "pekerja", + "pekerjaan", + "pelabuhan", + "pelajaran", + "pelana", + "pelatih", + "pelayaran", + "peluit", + "pembaca", + "pemberian", + "pemberitahuan", + "pembuluh", + "pemburu", + "pemerintah", + "pemilik", + "pemimpin", + "pemogokan", + "pemotongan", + "pemuda", + "pemukim", + "pena", + "penampilan", + "penarikan", + "penasaran", + "pencarian", + "pendakian", + "pendapat", + "pendapatan", + "pendek", + "pendengaran", + "pendidikan", + "penelitian", + "penemuan", + "penerbangan", + "pengadilan", + "pengalaman", + "pengaruh", + "pengaturan", + "pengembangan", + "pengetahuan", + "penggaris", + "penggerak", + "penggunaan", + "penglihatan", + "pengunjung", + "penjaga", + "penjelasan", + "penjualan", + "pensil", + "penting", + "pentingnya", + "penuh", + "penulis", + "penulisan", + "penutup", + "penyair", + "penyakit", + "penyebab", + "penyebaran", + "penyusunan", + "per", + "perahu", + "perak", + "peralatan", + "perancis", + "perang", + "perangkap", + "perapian", + "perbedaan", + "percakapan", + "perdagangan", + "perdamaian", + "perempat", + "perempuan", + "perencanaan", + "pergi", + "perhatian", + "perincian", + "perintah", + "periode", + "peristiwa", + "perjalanan", + "perjuangan", + "perkelahian", + "perlindungan", + "perlu", + "permainan", + "permukaan", + "pernafasan", + "pernah", + "pernyataan", + "perpustakaan", + "persediaan", + "persegi", + "persen", + "persis", + "pertama", + "pertanyaan", + "pertarungan", + "pertempuran", + "pertukaran", + "pertumbuhan", + "pertunjukan", + "perubahan", + "perusahaan", + "perut", + "pesanan", + "pesawat", + "peta", + "petani", + "peternakan", + "petir", + "petualangan", + "petugas", + "philadelphia", + "piano", + "pidato", + "pijat", + "pikir", + "pikiran", + "pilihan", + "pilot", + "pintu", + "pinus", + "pipa", + "piring", + "pisau", + "pistol", + "pita", + "planit", + "plastik", + "plus", + "pohon", + "pola", + "polisi", + "politik", + "polos", + "pon", + "poni", + "populasi", + "populer", + "pos", + "posisi", + "positif", + "pot", + "potongan", + "praktek", + "praktis", + "prancis", + "presiden", + "pribadi", + "prihatin", + "primitif", + "prinsip", + "produk", + "produksi", + "program", + "proses", + "puas", + "publik", + "pucat", + "puisi", + "pukulan", + "pulau", + "pusat", + "putih", + "putra", + "putri", + "radio", + "rahasia", + "raja", + "rak", + "raksasa", + "ramah", + "rambut", + "rantai", + "rapat", + "ras", + "rasa", + "ratus", + "raungan", + "rekening", + "rela", + "renang", + "rencana", + "rendah", + "resmi", + "retak", + "ribu", + "riding", + "rimba", + "robek", + "roda", + "roket", + "roti", + "ruang", + "rubah", + "rumah", + "rumput", + "rusa", + "rusak", + "rusia", + "rute", + "saat", + "sabtu", + "sabuk", + "sabun", + "sadar", + "saham", + "sajak", + "sakit", + "saku", + "salah", + "salinan", + "salju", + "sama", + "sampai", + "samudra", + "sangat", + "sanggup", + "sapi", + "sarang", + "sarapan", + "satelit", + "satu", + "satuan", + "saudara", + "saya", + "sayang", + "sayap", + "sayuran", + "sebagai", + "sebagian", + "sebelas", + "sebelum", + "sebelumnya", + "sebenarnya", + "seberang", + "sebuah", + "sederhana", + "sedih", + "sedikit", + "segar", + "segera", + "seharusnya", + "sejak", + "sejarah", + "sekali", + "sekarang", + "sekitar", + "sekolah", + "sel", + "selain", + "selama", + "selatan", + "selesai", + "selimut", + "seluruh", + "semak", + "semangat", + "sembilan", + "sementara", + "sempurna", + "semua", + "semuanya", + "semut", + "sen", + "senang", + "sendiri", + "sengit", + "seni", + "senyawa", + "senyum", + "sepanjang", + "sepasang", + "sepatu", + "sepeda", + "sepenuhnya", + "seperti", + "sepuluh", + "serangan", + "seri", + "serigala", + "serikat", + "sering", + "serius", + "seru", + "sesama", + "seseorang", + "sesuatu", + "set", + "setelah", + "setelan", + "setengah", + "seterusnya", + "setiap", + "setuju", + "siap", + "siapa", + "sibuk", + "sihir", + "sikat", + "silahkan", + "simbol", + "sinar", + "singa", + "singkat", + "sinyal", + "sirkus", + "sisa", + "sisi", + "sistem", + "situasi", + "skala", + "skor", + "sopir", + "sore", + "sosial", + "spanyol", + "spesifik", + "standar", + "stasiun", + "struktur", + "suami", + "suara", + "suasana", + "subyek", + "sudah", + "sudut", + "suhu", + "sukses", + "suku", + "sulit", + "sulung", + "sumber", + "sungai", + "surat", + "susu", + "sutra", + "tabung", + "tagihan", + "tahap", + "tahu", + "tahun", + "tajam", + "takut", + "tali", + "taman", + "tambahan", + "tambang", + "tampaknya", + "tampan", + "tanah", + "tanaman", + "tanda", + "tanduk", + "tangan", + "tangga", + "tanggal", + "tangki", + "tanpa", + "tape", + "tapi", + "tari", + "taruhan", + "tas", + "tebal", + "teh", + "tekan", + "tekanan", + "telah", + "telanjang", + "telepon", + "televisi", + "telinga", + "teluk", + "telur", + "tema", + "teman", + "tembaga", + "tembakan", + "tembakau", + "tempat", + "tenang", + "tenda", + "tengah", + "tenggorokan", + "tentang", + "tentara", + "teori", + "tepat", + "tepi", + "terakhir", + "terapan", + "teratas", + "terbaik", + "terbang", + "terbatas", + "terbelah", + "terbesar", + "terbuat", + "terbuka", + "terdahulu", + "terdekat", + "terdiri", + "tergantung", + "tergelincir", + "terhadap", + "terhenti", + "teriakan", + "terikat", + "terima", + "terjadi", + "terjual", + "terkait", + "terkecil", + "terkena", + "terkenal", + "terkepung", + "terlalu", + "terlambat", + "terlampir", + "terlibat", + "terlihat", + "terlupakan", + "termasuk", + "ternak", + "terorganisir", + "terpilih", + "terpisah", + "tersebut", + "tersedia", + "tersembunyi", + "tersusun", + "tertancap", + "tertangkap", + "tertawa", + "tertentu", + "tertera", + "tertimbun", + "tertulis", + "terus", + "terus", + "terutama", + "tetangga", + "tiang", + "tiba", + "tiba", + "tidak", + "tidur", + "tiga", + "tigapuluh", + "tikungan", + "tikus", + "tim", + "timah", + "timur", + "tindakan", + "tinggal", + "tinggi", + "tingkat", + "tip", + "tipis", + "titik", + "toh", + "toko", + "tongkat", + "topi", + "total", + "transaksi", + "tropis", + "truk", + "tua", + "tuan", + "tubuh", + "tugas", + "tujuan", + "tujuh", + "tulang", + "tumbuh", + "tumpukan", + "tunggal", + "turun", + "uang", + "uap", + "udara", + "uji", + "ukuran", + "ulangi", + "ular", + "ulasan", + "umum", + "umumnya", + "unggul", + "ungu", + "universitas", + "untuk", + "usaha", + "usia", + "utama", + "utara", + "variasi", + "virginia", + "vokal", + "volume", + "wajah", + "waktu", + "wanita", + "warganegara", + "warna", + "wastafel", + "wilayah", + "wol", + "yakin", + "yang", + "yunani", + "zat" + ] } diff --git a/Hangman/words/it.json b/Hangman/words/it.json index c6efa93..246cb87 100644 --- a/Hangman/words/it.json +++ b/Hangman/words/it.json @@ -1,5 +1,5 @@ { - "words": ["javascript", "java", "python", "typescript", "impiccato", "programmatore", "sviluppatore", "coder", "github", "google", "terminale", "macchina", "scripting", "server", "programma", "array", "bytecode", "comando", "funzione", "costruttore", "argomenti", "visuale", "variabile", "sorgente", "editor", "microsoft", "libreria", "dipendenza", "versione", "testing", "package", "documentazione", "condizionale", "ciclo", "database", "hacker", "binario", "bitwise", "dato", "algoritmo", "client", "localhost", "oggetto", "classe", "campo", "rilascio", "booleano", "metodo", "fattoriale", "ricorsione", "iterazione", "istanza", "dichiarazione", "tipo", "stack", "heap", "stackoverflow", "indentazione", "regex", "memoria", "macro", "tastiera", "automazione", "file", "dizionario", "symbolon", "mason", "cryptex", "capolavoro", "artefatto", "piramide", "rituale", "noetica", "pitagora", "sincero", "tempio", "papiro", "ebreo", "latino", "mela", "altare", "crocifissione", "sciamano", "oscurità", "teschio", "vine", "anima", "libro"], + "language": "it", "played": "Questa lettera è già stata inserita!", "you_won": "Hai vinto!", "you_lose": "Hai perso!", @@ -8,5 +8,95 @@ "remaining": "tentativi rimasti", "letters": "Lettere già inserite:", "guess": "Inserisci una lettera:", - "hangman": "L'impiccato" -} \ No newline at end of file + "hangman": "L'impiccato", + "words": [ + "javascript", + "java", + "python", + "typescript", + "impiccato", + "programmatore", + "sviluppatore", + "coder", + "github", + "google", + "terminale", + "macchina", + "scripting", + "server", + "programma", + "array", + "bytecode", + "comando", + "funzione", + "costruttore", + "argomenti", + "visuale", + "variabile", + "sorgente", + "editor", + "microsoft", + "libreria", + "dipendenza", + "versione", + "testing", + "package", + "documentazione", + "condizionale", + "ciclo", + "database", + "hacker", + "binario", + "bitwise", + "dato", + "algoritmo", + "client", + "localhost", + "oggetto", + "classe", + "campo", + "rilascio", + "booleano", + "metodo", + "fattoriale", + "ricorsione", + "iterazione", + "istanza", + "dichiarazione", + "tipo", + "stack", + "heap", + "stackoverflow", + "indentazione", + "regex", + "memoria", + "macro", + "tastiera", + "automazione", + "file", + "dizionario", + "symbolon", + "mason", + "cryptex", + "capolavoro", + "artefatto", + "piramide", + "rituale", + "noetica", + "pitagora", + "sincero", + "tempio", + "papiro", + "ebreo", + "latino", + "mela", + "altare", + "crocifissione", + "sciamano", + "oscurità", + "teschio", + "vine", + "anima", + "libro" + ] +} diff --git a/Hangman/words/jp.json b/Hangman/words/jp.json index 0699435..fdee1ff 100644 --- a/Hangman/words/jp.json +++ b/Hangman/words/jp.json @@ -1,11 +1,5 @@ { - "words": ["がくせい", "せんせい", "いしゃ", "なに", "わたし", "いま", "くに", "くつ", "ちか", "かさ", - "かいしゃ", "うりば", "でんき", "かい", "ごちそうさまでした", "だいがく", "ひと", "じしょ", "くるま", "くだもの", - "おはようごさいます", "にほんご", "しつもん", "もういちど", "あなた", "こんにちは", "はじめまして", "おんな", "ちゅうごく", "せんもん", - "こうがく", "なまえ", "かぎ", "ぎんこういん", "てちょう", "めいし", "つくえ", "しょくどう", "じむしょ", "すみません", - "みせる", "うけつけ", "とけい", "でんわ", "かいぎしつ", "きもち", "えんぴつ", "しんぶん", "かんこく", "いす", - "おきる", "ねる", "たべる", "かぶき", "しけん", "かんたん", "からい", "こうちゃ", "あまい", "ふゆやすみ", - "ていしょく", "あそぶ", "ひろい", "そくたつ", "むかえる", "さんぽ", "はなみ", "つる", "かわく", "しる"], + "language": "jp", "played": "あなたが書いた手紙はすでに使用されています!", "you_won": "勝った!", "you_lose": "失った!", @@ -14,5 +8,77 @@ "remaining": "残りの推測", "letters": "すでに再生された文字:", "guess": "文字を推測する:", - "hangman": "絞首刑" -} \ No newline at end of file + "hangman": "絞首刑", + "words": [ + "がくせい", + "せんせい", + "いしゃ", + "なに", + "わたし", + "いま", + "くに", + "くつ", + "ちか", + "かさ", + "かいしゃ", + "うりば", + "でんき", + "かい", + "ごちそうさまでした", + "だいがく", + "ひと", + "じしょ", + "くるま", + "くだもの", + "おはようごさいます", + "にほんご", + "しつもん", + "もういちど", + "あなた", + "こんにちは", + "はじめまして", + "おんな", + "ちゅうごく", + "せんもん", + "こうがく", + "なまえ", + "かぎ", + "ぎんこういん", + "てちょう", + "めいし", + "つくえ", + "しょくどう", + "じむしょ", + "すみません", + "みせる", + "うけつけ", + "とけい", + "でんわ", + "かいぎしつ", + "きもち", + "えんぴつ", + "しんぶん", + "かんこく", + "いす", + "おきる", + "ねる", + "たべる", + "かぶき", + "しけん", + "かんたん", + "からい", + "こうちゃ", + "あまい", + "ふゆやすみ", + "ていしょく", + "あそぶ", + "ひろい", + "そくたつ", + "むかえる", + "さんぽ", + "はなみ", + "つる", + "かわく", + "しる" + ] +} diff --git a/Hangman/words/lt-lt.json b/Hangman/words/lt-lt.json index 065257d..2115916 100644 --- a/Hangman/words/lt-lt.json +++ b/Hangman/words/lt-lt.json @@ -1,5 +1,5 @@ { - "words": ["javascript", "java", "python", "typescript", "hangman", "kartuvės", "programuotojas", "kūrėjas", "koderis", "github", "google", "terminalas", "mašina", "scripting", "serveris", "programa", "masyvas", "bytecode", "komanda", "funkcija", "konstruktorius", "argumentai", "vizualus", "kintamasis", "šaltinis", "redaktorius", "microsoft", "biblioteka", "priklausomybė", "versija", "testavimas", "paketas", "dokumentacija", "sąlyga", "ciklai", "duombazė", "hakeris", "binary", "bitwise", "duomenys", "algoritmai", "klientas", "localhost", "objektas", "klasė", "laukai", "dislokavimas", "boolean", "metodai", "faktorialas", "rekursija", "iteracija", "instantiation", "pareiškimas", "tipas", "stack", "heap", "stackoverflow", "indentation", "regex", "atmintis", "macros", "klaviatūra", "automatika", "failai", "žodynas", "symbolon", "mason", "cryptex", "šedevras", "artifaktai", "piramidė", "ritualai", "noetic", "pitagoras", "nuoširdus", "šventykla", "papirusas", "hebrajų", "lotynų", "apple", "altorius", "nukryžiavimas", "šamanas", "tamsa", "kaukolė", "vynas", "siela", "simboliai", "knyga"], + "language": "lt-lt", "played": "Jūsų įvesta raidė jau buvo pateikta!", "you_won": "Jūs laimėjote!", "you_lose": "Jūs pralaimėjote!", @@ -8,5 +8,97 @@ "remaining": "likę spėjimai", "letters": "Jau pateiktos raidės:", "guess": "Spėkite raidę:", - "hangman": "Kartuvės" + "hangman": "Kartuvės", + "words": [ + "javascript", + "java", + "python", + "typescript", + "hangman", + "kartuvės", + "programuotojas", + "kūrėjas", + "koderis", + "github", + "google", + "terminalas", + "mašina", + "scripting", + "serveris", + "programa", + "masyvas", + "bytecode", + "komanda", + "funkcija", + "konstruktorius", + "argumentai", + "vizualus", + "kintamasis", + "šaltinis", + "redaktorius", + "microsoft", + "biblioteka", + "priklausomybė", + "versija", + "testavimas", + "paketas", + "dokumentacija", + "sąlyga", + "ciklai", + "duombazė", + "hakeris", + "binary", + "bitwise", + "duomenys", + "algoritmai", + "klientas", + "localhost", + "objektas", + "klasė", + "laukai", + "dislokavimas", + "boolean", + "metodai", + "faktorialas", + "rekursija", + "iteracija", + "instantiation", + "pareiškimas", + "tipas", + "stack", + "heap", + "stackoverflow", + "indentation", + "regex", + "atmintis", + "macros", + "klaviatūra", + "automatika", + "failai", + "žodynas", + "symbolon", + "mason", + "cryptex", + "šedevras", + "artifaktai", + "piramidė", + "ritualai", + "noetic", + "pitagoras", + "nuoširdus", + "šventykla", + "papirusas", + "hebrajų", + "lotynų", + "apple", + "altorius", + "nukryžiavimas", + "šamanas", + "tamsa", + "kaukolė", + "vynas", + "siela", + "simboliai", + "knyga" + ] } diff --git a/Hangman/words/pt-br.json b/Hangman/words/pt-br.json index f9e0f54..92846b9 100644 --- a/Hangman/words/pt-br.json +++ b/Hangman/words/pt-br.json @@ -1,7 +1,5 @@ - { - "words": ["abduzir","afilhado","alfabeto","amendoim","amizade","amor","apontador","argumentos","aspirador","assalto","assistente","atividade","ator","atriz","bactéria","bancos","barriga","bergônia","boneca","braço","bytecode","cabeça","caderno","caipirinha","caixa","caneta","carinho","chuva","clientes","codigo","coelho","comando","constructor","conta-corrente","conta-poupança","cócegas","dança","deposito","desenvolvedor","desenvolver","dinossauro","educar","endereço","escorregador","esquilo","estômago","faringe","feijoada","felicidade","ferro","fondue","fonte","forca","forca","fregueses","funcionarios","função","furadeira","gerente","github","google","hieróglifo","java","javascript","jogos","lapiseira","liberdade","livro","madrinha","mariposa","martelo","massinha","matematica","matriz","mesas","misturar","mochila","máquina","médicos","ombreiras","ombro","orelha","paralelepípedo","paz","perna","privado","produto","programa","programador","publico","python","refém","respeito","rinoceronte","saque","saudade","scripting","servidor","sobrancelha","terminal","toldo","transporte","trombeta","typescript","túnel","unha","variável","vassoura","visual","ônibus"], - + "language": "pt-br", "played": "A letra escolhida foi usada!", "you_won": "Você ganhou!", "you_lose": "Você perdeu!", @@ -10,5 +8,117 @@ "remaining": "Número de tentativas", "letters": "A letra foi escolhida:", "guess": "Escolha uma letra:", - "hangman": "Forca" + "hangman": "Forca", + "words": [ + "abduzir", + "afilhado", + "alfabeto", + "amendoim", + "amizade", + "amor", + "apontador", + "argumentos", + "aspirador", + "assalto", + "assistente", + "atividade", + "ator", + "atriz", + "bactéria", + "bancos", + "barriga", + "bergônia", + "boneca", + "braço", + "bytecode", + "cabeça", + "caderno", + "caipirinha", + "caixa", + "caneta", + "carinho", + "chuva", + "clientes", + "codigo", + "coelho", + "comando", + "constructor", + "conta-corrente", + "conta-poupança", + "cócegas", + "dança", + "deposito", + "desenvolvedor", + "desenvolver", + "dinossauro", + "educar", + "endereço", + "escorregador", + "esquilo", + "estômago", + "faringe", + "feijoada", + "felicidade", + "ferro", + "fondue", + "fonte", + "forca", + "forca", + "fregueses", + "funcionarios", + "função", + "furadeira", + "gerente", + "github", + "google", + "hieróglifo", + "java", + "javascript", + "jogos", + "lapiseira", + "liberdade", + "livro", + "madrinha", + "mariposa", + "martelo", + "massinha", + "matematica", + "matriz", + "mesas", + "misturar", + "mochila", + "máquina", + "médicos", + "ombreiras", + "ombro", + "orelha", + "paralelepípedo", + "paz", + "perna", + "privado", + "produto", + "programa", + "programador", + "publico", + "python", + "refém", + "respeito", + "rinoceronte", + "saque", + "saudade", + "scripting", + "servidor", + "sobrancelha", + "terminal", + "toldo", + "transporte", + "trombeta", + "typescript", + "túnel", + "unha", + "variável", + "vassoura", + "visual", + "ônibus" + ] } diff --git a/Hangman/words/ru-ru.json b/Hangman/words/ru-ru.json index 07e91a1..6bf95fc 100644 --- a/Hangman/words/ru-ru.json +++ b/Hangman/words/ru-ru.json @@ -1,5 +1,5 @@ { - "words": ["алгоритмы", "алтарь", "яблоко", "арахнид", "аргументы", "массив", "артефакты", "автоматизация", "зверь", "бинарный", "побитовый", "книга", "логический", "скука", "байткод", "кот", "класс", "клиент", "кодер", "команда", "условный", "конструктор", "распятие", "криптекс", "темнота", "данные", "объявление", "зависимость", "развертывание", "презирать", "разработчик", "словарь", "документация", "пёс", "земля", "редактор", "жуткий", "эльфийский", "взрыв", "взрывной", "факториал", "поля", "файлы", "огонь", "лис", "функция", "игровой", "гитхаб", "гугл", "хакер", "виселица", "куча", "иврит", "отступ", "создание", "итерация", "джава", "джаваскрипт", "клавиатура", "латинский", "лава", "библиотека", "свет", "локалхост", "циклы", "машина", "макрос", "масон", "шедевр", "память", "методы", "майкрософт", "госпожа", "мышь", "духовный", "объект", "пакет", "папирус", "питомец", "плазма", "программа", "программист", "пирамида", "пифагор", "питон", "крыса", "рекурсия", "рептилия", "ритуалы", "скриптовый", "сервер", "шаман", "искренний", "череп", "змея", "душа", "источник", "паук", "стак", "стаковерфлоу", "студио", "симболон", "символы", "храм", "терминал", "тестирование", "тигр", "тип", "тайпскрипт", "единорог", "переменная", "версия", "вино", "вижуал", "вода", "ведьма", "волк", "слова"], + "language": "ru-ru", "played": "Буква, которую Вы ввели, уже была!", "you_won": "Вы победили!", "you_lose": "Вы проиграли!", @@ -8,5 +8,125 @@ "remaining": "догадок остаётся", "letters": "Уже введенные буквы:", "guess": "Отгадайте букву:", - "hangman": "Виселица" + "hangman": "Виселица", + "words": [ + "алгоритмы", + "алтарь", + "яблоко", + "арахнид", + "аргументы", + "массив", + "артефакты", + "автоматизация", + "зверь", + "бинарный", + "побитовый", + "книга", + "логический", + "скука", + "байткод", + "кот", + "класс", + "клиент", + "кодер", + "команда", + "условный", + "конструктор", + "распятие", + "криптекс", + "темнота", + "данные", + "объявление", + "зависимость", + "развертывание", + "презирать", + "разработчик", + "словарь", + "документация", + "пёс", + "земля", + "редактор", + "жуткий", + "эльфийский", + "взрыв", + "взрывной", + "факториал", + "поля", + "файлы", + "огонь", + "лис", + "функция", + "игровой", + "гитхаб", + "гугл", + "хакер", + "виселица", + "куча", + "иврит", + "отступ", + "создание", + "итерация", + "джава", + "джаваскрипт", + "клавиатура", + "латинский", + "лава", + "библиотека", + "свет", + "локалхост", + "циклы", + "машина", + "макрос", + "масон", + "шедевр", + "память", + "методы", + "майкрософт", + "госпожа", + "мышь", + "духовный", + "объект", + "пакет", + "папирус", + "питомец", + "плазма", + "программа", + "программист", + "пирамида", + "пифагор", + "питон", + "крыса", + "рекурсия", + "рептилия", + "ритуалы", + "скриптовый", + "сервер", + "шаман", + "искренний", + "череп", + "змея", + "душа", + "источник", + "паук", + "стак", + "стаковерфлоу", + "студио", + "симболон", + "символы", + "храм", + "терминал", + "тестирование", + "тигр", + "тип", + "тайпскрипт", + "единорог", + "переменная", + "версия", + "вино", + "вижуал", + "вода", + "ведьма", + "волк", + "слова" + ] } diff --git a/Hangman/words/se.json b/Hangman/words/se.json index 19eb18b..65c81f8 100644 --- a/Hangman/words/se.json +++ b/Hangman/words/se.json @@ -1,5 +1,5 @@ { - "words": ["javascript", "java", "python", "typescript", "hänga gubbe", "programmerare", "utvecklare", "kodare", "github", "google", "terminal", "maskin", "skriva manus", "server", "program", "array", "bytekod", "kommand", "funktion", "konstruktör", "argument", "visuell", "variabel", "källa", "redaktör", "microsoft", "bibliotek", "beroendet", "version", "testar", "paket", "dokumentation", "villkorlig", "slingor", "databas", "hackare", "binärt", "bitvis", "data", "algoritmer", "klient", "localhost", "objekt", "klass", "fält", "spridning", "boolean", "metoder", "faktoriell", "rekursion", "iteration", "instansiering", "deklaration", "typ", "stack", "hög", "stackoverflow", "indrag", "regex", "minne", "makros", "tangentbord", "automation", "filer", "ordbok", "symbol", "murare", "cryptex", "mästerverk", "artefakt", "pyramid", "ritual", "noetisk", "pythagorus", "uppriktig", "tempel", "papyrus", "hebreisk", "latin", "äppel", "altar", "crucifixion", "schaman", "mörkert", "skalle", "vin", "själ", "symboler", "bok", "katt", "hund", "varg", "räv", "vatten", "eld", "jord", "luft", "hatar", "spindlar", "brinn", "helvetet", "dator", "uttråkad", "ord", "alfabet", "krafter", "magiker", "enhörning", "substantiv", "verb", "adjektiv", "pronomen", "skola", "bord", "mus", "dator", "skärm", "spel", "monopol", "ordbok", "slut"], + "language": "se", "played": "Den bokstaven har redan blivit spelad!", "you_won": "Du vann!", "you_lose": "Du förlorade!", @@ -8,5 +8,128 @@ "remaining": "gissningar kvar", "letters": "Spelade bokstäver:", "guess": "Gissa bokstav:", - "hangman": "Hänga gubbe" + "hangman": "Hänga gubbe", + "words": [ + "javascript", + "java", + "python", + "typescript", + "hänga gubbe", + "programmerare", + "utvecklare", + "kodare", + "github", + "google", + "terminal", + "maskin", + "skriva manus", + "server", + "program", + "array", + "bytekod", + "kommand", + "funktion", + "konstruktör", + "argument", + "visuell", + "variabel", + "källa", + "redaktör", + "microsoft", + "bibliotek", + "beroendet", + "version", + "testar", + "paket", + "dokumentation", + "villkorlig", + "slingor", + "databas", + "hackare", + "binärt", + "bitvis", + "data", + "algoritmer", + "klient", + "localhost", + "objekt", + "klass", + "fält", + "spridning", + "boolean", + "metoder", + "faktoriell", + "rekursion", + "iteration", + "instansiering", + "deklaration", + "typ", + "stack", + "hög", + "stackoverflow", + "indrag", + "regex", + "minne", + "makros", + "tangentbord", + "automation", + "filer", + "ordbok", + "symbol", + "murare", + "cryptex", + "mästerverk", + "artefakt", + "pyramid", + "ritual", + "noetisk", + "pythagorus", + "uppriktig", + "tempel", + "papyrus", + "hebreisk", + "latin", + "äppel", + "altar", + "crucifixion", + "schaman", + "mörkert", + "skalle", + "vin", + "själ", + "symboler", + "bok", + "katt", + "hund", + "varg", + "räv", + "vatten", + "eld", + "jord", + "luft", + "hatar", + "spindlar", + "brinn", + "helvetet", + "dator", + "uttråkad", + "ord", + "alfabet", + "krafter", + "magiker", + "enhörning", + "substantiv", + "verb", + "adjektiv", + "pronomen", + "skola", + "bord", + "mus", + "dator", + "skärm", + "spel", + "monopol", + "ordbok", + "slut" + ] } diff --git a/Hangman/words/tr-tr.json b/Hangman/words/tr-tr.json index bc15456..79379c7 100644 --- a/Hangman/words/tr-tr.json +++ b/Hangman/words/tr-tr.json @@ -1,5 +1,5 @@ { - "words": ["javascript", "java", "python", "typescript", "programcı", "geliştirici", "kodcu", "github", "google", "uçbirim", "makine", "betik", "sunucu", "program", "dizi", "bytecode", "komut", "fonksiyon", "yapıcı", "argüman", "visual", "değişken", "kaynak", "editör", "microsoft", "kütüphane", "bağımlılık", "sürüm", "testing", "paket", "belgelendirme", "conditional", "döngüler", "veritabanı", "hacker", "ikili", "bitwise", "veri", "algoritmalar", "istemci", "localhost", "nesne", "sınıf", "alanlar", "deployment", "boolean", "yöntemler", "faktöryel", "yineleme", "iterasyon", "örnekleme", "tanımlama", "tip", "yığın", "öbek", "stackoverflow", "girinti", "regex", "bellek", "makrolar", "klavye", "otomasyon", "dosyalar", "sözlük", "symbolon", "mason", "cryptex", "başyapıt", "eserler", "piramit", "ritüeller", "noetic", "pythagorus", "samimi", "tapınak", "papirüs", "ibrani", "latin", "elma", "altar", "crucifixion", "şaman", "karanlık", "kurukafa", "vine", "ruh", "semboller", "kitap"], + "language": "tr-tr", "played": "Yazdığın harf zaten kullanıldı!", "you_won": "Kazandın!", "you_lose": "Kaybettin!", @@ -8,5 +8,95 @@ "remaining": "Kalan tahminler", "letters": "Kullanılmış harfler:", "guess": "Harf tahmin et:", - "hangman": "Adam Asmaca" + "hangman": "Adam Asmaca", + "words": [ + "javascript", + "java", + "python", + "typescript", + "programcı", + "geliştirici", + "kodcu", + "github", + "google", + "uçbirim", + "makine", + "betik", + "sunucu", + "program", + "dizi", + "bytecode", + "komut", + "fonksiyon", + "yapıcı", + "argüman", + "visual", + "değişken", + "kaynak", + "editör", + "microsoft", + "kütüphane", + "bağımlılık", + "sürüm", + "testing", + "paket", + "belgelendirme", + "conditional", + "döngüler", + "veritabanı", + "hacker", + "ikili", + "bitwise", + "veri", + "algoritmalar", + "istemci", + "localhost", + "nesne", + "sınıf", + "alanlar", + "deployment", + "boolean", + "yöntemler", + "faktöryel", + "yineleme", + "iterasyon", + "örnekleme", + "tanımlama", + "tip", + "yığın", + "öbek", + "stackoverflow", + "girinti", + "regex", + "bellek", + "makrolar", + "klavye", + "otomasyon", + "dosyalar", + "sözlük", + "symbolon", + "mason", + "cryptex", + "başyapıt", + "eserler", + "piramit", + "ritüeller", + "noetic", + "pythagorus", + "samimi", + "tapınak", + "papirüs", + "ibrani", + "latin", + "elma", + "altar", + "crucifixion", + "şaman", + "karanlık", + "kurukafa", + "vine", + "ruh", + "semboller", + "kitap" + ] } diff --git a/Hangman/words/vi-vn.json b/Hangman/words/vi-vn.json index aeb118e..362e55f 100644 --- a/Hangman/words/vi-vn.json +++ b/Hangman/words/vi-vn.json @@ -1,5 +1,5 @@ { - "words": ["javascript", "java", "python", "typescript", "hangman", "lập trình viên", "nhà phát triển", "người viết code", "github", "google", "cửa sổ lệnh", "máy", "scripting", "server", "program", "dãy", "bytecode", "lệnh", "hàm", "cấu trúc", "tham số", "tầm nhìn", "biến", "source", "trình chỉnh sửa", "microsoft", "thư viện", "dependency", "phiên bản", "thử nghiệm", "package", "tài liệu", "điều kiện", "vòng lặp", "cơ sở dữ liệu", "hacker", "nhị phân", "bitwise", "dữ liệu", "thuật toán", "client", "localhost", "object", "class", "fields", "deployment", "boolean", "methods", "giai thừa", "đệ quy", "iteration", "instantiation", "khai báo", "loại", "stack", "heap", "stackoverflow", "indentation", "regex", "bộ nhớ", "macros", "bàn phím", "tự động", "files", "từ điển", "symbolon", "mason", "cryptex", "tuyệt phẩm", "đồ khảo cổ", "kim tự tháp", "nghi lễ", "lí trí", "pi-ta-go", "kính chào", "đền", "giấy cói", "tiếng Do Thái", "tiếng Latin", "táo", "bàn thờ", "đóng đinh", "shaman giáo", "bóng tối", "sọ", "cây leo", "tâm hổn", "symobols", "sách"], + "language": "vi-vn", "played": "Chữ cái bạn vừa nhập đã được sử dụng!", "you_won": "Bạn đã thắng!", "you_lose": "Bạn đã thua!", @@ -8,5 +8,96 @@ "remaining": "lượt đoán còn lại", "letters": "Chữ cái đã sử dụng:", "guess": "Đoán chữ cái:", - "hangman": "Hangman" + "hangman": "Hangman", + "words": [ + "javascript", + "java", + "python", + "typescript", + "hangman", + "lập trình viên", + "nhà phát triển", + "người viết code", + "github", + "google", + "cửa sổ lệnh", + "máy", + "scripting", + "server", + "program", + "dãy", + "bytecode", + "lệnh", + "hàm", + "cấu trúc", + "tham số", + "tầm nhìn", + "biến", + "source", + "trình chỉnh sửa", + "microsoft", + "thư viện", + "dependency", + "phiên bản", + "thử nghiệm", + "package", + "tài liệu", + "điều kiện", + "vòng lặp", + "cơ sở dữ liệu", + "hacker", + "nhị phân", + "bitwise", + "dữ liệu", + "thuật toán", + "client", + "localhost", + "object", + "class", + "fields", + "deployment", + "boolean", + "methods", + "giai thừa", + "đệ quy", + "iteration", + "instantiation", + "khai báo", + "loại", + "stack", + "heap", + "stackoverflow", + "indentation", + "regex", + "bộ nhớ", + "macros", + "bàn phím", + "tự động", + "files", + "từ điển", + "symbolon", + "mason", + "cryptex", + "tuyệt phẩm", + "đồ khảo cổ", + "kim tự tháp", + "nghi lễ", + "lí trí", + "pi-ta-go", + "kính chào", + "đền", + "giấy cói", + "tiếng Do Thái", + "tiếng Latin", + "táo", + "bàn thờ", + "đóng đinh", + "shaman giáo", + "bóng tối", + "sọ", + "cây leo", + "tâm hổn", + "symobols", + "sách" + ] } diff --git a/Hangman/words/vi.json b/Hangman/words/vi.json index aeb118e..8edb756 100644 --- a/Hangman/words/vi.json +++ b/Hangman/words/vi.json @@ -1,5 +1,5 @@ { - "words": ["javascript", "java", "python", "typescript", "hangman", "lập trình viên", "nhà phát triển", "người viết code", "github", "google", "cửa sổ lệnh", "máy", "scripting", "server", "program", "dãy", "bytecode", "lệnh", "hàm", "cấu trúc", "tham số", "tầm nhìn", "biến", "source", "trình chỉnh sửa", "microsoft", "thư viện", "dependency", "phiên bản", "thử nghiệm", "package", "tài liệu", "điều kiện", "vòng lặp", "cơ sở dữ liệu", "hacker", "nhị phân", "bitwise", "dữ liệu", "thuật toán", "client", "localhost", "object", "class", "fields", "deployment", "boolean", "methods", "giai thừa", "đệ quy", "iteration", "instantiation", "khai báo", "loại", "stack", "heap", "stackoverflow", "indentation", "regex", "bộ nhớ", "macros", "bàn phím", "tự động", "files", "từ điển", "symbolon", "mason", "cryptex", "tuyệt phẩm", "đồ khảo cổ", "kim tự tháp", "nghi lễ", "lí trí", "pi-ta-go", "kính chào", "đền", "giấy cói", "tiếng Do Thái", "tiếng Latin", "táo", "bàn thờ", "đóng đinh", "shaman giáo", "bóng tối", "sọ", "cây leo", "tâm hổn", "symobols", "sách"], + "language": "vi", "played": "Chữ cái bạn vừa nhập đã được sử dụng!", "you_won": "Bạn đã thắng!", "you_lose": "Bạn đã thua!", @@ -8,5 +8,96 @@ "remaining": "lượt đoán còn lại", "letters": "Chữ cái đã sử dụng:", "guess": "Đoán chữ cái:", - "hangman": "Hangman" + "hangman": "Hangman", + "words": [ + "javascript", + "java", + "python", + "typescript", + "hangman", + "lập trình viên", + "nhà phát triển", + "người viết code", + "github", + "google", + "cửa sổ lệnh", + "máy", + "scripting", + "server", + "program", + "dãy", + "bytecode", + "lệnh", + "hàm", + "cấu trúc", + "tham số", + "tầm nhìn", + "biến", + "source", + "trình chỉnh sửa", + "microsoft", + "thư viện", + "dependency", + "phiên bản", + "thử nghiệm", + "package", + "tài liệu", + "điều kiện", + "vòng lặp", + "cơ sở dữ liệu", + "hacker", + "nhị phân", + "bitwise", + "dữ liệu", + "thuật toán", + "client", + "localhost", + "object", + "class", + "fields", + "deployment", + "boolean", + "methods", + "giai thừa", + "đệ quy", + "iteration", + "instantiation", + "khai báo", + "loại", + "stack", + "heap", + "stackoverflow", + "indentation", + "regex", + "bộ nhớ", + "macros", + "bàn phím", + "tự động", + "files", + "từ điển", + "symbolon", + "mason", + "cryptex", + "tuyệt phẩm", + "đồ khảo cổ", + "kim tự tháp", + "nghi lễ", + "lí trí", + "pi-ta-go", + "kính chào", + "đền", + "giấy cói", + "tiếng Do Thái", + "tiếng Latin", + "táo", + "bàn thờ", + "đóng đinh", + "shaman giáo", + "bóng tối", + "sọ", + "cây leo", + "tâm hổn", + "symobols", + "sách" + ] } diff --git a/Hangman/words/vn.json b/Hangman/words/vn.json index aeb118e..e9151dc 100644 --- a/Hangman/words/vn.json +++ b/Hangman/words/vn.json @@ -1,5 +1,5 @@ { - "words": ["javascript", "java", "python", "typescript", "hangman", "lập trình viên", "nhà phát triển", "người viết code", "github", "google", "cửa sổ lệnh", "máy", "scripting", "server", "program", "dãy", "bytecode", "lệnh", "hàm", "cấu trúc", "tham số", "tầm nhìn", "biến", "source", "trình chỉnh sửa", "microsoft", "thư viện", "dependency", "phiên bản", "thử nghiệm", "package", "tài liệu", "điều kiện", "vòng lặp", "cơ sở dữ liệu", "hacker", "nhị phân", "bitwise", "dữ liệu", "thuật toán", "client", "localhost", "object", "class", "fields", "deployment", "boolean", "methods", "giai thừa", "đệ quy", "iteration", "instantiation", "khai báo", "loại", "stack", "heap", "stackoverflow", "indentation", "regex", "bộ nhớ", "macros", "bàn phím", "tự động", "files", "từ điển", "symbolon", "mason", "cryptex", "tuyệt phẩm", "đồ khảo cổ", "kim tự tháp", "nghi lễ", "lí trí", "pi-ta-go", "kính chào", "đền", "giấy cói", "tiếng Do Thái", "tiếng Latin", "táo", "bàn thờ", "đóng đinh", "shaman giáo", "bóng tối", "sọ", "cây leo", "tâm hổn", "symobols", "sách"], + "language": "vn", "played": "Chữ cái bạn vừa nhập đã được sử dụng!", "you_won": "Bạn đã thắng!", "you_lose": "Bạn đã thua!", @@ -8,5 +8,96 @@ "remaining": "lượt đoán còn lại", "letters": "Chữ cái đã sử dụng:", "guess": "Đoán chữ cái:", - "hangman": "Hangman" + "hangman": "Hangman", + "words": [ + "javascript", + "java", + "python", + "typescript", + "hangman", + "lập trình viên", + "nhà phát triển", + "người viết code", + "github", + "google", + "cửa sổ lệnh", + "máy", + "scripting", + "server", + "program", + "dãy", + "bytecode", + "lệnh", + "hàm", + "cấu trúc", + "tham số", + "tầm nhìn", + "biến", + "source", + "trình chỉnh sửa", + "microsoft", + "thư viện", + "dependency", + "phiên bản", + "thử nghiệm", + "package", + "tài liệu", + "điều kiện", + "vòng lặp", + "cơ sở dữ liệu", + "hacker", + "nhị phân", + "bitwise", + "dữ liệu", + "thuật toán", + "client", + "localhost", + "object", + "class", + "fields", + "deployment", + "boolean", + "methods", + "giai thừa", + "đệ quy", + "iteration", + "instantiation", + "khai báo", + "loại", + "stack", + "heap", + "stackoverflow", + "indentation", + "regex", + "bộ nhớ", + "macros", + "bàn phím", + "tự động", + "files", + "từ điển", + "symbolon", + "mason", + "cryptex", + "tuyệt phẩm", + "đồ khảo cổ", + "kim tự tháp", + "nghi lễ", + "lí trí", + "pi-ta-go", + "kính chào", + "đền", + "giấy cói", + "tiếng Do Thái", + "tiếng Latin", + "táo", + "bàn thờ", + "đóng đinh", + "shaman giáo", + "bóng tối", + "sọ", + "cây leo", + "tâm hổn", + "symobols", + "sách" + ] } From a69fab939bf396dda790c4956cba3140c1165452 Mon Sep 17 00:00:00 2001 From: Salif Mehmed Date: Mon, 9 Oct 2023 20:21:40 +0300 Subject: [PATCH 12/20] Refactor hangman.js --- Hangman/hangman.js | 203 ++++++++++++++++++++++++++------------------- 1 file changed, 118 insertions(+), 85 deletions(-) diff --git a/Hangman/hangman.js b/Hangman/hangman.js index 3e973db..371e13f 100644 --- a/Hangman/hangman.js +++ b/Hangman/hangman.js @@ -1,101 +1,134 @@ -var word = []; -var wordl = 0; -var obfWord = []; -var playedLetters = []; -var guessesRemaining = 8; -var language = "en-us"; -if(process.argv.length > 2) { - language = process.argv[2]; +const Colors = { + red: 91, + green: 92, + blue: 34, + cian: 96, + yellow: 93 } -var db = require(`./words/${language}.json`); -var pics = require('./hangarts.json'); -var words = db.words; - -var input = process.stdin; -input.setEncoding('utf-8'); +class Game { + constructor(word, colors, availChars) { + this.word = word + this.colors = colors + this.availChars = availChars + this.lives = 8 + this.toGuess = 0 + this.playedChars = new Set() + } +} -console.log(clr(`\n ${db.hangman}`, "green")); -console.log(clr("\n ++++++++++++++++++++++++++++++\n", "blue")); +class Hangman { + constructor(args) { + this.language = args.language + this.db = args.db + this.words = this.db.words + this.pics = args.pics + this.colors = args.colors + this.input = args.input + this.input.setEncoding('utf-8') + } + play() { + const availChars = this.getUniqueChars(this.words) + const randWord = () => this.words[Math.floor(Math.random() * this.words.length)] + this.game = new Game(randWord().split(""), this.colors, availChars) -initGame(); + console.log(this.clr(`\n ${this.db.hangman}`, this.game.colors.green)) -console.log(clr(" " + obfWord.join(" ") + "\n", "cian")); -process.stdout.write(clr(` ${db.guess} `, "yellow")); + this.game.playedChars.add(this.game.word[0]) + this.game.playedChars.add(this.game.word[this.game.word.length - 1]) -input.on('data', function (data) { - check(data.trim().toLowerCase()); -}); + this.showPrompt(this.obf(this.game.word, this.game.playedChars), this.pic()) + this.input.on('data', (data) => { + this.guess(data.trim().toLowerCase()) + }) + } + showPrompt(obfWord, msg) { + console.log(this.clr("\n ++++++++++++++++++++++++++++++", this.game.colors.blue)) + if (msg != null) { + console.log(msg) + } + console.log(this.clr(`\n ${this.db.letters} ${Array.from(this.game.playedChars).join(", ")}`, this.game.colors.green)) + console.log(this.clr(`\n ${obfWord}`, this.colors.cian)) -function check(data) { - if (/^.{1}$/i.test(data)) { - if (playedLetters.indexOf(data) >= 0) { - console.log(clr(`\n ${db.played}`, "red")); - } else { - playedLetters.push(data); - if (word.indexOf(data) >= 0) { - showLetter(data); - if (wordl < 1) { - console.log(clr(`\n ${obfWord.join(" ")}`, "cian")); - console.log(clr("\n ++++++++++++++++++++++++++++++", "blue")); - console.log(clr(`\n ${db.you_won}\n`, "green")); - process.exit(0); - } - } else { - guessesRemaining -= 1; - } - if (guessesRemaining < 1) { - console.log(pics[0].join('\n')); - console.log(clr(`\n ${obfWord.join(" ")}\n`, "cian")); - console.log(clr("\n ++++++++++++++++++++++++++++++", "blue")); - console.log(clr(`\n ${db.you_lose} \n`, "red")); - console.log(clr(` ${db.word_was} ${word.join("")}\n`, "red")); - process.exit(0); - } - } - } else { - console.log(clr(`\n ${db.one_char}`, "red")); - } - console.log(pics[guessesRemaining].join('\n')); - console.log(clr(`\n ${obfWord.join(" ")}\n`, "cian")); - console.log(clr(` ${guessesRemaining} ${db.remaining}`, "green")); - console.log(clr(` ${db.letters} ${playedLetters.join(", ")}`, "green")); - console.log(clr("\n ++++++++++++++++++++++++++++++\n", "blue")); - process.stdout.write(clr(` ${db.guess} `, "yellow")); -} + process.stdout.write(this.clr(`\n ${this.db.guess} `, this.colors.yellow)) + } + getUniqueChars(arr) { + const uniqueChars = new Set() + for (const str of arr) { + for (const char of str) { + uniqueChars.add(char) + } + } + return uniqueChars + } + clr(text, color) { + return color == null ? text : "\x1b[" + color + "m" + text + "\x1b[0m" + } -/** show given letter in word */ -function showLetter(data) { - for (var i = 0; i < word.length; i++) { - if (word[i] === data) { - obfWord[i] = word[i]; - wordl--; + obf(word, playedChars) { + const output = [] + let toGuess = 0 + for (const c of word) { + if (playedChars.has(c)) { + output.push(c) + } else { + toGuess += 1 + output.push("_") + } } + this.game.toGuess = toGuess + return output.join(" ") } -} -/** return random word from array of words */ -function randWord() { - return words[Math.floor(Math.random() * words.length)]; -} + pic() { + return "\n" + this.pics[this.game.lives].join('\n') + } -/** create new game */ -function initGame() { - word = randWord().split(""); - wordl = word.length; - - for (var i = 0; i < word.length; i++) { - obfWord.push("_"); - } - - showLetter(word[0]); - showLetter(word[word.length - 1]); - playedLetters.push(word[0]); - playedLetters.push(word[word.length - 1]); + guess(c) { + if (this.game.playedChars.has(c)) { + this.showPrompt(this.obf(this.game.word, this.game.playedChars), + this.clr(`\n ${this.db.played}`, this.game.colors.red)) + } else if (this.game.availChars.has(c)) { + this.game.playedChars.add(c) + if (this.game.word.includes(c)) { + const obfWord = this.obf(this.game.word, this.game.playedChars) + if (this.game.toGuess < 1) { + console.log(this.clr("\n ++++++++++++++++++++++++++++++", this.game.colors.blue)) + console.log(this.clr(`\n ${this.game.word.join('')}`, this.colors.cian)) + console.log(this.clr(`\n ${this.db.you_won}\n`, this.game.colors.yellow)) + process.exit(0) + } else { + this.showPrompt(obfWord, null) + } + } else { + this.game.lives -= 1 + if (this.game.lives < 1) { + console.log(this.clr("\n ++++++++++++++++++++++++++++++", this.game.colors.blue)) + console.log(this.clr(`\n ${this.game.word.join('')}`, this.colors.cian)) + console.log(this.clr(`\n ${this.db.you_lose}\n`, this.game.colors.red)) + process.exit(0) + } else { + this.showPrompt(this.obf(this.game.word, this.game.playedChars), this.pic()) + } + } + } else { + this.showPrompt(this.obf(this.game.word, this.game.playedChars), + this.clr(`\n ${this.db.one_char} `, this.game.colors.red) + + this.clr(`\n [${Array.from(this.game.availChars).sort().join(', ')}]`, this.colors.green)) + } + } } -function clr(text, color) { - var code = { red: 91, green: 92, blue: 34, cian: 96, yellow: 93 }[color]; - if (code) return "\x1b[" + code + "m" + text + "\x1b[0m"; +let language = "en-us" +const arg = process.argv[2] +if (arg != undefined && /^[A-Za-z\-]{1,}$/.test(arg)) { + language = arg } + +new Hangman({ + db: require("./words/" + language + ".json"), + pics: require('./hangarts.json'), + colors: Colors, + input: process.stdin, +}).play() From 8a9bc7e56babde2a285b0fb0d8fe29bbfe642762 Mon Sep 17 00:00:00 2001 From: Salif Mehmed Date: Mon, 9 Oct 2023 21:32:18 +0300 Subject: [PATCH 13/20] Sort Hangman translation files --- .editorconfig | 2 +- Hangman/{hangman.js => index.js} | 1 + Hangman/sort.js | 29 ++- Hangman/words/bg.json | 101 ++++++++-- Hangman/words/cs.json | 133 ++++++------- Hangman/words/de.json | 205 ++++++++----------- Hangman/words/en-code.json | 115 +++++++++++ Hangman/words/en-us.json | 5 +- Hangman/words/es.json | 281 ++++++++++++--------------- Hangman/words/fr.json | 38 ++-- Hangman/words/gr.json | 134 +++++-------- Hangman/words/hr.json | 137 ++++++------- Hangman/words/id.json | 5 +- Hangman/words/it.json | 125 +++++------- Hangman/words/jp.json | 114 +++++------ Hangman/words/lt-lt.json | 137 ++++++------- Hangman/words/pt-br.json | 9 +- Hangman/words/ru-ru.json | 164 ++++++++-------- Hangman/words/se.json | 193 +++++++++--------- Hangman/words/tr-tr.json | 132 ++++++------- Hangman/words/vi-vn.json | 117 ++++------- Hangman/words/vi.json | 118 ++++------- Hangman/words/vn.json | 103 ---------- TicTacToe/{tictactoe.js => index.js} | 0 24 files changed, 1091 insertions(+), 1307 deletions(-) rename Hangman/{hangman.js => index.js} (99%) mode change 100644 => 100755 create mode 100644 Hangman/words/en-code.json delete mode 100644 Hangman/words/vn.json rename TicTacToe/{tictactoe.js => index.js} (100%) diff --git a/.editorconfig b/.editorconfig index eb0ae93..2b2869d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,7 +9,7 @@ charset = utf-8 indent_style = tab indent_size = 4 trim_trailing_whitespace = true -insert_final_newline = true +insert_final_newline = false [*.js] indent_style = space diff --git a/Hangman/hangman.js b/Hangman/index.js old mode 100644 new mode 100755 similarity index 99% rename from Hangman/hangman.js rename to Hangman/index.js index 371e13f..2b3a9ae --- a/Hangman/hangman.js +++ b/Hangman/index.js @@ -1,3 +1,4 @@ +#!/usr/bin/env node const Colors = { red: 91, diff --git a/Hangman/sort.js b/Hangman/sort.js index fc495e7..bcf24c2 100644 --- a/Hangman/sort.js +++ b/Hangman/sort.js @@ -1,14 +1,25 @@ -var fs = require("fs") -var language = "en-us"; +const fs = require("fs") +var language = "en-us" -if(process.argv.length > 2) { - language = process.argv[2]; +if (process.argv.length > 2) { + language = process.argv[2] } -var db = require(`./words/${language}.json`); -db.words = db.words.sort(); -fs.writeFile(`./words/${language}.json`, JSON.stringify(db, null, "\t"), function(err) { +const db = require(`./words/${language}.json`) +const newWords = new Set() +const testRegex = db.regexp != undefined +const regexp = new RegExp(db.regexp) +db.words.forEach(word => { + if (testRegex) { + if (!regexp.test(word)) { + console.log(word) + } + } + newWords.add(word) +}) +db.words = Array.from(newWords).sort() +fs.writeFile(`./words/${language}.json`, JSON.stringify(db, null, "\t"), function (err) { if (err) { - console.log(err); + console.log(err) } -}); +}) diff --git a/Hangman/words/bg.json b/Hangman/words/bg.json index 234bdf4..1c944eb 100644 --- a/Hangman/words/bg.json +++ b/Hangman/words/bg.json @@ -1,5 +1,6 @@ { "language": "bg", + "regexp": "^[абвгдежзийклмнопрстуфхцчшщъьюя]{3,}$", "played": "Буквата, която написа вече е изиграна!", "you_won": "Ти спечели!", "you_lose": "Ти загуби!", @@ -10,27 +11,87 @@ "guess": "Познай буква:", "hangman": "Бесеница", "words": [ - "бесеница", - "програмист", - "разработчик", - "машина", - "скриптиране", - "сървър", - "програма", + "абстракция", + "алгоритъм", + "алокация", + "аргумент", + "асинхронно", + "байт", + "библиотека", + "бит", + "булев", + "буфер", + "вход", + "графика", + "грешка", + "декларация", + "дефиниция", + "динамична", + "директория", + "дробно", + "екземпляр", + "изход", + "инициализация", + "инкапсулация", + "инстанция", + "инструкция", + "интерпретатор", + "интерфейс", + "калкулатор", + "клас", + "код", + "кодирани", + "коментар", + "компилатор", + "компонент", + "константа", "масив", - "байткод", - "команда", - "функция", - "аргументи", + "метод", + "модул", + "модулно", + "мултиплатформено", + "наследяване", + "низ", + "обект", + "опашка", + "операнд", + "оперативна", + "оператор", + "пакет", + "паралелно", + "пойнтер", + "поле", + "полиморфизъм", + "поток", + "препроцесор", + "програмиране", + "програмист", + "проект", "променлива", - "език", - "музика", + "процедура", + "процедурно", + "регистър", + "резервирана", + "рекурсия", + "рефакториране", + "референция", + "символен", + "синтаксис", + "сортиране", + "статична", + "стек", + "структура", + "структурно", + "събитиен", + "терминал", + "търсене", + "указател", + "условие", + "файл", + "функционално", "функция", - "видео", - "уебсайт", - "приложение", - "сметка", - "сравнение", - "обработка" + "цикъл", + "цяло", + "член" ] -} +} \ No newline at end of file diff --git a/Hangman/words/cs.json b/Hangman/words/cs.json index 81627a5..1532504 100644 --- a/Hangman/words/cs.json +++ b/Hangman/words/cs.json @@ -11,125 +11,114 @@ "hangman": "Oběšenec", "words": [ "algoritmy", - "oltář", - "jablko", - "pavoukovci", "argumenty", - "pole", "artefakty", "automatizace", + "balíček", "bestie", "binární", "bitový", - "kniha", - "boolean", - "nuda", - "bytecode", - "kočka", - "třída", - "klient", - "kóder", - "příkaz", - "podmínka", - "konstruktér", - "ukřižování", - "kryptex", - "temnota", + "chrám", "data", "databáze", "deklarace", - "závislost", - "rozmístění", - "pohrdat", - "vývojář", - "slovník", "dokumentace", - "pes", - "země", - "editor", - "podivný", + "duše", "elf", - "výbuch", - "výbušnina", "faktoriál", - "hřiště", - "soubory", - "oheň", - "liška", "funkce", - "hraní", - "github", - "google", - "hacker", - "oběšenec", "halda", "hebrejština", - "odsazení", + "hraní", + "hřiště", "instance", - "opakování", + "jablko", "java", "javascript", + "jednorožec", + "klient", "klávesnice", + "kniha", + "knihovna", + "konstruktér", + "kouzelník", + "kočka", + "kryptex", + "krysa", + "kóder", "latina", + "lebka", + "liška", "láva", - "knihovna", - "světlo", - "localhost", - "smyčky", - "stroj", "makra", - "kouzelník", - "zedník", - "veledílo", - "paměť", + "mazlíček", "metody", "microsoft", - "paní", "myš", "noetický", + "nuda", "objekt", - "balíček", + "oběšenec", + "odsazení", + "oheň", + "oltář", + "opakování", + "paměť", + "paní", "papyrus", - "mazlíček", + "pavouk", + "pavoukovci", + "pes", + "plaz", "plazma", + "podivný", + "podmínka", + "pohrdat", + "pole", "program", "programátor", + "proměnna", "pyramida", "pythagorus", "python", - "krysa", + "příkaz", "rekurze", - "regex", - "plaz", "rituály", - "skriptování", + "rozmístění", "server", - "šaman", - "upřímný", - "lebka", - "had", - "duše", - "zdroj", - "pavouk", + "skriptování", + "slova", + "slovník", + "smyčky", + "soubory", "stoh", - "stackoverflow", + "stroj", "studio", + "světlo", "symbolon", "symoboly", - "chrám", + "temnota", "terminál", "testování", "tygr", "typ", - "typescript", - "jednorožec", - "proměnna", + "třída", + "ukřižování", + "upřímný", + "veledílo", "verze", - "víno", "vizuální", + "vlk", "voda", + "víno", + "výbuch", + "výbušnina", + "vývojář", + "zdroj", + "zedník", + "země", + "závislost", "čarodějnice", - "vlk", - "slova" + "šaman" ] -} +} \ No newline at end of file diff --git a/Hangman/words/de.json b/Hangman/words/de.json index 1f8f521..92ed33c 100644 --- a/Hangman/words/de.json +++ b/Hangman/words/de.json @@ -10,127 +10,86 @@ "guess": "Wähle einen Buchstaben:", "hangman": "Galgenraten", "words": [ - "JavaScript", - "Java", - "Python", - "TypeScript", - "Galgenraten", - "Programmierer", - "Entwickler", - "Coder", - "GitHub", - "Google", - "Terminal", - "Maschine", - "Skripten", - "Server", - "Programm", - "Liste", - "Bytecode", - "Kommando", - "Funktion", - "Konstruktor", - "Argumente", - "visuell", - "Variable", - "Quelle", - "Editor", - "Microsoft", - "Bücherei", - "Abhängigkeit", - "Version", - "testen", - "Paket", - "Dokumentation", - "konditionell", - "Schleife", - "Datenbank", - "Hacker", - "binär", - "bitweise", - "Daten", - "Algorithmen", - "Klient", - "localhost", - "Objekt", - "Klassen", - "Felder", - "Berreitstellung", - "boolean", - "Methoden", - "faktoriell", - "Rekursion", - "Durchlauf", - "Instantiierung", - "Deklaration", - "Typ", - "Stapel", - "heap", - "stackoverflow", - "Einrückung", - "regex", - "Speicher", - "Makros", - "Tastatur", - "Automation", - "Dateien", - "Wörterbuch", - "Dunkelheit", - "Schädel", - "Schamane", - "Seele", - "Latein", - "Pyramide", - "Rituale", - "Altar", - "Halloween", - "Symbolon", - "Hebräisch", - "Maurer", - "noetisch", - "Apfel", - "Pythagoras", - "Meisterwerk", - "Artefakte", - "Buch", - "Rebe", - "Symbole", - "Kreuzigung", - "Messer", - "Gabel", - "Waschmaschine", - "Löffel", - "Tisch", - "Schreibtisch", - "Monitor", - "Computer", - "Handy", - "Tablett", - "Glas", - "Becher", - "Tastatur", - "Taschenrechner", - "Religion", - "Bibel", - "Locher", - "Konsole", - "Fernseher", - "Wand", - "Tapete", - "Farbe", - "Festplatte", - "Laufwerk", - "Neustart", - "Verzeichnis", - "Leistungsfähigkeit", - "Textverarbeitung", - "Grafik", - "Datenfernübertragung", - "Zuse", - "Bibliothek", - "Datenübertragung", - "Betriebssystem", - "Treiber", - "Netzteil" + "abstraktion", + "algorithmus", + "allokation", + "arbeitsspeicher", + "argument", + "array", + "asynchron", + "ausgabe", + "bedingung", + "bibliothek", + "bit", + "boolesch", + "bruchzahl", + "byte", + "code", + "codieren", + "compiler", + "datei", + "definition", + "deklaration", + "dynamisch", + "eingabe", + "element", + "ereignisgesteuert", + "exemplar", + "fehler", + "feld", + "funktion", + "funktional", + "ganzzahl", + "grafik", + "initialisierung", + "instanz", + "instruktion", + "interpreter", + "kapselung", + "klasse", + "kommentar", + "komponente", + "konstante", + "methode", + "modul", + "modular", + "objekt", + "objektorientiert", + "operand", + "operator", + "paket", + "parallel", + "pointer", + "polymorphismus", + "programmierer", + "programmierung", + "projekt", + "prozedur", + "prozedural", + "puffer", + "rechner", + "refaktorisierung", + "referenz", + "register", + "rekursion", + "reserviert", + "schleife", + "schnittstelle", + "sortierung", + "stapel", + "statisch", + "string", + "strom", + "struktur", + "strukturiert", + "suche", + "syntaktik", + "terminal", + "variable", + "vererbung", + "verzeichnis", + "warteschlange", + "zeichen", + "zeiger" ] -} +} \ No newline at end of file diff --git a/Hangman/words/en-code.json b/Hangman/words/en-code.json new file mode 100644 index 0000000..9de5e11 --- /dev/null +++ b/Hangman/words/en-code.json @@ -0,0 +1,115 @@ +{ + "language": "en-code", + "regexp": "^[a-z]{3,}$", + "played": "The letter you wrote was already played!", + "you_won": "You won!", + "you_lose": "You lose!", + "word_was": "The word was:", + "one_char": "Write just one character!", + "remaining": "guesses remaining", + "letters": "Letters already played:", + "guess": "Guess letter:", + "hangman": "Hangman", + "words": [ + "abstraction", + "agile", + "algorithm", + "algorithmic", + "architecture", + "array", + "assembler", + "asymptotic", + "asynchronous", + "authentication", + "authorization", + "binary", + "boolean", + "bug", + "callback", + "class", + "client", + "code", + "comment", + "compilation", + "compiler", + "complexity", + "concatenation", + "conditional", + "data", + "database", + "debugger", + "debugging", + "declaration", + "decomposition", + "decryption", + "dependency", + "development", + "documentation", + "downtime", + "encapsulation", + "encryption", + "endpoint", + "exception", + "expression", + "firewall", + "float", + "framework", + "function", + "garbage", + "implementation", + "inheritance", + "integer", + "integration", + "interface", + "interpreter", + "iteration", + "latency", + "library", + "linkedlist", + "loop", + "metadata", + "method", + "microcontroller", + "microprocessor", + "middleware", + "migration", + "module", + "namespace", + "object", + "operating", + "operator", + "optimization", + "parameter", + "performance", + "pointer", + "polymorphism", + "portability", + "program", + "programming", + "protocol", + "prototype", + "query", + "recursion", + "refactoring", + "repository", + "responsive", + "schema", + "script", + "scripting", + "scrum", + "serialization", + "server", + "statement", + "string", + "structure", + "synchronous", + "syntax", + "testing", + "variable", + "version", + "versioning", + "virtual", + "waterfall", + "web" + ] +} \ No newline at end of file diff --git a/Hangman/words/en-us.json b/Hangman/words/en-us.json index ee94bdb..b131e65 100644 --- a/Hangman/words/en-us.json +++ b/Hangman/words/en-us.json @@ -1,5 +1,6 @@ { "language": "en-us", + "regexp": "^[a-z]{3,}$", "played": "The letter you wrote was already played!", "you_won": "You won!", "you_lose": "You lose!", @@ -3111,7 +3112,6 @@ "jaguar", "jail", "jailhouse", - "jalape\u00f1o", "jasmine", "java", "javascript", @@ -3442,7 +3442,6 @@ "lyre", "lyrics", "lysine", - "mRNA", "macadamia", "macaroni", "macaroon", @@ -6500,4 +6499,4 @@ "zoology", "zucchini" ] -} +} \ No newline at end of file diff --git a/Hangman/words/es.json b/Hangman/words/es.json index 2d3b239..efe2066 100644 --- a/Hangman/words/es.json +++ b/Hangman/words/es.json @@ -10,178 +10,155 @@ "guess": "Adivina la letra:", "hangman": "Ahorcado", "words": [ - "javascript", - "java", - "python", - "typescript", + "activar", + "adelantar", + "agartha", + "agua", "ahorcado", - "programador", - "desarrollador", - "codeador", - "github", - "google", - "terminal", - "maquina", - "scripting", - "server", - "programa", - "lista", - "bytecode", - "comando", - "funcion", - "constructor", + "algoritmos", + "alma", + "almohada", + "altar", + "amenazar", + "amigo", + "amor", + "apagar", + "archivos", "argumentos", - "visual", - "variable", - "fuente", - "editor", - "microsoft", + "arquitectura", + "artefactos", + "auditorio", + "automatizacion", + "bestia", "biblioteca", - "dependencia", - "version", - "probar", - "paquete", - "documentacion", - "condicional", - "ciclos", - "database", - "hacker", + "bicicleta", "binario", - "bitwise", - "datos", - "algoritmos", - "cliente", - "localhost", - "objeto", - "clase", - "campos", - "deployment", + "biologia", "boleano", - "metodos", - "factorial", - "recursion", - "iteracion", - "instanciacion", + "boligrafo", + "brazo", + "brevedad", + "cabeza", + "cable", + "cama", + "camarero", + "campos", + "carga", + "ciclos", + "clase", + "cliente", + "cocina", + "codeador", + "codear", + "comando", + "condicional", + "constructor", + "consumir", + "craneo", + "crucificcion", + "cubiertos", + "cuello", + "datos", "declaracion", - "tipo", - "pila", - "heap", - "stackoverflow", - "indentacion", - "regex", - "memoria", - "macros", - "teclado", - "automatizacion", - "archivos", + "dependencia", + "deployment", + "desactivar", + "desarrollador", "dictionario", - "simbolo", - "mason", - "cryptex", - "masterpiece", - "artefactos", - "pyramid", - "rituales", - "noetic", - "pythagorus", - "sincero", - "templo", - "papyrus", - "hebrew", - "latino", - "manzana", - "altar", - "crucificcion", - "shaman", - "oscuridad", - "craneo", - "vino", - "alma", - "simbolos", - "libro", + "doctor", + "documentacion", + "echar", + "elaborar", "elemento", - "bestia", - "mono", - "montar", "eliminar", + "enamoramiento", + "encender", "enjuagar", - "echar", - "tener", - "verdadero", - "ingenieria", - "arquitectura", - "biologia", - "doctor", - "palmas", - "telefono", "entregar", - "amenazar", - "jugar", - "elaborar", - "enamoramiento", - "jugarreta", - "ver", - "saltar", - "codear", - "imaginar", - "palabra", - "ganador", - "carga", + "espalda", "etiquetar", + "extraterrestre", + "factorial", "familia", - "puro", - "recomendacion", - "amigo", - "tipografia", "foto", + "fresa", + "fuente", + "funcion", + "ganador", + "imaginar", + "indentacion", + "ingenieria", + "instanciacion", + "interdimencional", + "iteracion", + "jugar", + "jugarreta", + "lampara", + "lapel", + "lapiz", + "latino", + "libro", + "lista", + "manejar", + "mano", + "manzana", + "maquina", + "mason", + "masterpiece", + "memoria", + "mesa", + "metodos", "modelo", - "brevedad", + "mono", + "montar", + "naranja", + "noetic", + "objeto", + "oscuridad", + "palabra", + "palmas", "paloma", + "papyrus", + "paquete", "pelar", + "pie", + "pierna", + "pila", "prioridades", - "adelantar", - "manejar", - "activar", - "desactivar", - "encender", - "apagar", - "consumir", - "interdimencional", - "extraterrestre", - "agartha", - "naranja", - "manzana", - "amor", + "probar", + "programa", + "programador", + "puro", + "pyramid", + "pythagorus", + "python", + "recomendacion", + "recursion", + "refrigerador", + "rituales", + "saltar", "sandia", - "fresa", - "mesa", + "server", + "shaman", "silla", - "auditorio", - "refrigerador", - "cocina", - "cubiertos", - "camarero", - "cama", - "mano", - "cabeza", - "cuello", - "pierna", - "brazo", - "pie", - "espalda", - "cama", + "simbolo", + "simbolos", + "sincero", + "taza", + "teclado", + "telefono", "television", - "bicicleta", - "zapato", + "templo", + "tener", + "tipo", + "tipografia", + "ver", + "verdadero", + "version", + "vino", + "visual", "zapatilla", - "almohada", - "agua", - "zumo", - "cable", - "lampara", - "taza", - "lapiz", - "boligrafo", - "lapel" + "zapato", + "zumo" ] -} +} \ No newline at end of file diff --git a/Hangman/words/fr.json b/Hangman/words/fr.json index e999a77..128b9b3 100644 --- a/Hangman/words/fr.json +++ b/Hangman/words/fr.json @@ -11,18 +11,16 @@ "hangman": "Pendu", "words": [ "algorithmes", + "ame", "ancienne", "ancieux", - "ame", "arguments", "artefacts", "autel", "automatisation", "bibliotheque", "binaire", - "booleen", "boucle", - "bytecode", "chaman", "champs", "classe", @@ -34,8 +32,8 @@ "constructeur", "craindre", "crane", - "crever", "creuser", + "crever", "crier", "croire", "crucifixion", @@ -53,18 +51,10 @@ "essais", "factoriel", "fichiers", - "fonction", - "github", - "google", "hackeur", "hebreu", "indentation", "instanciation", - "iteration", - "java", - "javascript", - "latin", - "localhost", "machine", "macon", "macros", @@ -72,26 +62,25 @@ "methodes", "microsoft", "niveau", - "nouvelle", - "nouveau", - "nouvel", "noetique", "noirceur", + "nouveau", + "nouvel", + "nouvelle", "objet", "papyrus", "paquet", "pendu", "pile", "pomme", + "professeur", "programme", "programmeur", - "professeur", "pyramide", "pythagore", "python", "recueil", "recursivite", - "regex", "rites", "saccade", "saccadé", @@ -101,18 +90,13 @@ "serveuse", "sincere", "source", - "stackoverflow", - "tableau ", + "tableau", "tas", "temple", - "terminal", - "type", - "typescript", - "variable", "version", - "vigne", - "visuel", "vicieux", - "vieux" + "vieux", + "vigne", + "visuel" ] -} +} \ No newline at end of file diff --git a/Hangman/words/gr.json b/Hangman/words/gr.json index 7e1aab6..1a3ed76 100644 --- a/Hangman/words/gr.json +++ b/Hangman/words/gr.json @@ -10,97 +10,69 @@ "guess": "Μάντεψε γράμμα:", "hangman": "Κρεμάλα", "words": [ - "javascript", - "java", - "python", - "typescript", - "κρεμάλα", - "προγραμματιστής", - "developer", - "coder", - "github", - "google", - "τερματικό", - "μηχανή", - "scripting", + "αλγόριθμοι", + "ανάπτυξη", + "αντικείμενο", + "αριστούργημα", + "αυτοματισμός", + "βάση δεδομένων", + "βιβλίο", + "βιβλιοθήκη", + "βωμός", + "δεδομένα", + "διακήρυξη", "διακομιστής", - "πρόγραμμα", - "σειρά", - "bytecode", - "εντολή", - "λειτουργία", - "κατασκευαστής", + "διακοπές", "διαφωνίες", - "οπτικό", - "μεταβλητή", - "πηγή", + "δοκιμαστικός", + "δυαδικό", + "εβραϊκά", + "ειλικρινής", + "εκδοχή", "εκδότης", - "microsoft", - "βιβλιοθήκη", + "ενσάρκωση", + "εντολή", "εξάρτηση", - "εκδοχή", - "δοκιμαστικός", - "πακέτο", - "έγγραφα", - "conditional", + "επανάληψη", "επαναλήψεις", - "βάση δεδομένων", - "hacker", - "δυαδικό", - "bitwise", - "δεδομένα", - "αλγόριθμοι", - "πελάτης", - "localhost", - "αντικείμενο", - "τάξη", - "πεδία", - "ανάπτυξη", - "boolean", - "μέθοδοι", - "παραγοντικός", "επιστροφή", - "επανάληψη", - "ενσάρκωση", - "διακήρυξη", - "τύπος", - "στοίβα", - "σωρός", - "stackoverflow", - "indentation", - "regex", - "μνήμη", - "macros", - "πληκτρολόγιο", - "αυτοματισμός", - "φάκελοι", - "λεξικό", - "symbolon", + "κατασκευαστής", + "κρανίο", + "κρεμάλα", "κτίστης", - "cryptex", - "", - "αριστούργημα", - "πυραμίδα", - "τελετουργικά", - "νοητικός", - "pythagorus", - "ειλικρινής", - "ναός", - "πάπυρος", - "εβραϊκά", "λατινικό", + "λειτουργία", + "λεξικό", + "μέθοδοι", "μήλο", - "βωμός", - "στάυρωση", + "μεταβλητή", + "μηχανή", + "μνήμη", + "ναός", + "νοητικός", + "οπτικό", + "πάπυρος", + "πακέτο", + "παραγοντικός", + "πεδία", + "πελάτης", + "πηγή", + "πληκτρολόγιο", + "προγραμματιστής", + "πρόγραμμα", + "πυραμίδα", "σαμάνος", + "σειρά", "σκοτάδι", - "κρανίο", - "vine", - "ψυχή", + "στάυρωση", + "στοίβα", + "σωρός", "σύμβολα", - "βιβλίο", - "διακοπές", - "Χριστούγεννα", - "Εκπαίδευση" + "τάξη", + "τελετουργικά", + "τερματικό", + "τύπος", + "φάκελοι", + "ψυχή" ] -} +} \ No newline at end of file diff --git a/Hangman/words/hr.json b/Hangman/words/hr.json index 23995c8..93f9516 100644 --- a/Hangman/words/hr.json +++ b/Hangman/words/hr.json @@ -10,94 +10,77 @@ "guess": "Odaberite pismo:", "hangman": "Vješala", "words": [ - "javascript", - "java", - "python", - "typescript", - "Vješala", - "programer", - "razvijač", - "koder", - "github", - "google", - "terminal", - "mašina", - "skriptiranje", - "server", - "program", - "array", - "bajt", - "naredba", - "funkcija", - "konstruktor", + "algoritmi", "argumenti", - "vidni", - "varijabla", - "podrijetlo", - "urednik", - "microsoft", - "biblioteka", - "zavisnost", - "verzija", - "testiranje", - "paket", - "dokumentacija", - "uvjetovana", - "lup", + "artefakti", + "automatizacija", + "bajt", "baza podataka", - "haker", + "biblioteka", "binarni", "bitovima", - "podaci", - "algoritmi", + "datoteke", + "deklaracija", + "dokumentacija", + "duša", + "factorial", + "funkcija", + "haker", + "heap", + "hebrejski", + "hram", + "instantiation", + "iskren", + "iteration", + "jabuka", + "klasa", "klijent", - "localhost", + "knjiga", + "koder", + "konstruktor", + "latinski", + "loza", + "lubanja", + "lup", + "makronaredbe", + "mašina", + "memorija", + "naredba", "objekt", - "klasa", + "oltar", + "paket", + "papirus", + "piramida", + "pitagora", + "podaci", + "podrijetlo", "polja", + "program", + "python", + "raspeće", "razvijanje", - "boolean", - "methods", - "factorial", + "razvijač", "recursion", - "iteration", - "instantiation", - "deklaracija", - "tip", - "stack", - "heap", - "stackoverflow", - "uvlačenje", - "regex", - "memorija", - "makronaredbe", - "tastatura", - "automatizacija", - "datoteke", - "rječnik", - "symbolon", - "zidar", - "cryptex", "remekdjelo", - "artefakti", - "piramida", "rituali", + "rječnik", "saznajni", - "pitagora", - "iskren", - "hram", - "papirus", - "hebrejski", - "latinski", - "jabuka", - "oltar", - "raspeće", - "šaman", - "tama", - "lubanja", - "loza", - "duša", "simboli", - "knjiga" + "skriptiranje", + "symbolon", + "tama", + "tastatura", + "terminal", + "testiranje", + "tip", + "urednik", + "uvjetovana", + "uvlačenje", + "varijabla", + "verzija", + "vidni", + "zavisnost", + "zidar", + "šaman" ] -} +} \ No newline at end of file diff --git a/Hangman/words/id.json b/Hangman/words/id.json index 879866d..597ccca 100644 --- a/Hangman/words/id.json +++ b/Hangman/words/id.json @@ -465,7 +465,6 @@ "kabut", "kaca", "kacang", - "kacang", "kadang", "kain", "kakek", @@ -1431,12 +1430,10 @@ "tertimbun", "tertulis", "terus", - "terus", "terutama", "tetangga", "tiang", "tiba", - "tiba", "tidak", "tidur", "tiga", @@ -1507,4 +1504,4 @@ "yunani", "zat" ] -} +} \ No newline at end of file diff --git a/Hangman/words/it.json b/Hangman/words/it.json index 246cb87..fdfb86e 100644 --- a/Hangman/words/it.json +++ b/Hangman/words/it.json @@ -10,93 +10,70 @@ "guess": "Inserisci una lettera:", "hangman": "L'impiccato", "words": [ - "javascript", - "java", - "python", - "typescript", - "impiccato", - "programmatore", - "sviluppatore", + "algoritmo", + "altare", + "anima", + "argomenti", + "artefatto", + "automazione", + "binario", + "campo", + "capolavoro", + "ciclo", + "classe", + "client", "coder", - "github", - "google", - "terminale", - "macchina", - "scripting", - "server", - "programma", - "array", - "bytecode", "comando", - "funzione", + "condizionale", "costruttore", - "argomenti", - "visuale", - "variabile", - "sorgente", - "editor", - "microsoft", - "libreria", + "crocifissione", + "dato", + "dichiarazione", "dipendenza", - "versione", - "testing", - "package", + "dizionario", "documentazione", - "condizionale", - "ciclo", - "database", - "hacker", - "binario", - "bitwise", - "dato", - "algoritmo", - "client", - "localhost", - "oggetto", - "classe", - "campo", - "rilascio", - "booleano", - "metodo", + "ebreo", "fattoriale", - "ricorsione", - "iterazione", - "istanza", - "dichiarazione", - "tipo", - "stack", - "heap", - "stackoverflow", + "file", + "funzione", + "impiccato", "indentazione", - "regex", - "memoria", + "istanza", + "iterazione", + "latino", + "libreria", + "libro", + "macchina", "macro", - "tastiera", - "automazione", - "file", - "dizionario", - "symbolon", "mason", - "cryptex", - "capolavoro", - "artefatto", - "piramide", - "rituale", + "mela", + "memoria", + "metodo", "noetica", + "oggetto", + "oscurità", + "papiro", + "piramide", "pitagora", + "programma", + "programmatore", + "ricorsione", + "rilascio", + "rituale", + "sciamano", "sincero", + "sorgente", + "sviluppatore", + "symbolon", + "tastiera", "tempio", - "papiro", - "ebreo", - "latino", - "mela", - "altare", - "crocifissione", - "sciamano", - "oscurità", + "terminale", "teschio", + "testing", + "tipo", + "variabile", + "versione", "vine", - "anima", - "libro" + "visuale" ] -} +} \ No newline at end of file diff --git a/Hangman/words/jp.json b/Hangman/words/jp.json index fdee1ff..1bfd2ea 100644 --- a/Hangman/words/jp.json +++ b/Hangman/words/jp.json @@ -10,75 +10,75 @@ "guess": "文字を推測する:", "hangman": "絞首刑", "words": [ - "がくせい", - "せんせい", + "あそぶ", + "あなた", + "あまい", "いしゃ", - "なに", - "わたし", + "いす", "いま", - "くに", - "くつ", - "ちか", - "かさ", - "かいしゃ", + "うけつけ", "うりば", - "でんき", - "かい", - "ごちそうさまでした", - "だいがく", - "ひと", - "じしょ", - "くるま", - "くだもの", + "えんぴつ", + "おきる", "おはようごさいます", - "にほんご", - "しつもん", - "もういちど", - "あなた", - "こんにちは", - "はじめまして", "おんな", - "ちゅうごく", - "せんもん", - "こうがく", - "なまえ", + "かい", + "かいぎしつ", + "かいしゃ", "かぎ", + "かさ", + "かぶき", + "からい", + "かわく", + "かんこく", + "かんたん", + "がくせい", + "きもち", "ぎんこういん", - "てちょう", - "めいし", - "つくえ", + "くだもの", + "くつ", + "くに", + "くるま", + "こうがく", + "こうちゃ", + "こんにちは", + "ごちそうさまでした", + "さんぽ", + "しけん", + "しつもん", "しょくどう", + "しる", + "しんぶん", + "じしょ", "じむしょ", "すみません", - "みせる", - "うけつけ", - "とけい", - "でんわ", - "かいぎしつ", - "きもち", - "えんぴつ", - "しんぶん", - "かんこく", - "いす", - "おきる", - "ねる", + "せんせい", + "せんもん", + "そくたつ", "たべる", - "かぶき", - "しけん", - "かんたん", - "からい", - "こうちゃ", - "あまい", - "ふゆやすみ", + "だいがく", + "ちか", + "ちゅうごく", + "つくえ", + "つる", "ていしょく", - "あそぶ", + "てちょう", + "でんき", + "でんわ", + "とけい", + "なに", + "なまえ", + "にほんご", + "ねる", + "はじめまして", + "はなみ", + "ひと", "ひろい", - "そくたつ", + "ふゆやすみ", + "みせる", "むかえる", - "さんぽ", - "はなみ", - "つる", - "かわく", - "しる" + "めいし", + "もういちど", + "わたし" ] -} +} \ No newline at end of file diff --git a/Hangman/words/lt-lt.json b/Hangman/words/lt-lt.json index 2115916..da0c630 100644 --- a/Hangman/words/lt-lt.json +++ b/Hangman/words/lt-lt.json @@ -10,95 +10,78 @@ "guess": "Spėkite raidę:", "hangman": "Kartuvės", "words": [ - "javascript", - "java", - "python", - "typescript", - "hangman", - "kartuvės", - "programuotojas", - "kūrėjas", - "koderis", - "github", - "google", - "terminalas", - "mašina", - "scripting", - "serveris", - "programa", - "masyvas", - "bytecode", - "komanda", - "funkcija", - "konstruktorius", + "algoritmai", + "altorius", "argumentai", - "vizualus", - "kintamasis", - "šaltinis", - "redaktorius", - "microsoft", + "artifaktai", + "atmintis", + "automatika", "biblioteka", - "priklausomybė", - "versija", - "testavimas", - "paketas", - "dokumentacija", - "sąlyga", "ciklai", + "dislokavimas", + "dokumentacija", "duombazė", - "hakeris", - "binary", - "bitwise", "duomenys", - "algoritmai", - "klientas", - "localhost", - "objektas", - "klasė", - "laukai", - "dislokavimas", - "boolean", - "metodai", + "failai", "faktorialas", - "rekursija", - "iteracija", - "instantiation", - "pareiškimas", - "tipas", - "stack", + "funkcija", + "hakeris", + "hangman", "heap", - "stackoverflow", - "indentation", - "regex", - "atmintis", - "macros", + "hebrajų", + "instantiation", + "iteracija", + "kartuvės", + "kaukolė", + "kintamasis", + "klasė", "klaviatūra", - "automatika", - "failai", - "žodynas", - "symbolon", + "klientas", + "knyga", + "koderis", + "komanda", + "konstruktorius", + "kūrėjas", + "laukai", + "lotynų", + "macros", "mason", - "cryptex", - "šedevras", - "artifaktai", - "piramidė", - "ritualai", + "masyvas", + "mašina", + "metodai", + "microsoft", "noetic", - "pitagoras", + "nukryžiavimas", "nuoširdus", - "šventykla", + "objektas", + "paketas", "papirusas", - "hebrajų", - "lotynų", - "apple", - "altorius", - "nukryžiavimas", - "šamanas", - "tamsa", - "kaukolė", - "vynas", + "pareiškimas", + "piramidė", + "pitagoras", + "priklausomybė", + "programa", + "programuotojas", + "redaktorius", + "rekursija", + "ritualai", + "scripting", + "serveris", "siela", "simboliai", - "knyga" + "symbolon", + "sąlyga", + "tamsa", + "terminalas", + "testavimas", + "tipas", + "versija", + "vizualus", + "vynas", + "šaltinis", + "šamanas", + "šedevras", + "šventykla", + "žodynas" ] -} +} \ No newline at end of file diff --git a/Hangman/words/pt-br.json b/Hangman/words/pt-br.json index 92846b9..1616292 100644 --- a/Hangman/words/pt-br.json +++ b/Hangman/words/pt-br.json @@ -63,17 +63,12 @@ "fondue", "fonte", "forca", - "forca", "fregueses", "funcionarios", "função", "furadeira", "gerente", - "github", - "google", "hieróglifo", - "java", - "javascript", "jogos", "lapiseira", "liberdade", @@ -109,11 +104,9 @@ "scripting", "servidor", "sobrancelha", - "terminal", "toldo", "transporte", "trombeta", - "typescript", "túnel", "unha", "variável", @@ -121,4 +114,4 @@ "visual", "ônibus" ] -} +} \ No newline at end of file diff --git a/Hangman/words/ru-ru.json b/Hangman/words/ru-ru.json index 6bf95fc..a4d82dd 100644 --- a/Hangman/words/ru-ru.json +++ b/Hangman/words/ru-ru.json @@ -10,123 +10,123 @@ "guess": "Отгадайте букву:", "hangman": "Виселица", "words": [ + "автоматизация", "алгоритмы", "алтарь", - "яблоко", "арахнид", "аргументы", - "массив", "артефакты", - "автоматизация", - "зверь", - "бинарный", - "побитовый", - "книга", - "логический", - "скука", "байткод", - "кот", - "класс", - "клиент", - "кодер", - "команда", - "условный", - "конструктор", - "распятие", - "криптекс", - "темнота", - "данные", - "объявление", - "зависимость", - "развертывание", - "презирать", - "разработчик", - "словарь", - "документация", - "пёс", - "земля", - "редактор", - "жуткий", - "эльфийский", + "библиотека", + "бинарный", + "ведьма", + "версия", "взрыв", "взрывной", - "факториал", - "поля", - "файлы", - "огонь", - "лис", - "функция", - "игровой", + "вижуал", + "вино", + "виселица", + "вода", + "волк", "гитхаб", + "госпожа", "гугл", - "хакер", - "виселица", - "куча", - "иврит", - "отступ", - "создание", - "итерация", + "данные", "джава", "джаваскрипт", + "документация", + "духовный", + "душа", + "единорог", + "жуткий", + "зависимость", + "зверь", + "земля", + "змея", + "иврит", + "игровой", + "искренний", + "источник", + "итерация", "клавиатура", - "латинский", + "класс", + "клиент", + "книга", + "кодер", + "команда", + "конструктор", + "кот", + "криптекс", + "крыса", + "куча", "лава", - "библиотека", - "свет", + "латинский", + "лис", + "логический", "локалхост", - "циклы", - "машина", + "майкрософт", "макрос", "масон", - "шедевр", - "память", + "массив", + "машина", "методы", - "майкрософт", - "госпожа", "мышь", - "духовный", "объект", + "объявление", + "огонь", + "отступ", "пакет", + "память", "папирус", + "паук", + "переменная", + "пирамида", "питомец", + "питон", + "пифагор", "плазма", + "побитовый", + "поля", + "презирать", "программа", "программист", - "пирамида", - "пифагор", - "питон", - "крыса", + "пёс", + "развертывание", + "разработчик", + "распятие", + "редактор", "рекурсия", "рептилия", "ритуалы", - "скриптовый", + "свет", "сервер", - "шаман", - "искренний", - "череп", - "змея", - "душа", - "источник", - "паук", + "симболон", + "символы", + "скриптовый", + "скука", + "слова", + "словарь", + "создание", "стак", "стаковерфлоу", "студио", - "симболон", - "символы", - "храм", + "тайпскрипт", + "темнота", "терминал", "тестирование", "тигр", "тип", - "тайпскрипт", - "единорог", - "переменная", - "версия", - "вино", - "вижуал", - "вода", - "ведьма", - "волк", - "слова" + "условный", + "файлы", + "факториал", + "функция", + "хакер", + "храм", + "циклы", + "череп", + "шаман", + "шедевр", + "эльфийский", + "яблоко" ] -} +} \ No newline at end of file diff --git a/Hangman/words/se.json b/Hangman/words/se.json index 65c81f8..ac7ee27 100644 --- a/Hangman/words/se.json +++ b/Hangman/words/se.json @@ -10,126 +10,109 @@ "guess": "Gissa bokstav:", "hangman": "Hänga gubbe", "words": [ - "javascript", - "java", - "python", - "typescript", - "hänga gubbe", - "programmerare", - "utvecklare", - "kodare", - "github", - "google", - "terminal", - "maskin", - "skriva manus", - "server", - "program", - "array", - "bytekod", - "kommand", - "funktion", - "konstruktör", - "argument", - "visuell", - "variabel", - "källa", - "redaktör", - "microsoft", - "bibliotek", + "adjektiv", + "alfabet", + "algoritmer", + "altar", + "artefakt", + "automation", "beroendet", - "version", - "testar", - "paket", - "dokumentation", - "villkorlig", - "slingor", - "databas", - "hackare", + "bibliotek", "binärt", "bitvis", - "data", - "algoritmer", - "klient", - "localhost", - "objekt", - "klass", - "fält", - "spridning", - "boolean", - "metoder", - "faktoriell", - "rekursion", - "iteration", - "instansiering", + "bok", + "bord", + "brinn", + "bytekod", + "crucifixion", + "databas", + "dator", "deklaration", - "typ", - "stack", + "dokumentation", + "eld", + "enhörning", + "faktoriell", + "filer", + "funktion", + "fält", + "hackare", + "hatar", + "hebreisk", + "helvetet", + "hund", + "hänga gubbe", "hög", - "stackoverflow", "indrag", - "regex", - "minne", + "instansiering", + "iteration", + "jord", + "katt", + "klass", + "klient", + "kodare", + "kommand", + "konstruktör", + "krafter", + "källa", + "luft", + "magiker", "makros", - "tangentbord", - "automation", - "filer", - "ordbok", - "symbol", + "maskin", + "metoder", + "microsoft", + "minne", + "monopol", "murare", - "cryptex", + "mus", "mästerverk", - "artefakt", - "pyramid", - "ritual", + "mörkert", "noetisk", - "pythagorus", - "uppriktig", - "tempel", + "objekt", + "ord", + "ordbok", + "paket", "papyrus", - "hebreisk", - "latin", - "äppel", - "altar", - "crucifixion", + "program", + "programmerare", + "pronomen", + "pyramid", + "pythagorus", + "python", + "redaktör", + "rekursion", + "ritual", + "räv", "schaman", - "mörkert", - "skalle", - "vin", + "server", "själ", + "skalle", + "skola", + "skriva manus", + "skärm", + "slingor", + "slut", + "spel", + "spindlar", + "spridning", + "substantiv", + "symbol", "symboler", - "bok", - "katt", - "hund", + "tangentbord", + "tempel", + "terminal", + "testar", + "typ", + "uppriktig", + "uttråkad", + "utvecklare", "varg", - "räv", + "variabel", "vatten", - "eld", - "jord", - "luft", - "hatar", - "spindlar", - "brinn", - "helvetet", - "dator", - "uttråkad", - "ord", - "alfabet", - "krafter", - "magiker", - "enhörning", - "substantiv", "verb", - "adjektiv", - "pronomen", - "skola", - "bord", - "mus", - "dator", - "skärm", - "spel", - "monopol", - "ordbok", - "slut" + "version", + "villkorlig", + "vin", + "visuell", + "äppel" ] -} +} \ No newline at end of file diff --git a/Hangman/words/tr-tr.json b/Hangman/words/tr-tr.json index 79379c7..e6662ed 100644 --- a/Hangman/words/tr-tr.json +++ b/Hangman/words/tr-tr.json @@ -1,5 +1,6 @@ { "language": "tr-tr", + "regexp": "^[abcçdefgğhıijklmnoöprsştuüvyz]{3,}$", "played": "Yazdığın harf zaten kullanıldı!", "you_won": "Kazandın!", "you_lose": "Kaybettin!", @@ -10,93 +11,72 @@ "guess": "Harf tahmin et:", "hangman": "Adam Asmaca", "words": [ - "javascript", - "java", - "python", - "typescript", - "programcı", - "geliştirici", - "kodcu", - "github", - "google", - "uçbirim", - "makine", - "betik", - "sunucu", - "program", - "dizi", - "bytecode", - "komut", - "fonksiyon", - "yapıcı", + "alanlar", + "algoritmalar", + "altar", "argüman", - "visual", - "değişken", - "kaynak", - "editör", - "microsoft", - "kütüphane", "bağımlılık", - "sürüm", - "testing", - "paket", + "başyapıt", "belgelendirme", - "conditional", + "bellek", + "betik", + "deployment", + "değişken", + "dizi", + "dosyalar", "döngüler", - "veritabanı", - "hacker", + "editör", + "elma", + "eserler", + "faktöryel", + "fonksiyon", + "geliştirici", + "girinti", + "ibrani", "ikili", - "bitwise", - "veri", - "algoritmalar", "istemci", - "localhost", - "nesne", - "sınıf", - "alanlar", - "deployment", - "boolean", - "yöntemler", - "faktöryel", - "yineleme", "iterasyon", - "örnekleme", - "tanımlama", - "tip", - "yığın", - "öbek", - "stackoverflow", - "girinti", - "regex", - "bellek", - "makrolar", + "karanlık", + "kaynak", + "kitap", "klavye", - "otomasyon", - "dosyalar", - "sözlük", - "symbolon", + "kodcu", + "komut", + "kurukafa", + "kütüphane", + "makine", + "makrolar", "mason", - "cryptex", - "başyapıt", - "eserler", - "piramit", - "ritüeller", + "nesne", "noetic", - "pythagorus", - "samimi", - "tapınak", + "otomasyon", + "paket", "papirüs", - "ibrani", - "latin", - "elma", - "altar", - "crucifixion", - "şaman", - "karanlık", - "kurukafa", - "vine", + "piramit", + "program", + "programcı", + "pythagorus", + "ritüeller", "ruh", + "samimi", "semboller", - "kitap" + "sunucu", + "symbolon", + "sözlük", + "sürüm", + "sınıf", + "tanımlama", + "tapınak", + "tip", + "uçbirim", + "veri", + "veritabanı", + "yapıcı", + "yineleme", + "yöntemler", + "yığın", + "öbek", + "örnekleme", + "şaman" ] -} +} \ No newline at end of file diff --git a/Hangman/words/vi-vn.json b/Hangman/words/vi-vn.json index 362e55f..f1569c7 100644 --- a/Hangman/words/vi-vn.json +++ b/Hangman/words/vi-vn.json @@ -10,94 +10,55 @@ "guess": "Đoán chữ cái:", "hangman": "Hangman", "words": [ - "javascript", - "java", - "python", - "typescript", - "hangman", - "lập trình viên", - "nhà phát triển", - "người viết code", - "github", - "google", - "cửa sổ lệnh", - "máy", - "scripting", - "server", - "program", - "dãy", - "bytecode", - "lệnh", - "hàm", - "cấu trúc", - "tham số", - "tầm nhìn", "biến", - "source", - "trình chỉnh sửa", - "microsoft", - "thư viện", - "dependency", - "phiên bản", - "thử nghiệm", - "package", - "tài liệu", - "điều kiện", - "vòng lặp", + "bàn phím", + "bàn thờ", + "bóng tối", + "bộ nhớ", + "cây leo", "cơ sở dữ liệu", - "hacker", - "nhị phân", - "bitwise", + "cấu trúc", + "cửa sổ lệnh", + "dãy", "dữ liệu", - "thuật toán", - "client", - "localhost", - "object", - "class", - "fields", - "deployment", - "boolean", - "methods", "giai thừa", - "đệ quy", - "iteration", - "instantiation", + "giấy cói", + "hàm", "khai báo", - "loại", - "stack", - "heap", - "stackoverflow", - "indentation", - "regex", - "bộ nhớ", - "macros", - "bàn phím", - "tự động", - "files", - "từ điển", - "symbolon", - "mason", - "cryptex", - "tuyệt phẩm", - "đồ khảo cổ", "kim tự tháp", - "nghi lễ", + "kính chào", + "loại", "lí trí", + "lập trình viên", + "lệnh", + "máy", + "nghi lễ", + "người viết code", + "nhà phát triển", + "nhị phân", + "phiên bản", "pi-ta-go", - "kính chào", - "đền", - "giấy cói", + "sách", + "sọ", + "tham số", + "thuật toán", + "thư viện", + "thử nghiệm", "tiếng Do Thái", "tiếng Latin", + "trình chỉnh sửa", + "tuyệt phẩm", + "tài liệu", "táo", - "bàn thờ", - "đóng đinh", - "shaman giáo", - "bóng tối", - "sọ", - "cây leo", "tâm hổn", - "symobols", - "sách" + "tầm nhìn", + "từ điển", + "tự động", + "vòng lặp", + "điều kiện", + "đóng đinh", + "đền", + "đệ quy", + "đồ khảo cổ" ] -} +} \ No newline at end of file diff --git a/Hangman/words/vi.json b/Hangman/words/vi.json index 8edb756..d95e699 100644 --- a/Hangman/words/vi.json +++ b/Hangman/words/vi.json @@ -10,94 +10,56 @@ "guess": "Đoán chữ cái:", "hangman": "Hangman", "words": [ - "javascript", - "java", - "python", - "typescript", - "hangman", - "lập trình viên", - "nhà phát triển", - "người viết code", - "github", - "google", - "cửa sổ lệnh", - "máy", - "scripting", - "server", - "program", - "dãy", - "bytecode", - "lệnh", - "hàm", - "cấu trúc", - "tham số", - "tầm nhìn", "biến", - "source", - "trình chỉnh sửa", - "microsoft", - "thư viện", - "dependency", - "phiên bản", - "thử nghiệm", - "package", - "tài liệu", - "điều kiện", - "vòng lặp", + "bàn phím", + "bàn thờ", + "bóng tối", + "bộ nhớ", + "cây leo", "cơ sở dữ liệu", - "hacker", - "nhị phân", - "bitwise", + "cấu trúc", + "cửa sổ lệnh", + "dãy", "dữ liệu", - "thuật toán", - "client", - "localhost", - "object", - "class", - "fields", - "deployment", - "boolean", - "methods", "giai thừa", - "đệ quy", - "iteration", - "instantiation", + "giấy cói", + "hàm", "khai báo", - "loại", - "stack", - "heap", - "stackoverflow", - "indentation", - "regex", - "bộ nhớ", - "macros", - "bàn phím", - "tự động", - "files", - "từ điển", - "symbolon", - "mason", - "cryptex", - "tuyệt phẩm", - "đồ khảo cổ", "kim tự tháp", - "nghi lễ", + "kính chào", + "loại", "lí trí", + "lập trình viên", + "lệnh", + "máy", + "nghi lễ", + "người viết code", + "nhà phát triển", + "nhị phân", + "phiên bản", "pi-ta-go", - "kính chào", - "đền", - "giấy cói", + "shaman giáo", + "sách", + "sọ", + "tham số", + "thuật toán", + "thư viện", + "thử nghiệm", "tiếng Do Thái", "tiếng Latin", + "trình chỉnh sửa", + "tuyệt phẩm", + "tài liệu", "táo", - "bàn thờ", - "đóng đinh", - "shaman giáo", - "bóng tối", - "sọ", - "cây leo", "tâm hổn", - "symobols", - "sách" + "tầm nhìn", + "từ điển", + "tự động", + "vòng lặp", + "điều kiện", + "đóng đinh", + "đền", + "đệ quy", + "đồ khảo cổ" ] -} +} \ No newline at end of file diff --git a/Hangman/words/vn.json b/Hangman/words/vn.json deleted file mode 100644 index e9151dc..0000000 --- a/Hangman/words/vn.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "language": "vn", - "played": "Chữ cái bạn vừa nhập đã được sử dụng!", - "you_won": "Bạn đã thắng!", - "you_lose": "Bạn đã thua!", - "word_was": "Đáp án:", - "one_char": "Chỉ nhập một chữ cái!", - "remaining": "lượt đoán còn lại", - "letters": "Chữ cái đã sử dụng:", - "guess": "Đoán chữ cái:", - "hangman": "Hangman", - "words": [ - "javascript", - "java", - "python", - "typescript", - "hangman", - "lập trình viên", - "nhà phát triển", - "người viết code", - "github", - "google", - "cửa sổ lệnh", - "máy", - "scripting", - "server", - "program", - "dãy", - "bytecode", - "lệnh", - "hàm", - "cấu trúc", - "tham số", - "tầm nhìn", - "biến", - "source", - "trình chỉnh sửa", - "microsoft", - "thư viện", - "dependency", - "phiên bản", - "thử nghiệm", - "package", - "tài liệu", - "điều kiện", - "vòng lặp", - "cơ sở dữ liệu", - "hacker", - "nhị phân", - "bitwise", - "dữ liệu", - "thuật toán", - "client", - "localhost", - "object", - "class", - "fields", - "deployment", - "boolean", - "methods", - "giai thừa", - "đệ quy", - "iteration", - "instantiation", - "khai báo", - "loại", - "stack", - "heap", - "stackoverflow", - "indentation", - "regex", - "bộ nhớ", - "macros", - "bàn phím", - "tự động", - "files", - "từ điển", - "symbolon", - "mason", - "cryptex", - "tuyệt phẩm", - "đồ khảo cổ", - "kim tự tháp", - "nghi lễ", - "lí trí", - "pi-ta-go", - "kính chào", - "đền", - "giấy cói", - "tiếng Do Thái", - "tiếng Latin", - "táo", - "bàn thờ", - "đóng đinh", - "shaman giáo", - "bóng tối", - "sọ", - "cây leo", - "tâm hổn", - "symobols", - "sách" - ] -} diff --git a/TicTacToe/tictactoe.js b/TicTacToe/index.js similarity index 100% rename from TicTacToe/tictactoe.js rename to TicTacToe/index.js From 41537a87789c218dc157570bee847f95aa26557a Mon Sep 17 00:00:00 2001 From: Salif Mehmed Date: Mon, 9 Oct 2023 22:39:01 +0300 Subject: [PATCH 14/20] Fix indentation and repo name --- CONTRIBUTORS | 40 +++ Hangman/README.md | 20 +- Hangman/index.js | 4 + Hangman/sort.js | 8 +- MazeEscape/Hero.js | 54 +-- MazeEscape/README.md | 11 +- MazeEscape/index.js | 120 +++---- MazeEscape/package-lock.json | 21 -- MazeEscape/package.json | 38 +-- README.md | 4 +- Snake/index.js | 52 +-- Snake/package-lock.json | 19 -- Snake/package.json | 2 +- TextAdventures/README.md | 11 +- TextAdventures/index.js | 48 +-- TextAdventures/package-lock.json | 27 -- TextAdventures/package.json | 54 +-- TextAdventures/stories.json | 546 +++++++++++++++---------------- TicTacToe/index.js | 130 ++++---- TicTacToe/package-lock.json | 3 - 20 files changed, 590 insertions(+), 622 deletions(-) create mode 100644 CONTRIBUTORS delete mode 100644 MazeEscape/package-lock.json delete mode 100644 Snake/package-lock.json delete mode 100644 TextAdventures/package-lock.json delete mode 100644 TicTacToe/package-lock.json diff --git a/CONTRIBUTORS b/CONTRIBUTORS new file mode 100644 index 0000000..735cb65 --- /dev/null +++ b/CONTRIBUTORS @@ -0,0 +1,40 @@ +Seniru Pasan Indira +Salif Mehmed +dnhuan +Natsumi H +Dany Shaanan +Kharis Isriyanto +Luis Martinez +PedroGuilherme +Alex +Aresiel +Kevin Unger +Mario Aleixo +Paul Clark +Pietro +Smollet777 +AbhayKaushik +AllAwesome497 +Berk Gureken +Braulio Gutiérrez +Cody Metz +Dmytro Bubela +Ece Sefercioğlu +Emanuele Lorenzetti +EverMarr +Jackeline Nascimento +José Victor +Justin Riley +Lee Dennis +Mantas +Mathieu LAURET +Moxieq +PapuleX +Ramon Bezerra +Rodrigo da Silva Ferreira +Sebastian Kießling +Stefanos Z +Valery Briz +Vasilhs Toskas +exiam +rafacazal diff --git a/Hangman/README.md b/Hangman/README.md index 1a6301b..6592840 100644 --- a/Hangman/README.md +++ b/Hangman/README.md @@ -2,40 +2,40 @@ ## Play -```sh +```bash $ python hangman.py ``` or -```sh +```bash $ python hangman.py [language] ``` #### Example -```sh +```bash $ python hangman.py pt-br ``` ## Node.js -```sh -$ node hangman.js +```bash +$ node index.js ``` or -```sh -$ node hangman.js [language] +```bash +$ node index.js [language] ``` #### Example -```sh -$ node hangman.js pt-br +```bash +$ node index.js pt-br ``` ## Contributing -See [this issue](https://github.com/salifm/cli-games/issues/9) +See [this issue](https://github.com/salif/cli-games/issues/9) diff --git a/Hangman/index.js b/Hangman/index.js index 2b3a9ae..2adc0f0 100755 --- a/Hangman/index.js +++ b/Hangman/index.js @@ -29,6 +29,7 @@ class Hangman { this.input = args.input this.input.setEncoding('utf-8') } + play() { const availChars = this.getUniqueChars(this.words) const randWord = () => this.words[Math.floor(Math.random() * this.words.length)] @@ -44,6 +45,7 @@ class Hangman { this.guess(data.trim().toLowerCase()) }) } + showPrompt(obfWord, msg) { console.log(this.clr("\n ++++++++++++++++++++++++++++++", this.game.colors.blue)) if (msg != null) { @@ -54,6 +56,7 @@ class Hangman { process.stdout.write(this.clr(`\n ${this.db.guess} `, this.colors.yellow)) } + getUniqueChars(arr) { const uniqueChars = new Set() for (const str of arr) { @@ -63,6 +66,7 @@ class Hangman { } return uniqueChars } + clr(text, color) { return color == null ? text : "\x1b[" + color + "m" + text + "\x1b[0m" } diff --git a/Hangman/sort.js b/Hangman/sort.js index bcf24c2..92d9bab 100644 --- a/Hangman/sort.js +++ b/Hangman/sort.js @@ -1,5 +1,5 @@ const fs = require("fs") -var language = "en-us" +let language = "en-us" if (process.argv.length > 2) { language = process.argv[2] @@ -18,8 +18,4 @@ db.words.forEach(word => { newWords.add(word) }) db.words = Array.from(newWords).sort() -fs.writeFile(`./words/${language}.json`, JSON.stringify(db, null, "\t"), function (err) { - if (err) { - console.log(err) - } -}) +fs.writeFileSync(`./words/${language}.json`, JSON.stringify(db, null, "\t")) diff --git a/MazeEscape/Hero.js b/MazeEscape/Hero.js index 2568e69..4010be6 100644 --- a/MazeEscape/Hero.js +++ b/MazeEscape/Hero.js @@ -1,57 +1,57 @@ -const symbols = require('./maps').symbols; +const symbols = require('./maps').symbols class Hero { constructor(map) { - this.x = 0; - this.y = 0; - this.map = map; - this.won = false; + this.x = 0 + this.y = 0 + this.map = map + this.won = false } moveUp() { if (this.canGo(this.x, this.y - 1)) { - this.leave(); - this.goto(this.x, this.y - 1); + this.leave() + this.goto(this.x, this.y - 1) } } - moveDown() { + moveDown() { if (this.canGo(this.x, this.y + 1)) { - this.leave(); - this.goto(this.x, this.y + 1); + this.leave() + this.goto(this.x, this.y + 1) } } moveLeft() { if (this.canGo(this.x - 1, this.y)) { - this.leave(); - this.goto(this.x - 1, this.y); + this.leave() + this.goto(this.x - 1, this.y) } } moveRight() { if (this.canGo(this.x + 1, this.y)) { - this.leave(); - this.goto(this.x + 1, this.y); + this.leave() + this.goto(this.x + 1, this.y) } } goto(x, y) { if (this.canGo(x, y)) { - this.x = x; - this.y = y; - if (this.isWinningPosition(x, y)) this.won = true; - this.map[y][x] = '♟'; + this.x = x + this.y = y + if (this.isWinningPosition(x, y)) this.won = true + this.map[y][x] = '♟' } } - leave() { - this.map[this.y][this.x] = " "; + leave() { + this.map[this.y][this.x] = " " } canGo(x, y) { - return this.map[y] && (this.map[y][x] == " " || this.map[y][x] == symbols.door); + return this.map[y] && (this.map[y][x] == " " || this.map[y][x] == symbols.door) } isWinningPosition(x, y) { @@ -59,16 +59,16 @@ class Hero { } hasWon() { - return this.won; + return this.won } nextMap(map) { - this.map = map; - this.x = 0; - this.y = 0; - this.won = false; + this.map = map + this.x = 0 + this.y = 0 + this.won = false } } -module.exports = Hero; \ No newline at end of file +module.exports = Hero diff --git a/MazeEscape/README.md b/MazeEscape/README.md index 903b03b..f522d68 100644 --- a/MazeEscape/README.md +++ b/MazeEscape/README.md @@ -7,19 +7,19 @@ You have to follow these steps in order to play this game - Clone this repository to your local machine (only if you haven't cloned this before) - ```sh - git clone https://github.com/salifm/cli-games.git + ```bash + git clone https://github.com/salif/cli-games.git ``` - Move to `MazeEscape` directory - ```sh + ```bash cd MazeEscape ``` -- ```sh +- ```bash npm install ``` -- ```sh +- ```bash npm run play ``` @@ -72,4 +72,3 @@ Before starting to create a new map, please read this guidelines. - You can also specify walls using `"▉"` character. - Enjoy! - diff --git a/MazeEscape/index.js b/MazeEscape/index.js index bad1453..f20a849 100644 --- a/MazeEscape/index.js +++ b/MazeEscape/index.js @@ -1,68 +1,68 @@ -const readline = require('readline'); -const esc = require('ansi-escapes'); -const {maps, symbols} = require('./maps.json'); -const Hero = require('./Hero'); +const readline = require('readline') +const esc = require('ansi-escapes') +const { maps, symbols } = require('./maps.json') +const Hero = require('./Hero') -let round = 0; -let map = maps[round]; -let hero = new Hero(map); -let gameStart = false; +let round = 0 +let map = maps[round] +let hero = new Hero(map) +let gameStart = false -readline.emitKeypressEvents(process.stdin); -process.stdin.setRawMode(true); +readline.emitKeypressEvents(process.stdin) +process.stdin.setRawMode(true) process.stdin.on('keypress', (str, key) => { - if (key.name == 'z' && key.ctrl) { - console.log(esc.cursorShow); - process.exit(0); - } else if (!gameStart) { - gameStart = true; - welcome(); - } else if (hero.hasWon()) { - if (round + 1 < maps.length) { - round++ - map = maps[round]; - hero.nextMap(map); - } else { - console.log(clr("Congratulations! You've completed all the maps", "green")); - process.exit(0); - } - } else { - if (gameStart) { - switch (key.name) { - case "up": - hero.moveUp(); - break; - case "down": - hero.moveDown(); - break; - case "left": - hero.moveLeft(); - break; - case "right": - hero.moveRight(); - break; + if (key.name == 'z' && key.ctrl) { + console.log(esc.cursorShow) + process.exit(0) + } else if (!gameStart) { + gameStart = true + welcome() + } else if (hero.hasWon()) { + if (round + 1 < maps.length) { + round++ + map = maps[round] + hero.nextMap(map) + } else { + console.log(clr("Congratulations! You've completed all the maps", "green")) + process.exit(0) } - } - } - draw(); + } else { + if (gameStart) { + switch (key.name) { + case "up": + hero.moveUp() + break + case "down": + hero.moveDown() + break + case "left": + hero.moveLeft() + break + case "right": + hero.moveRight() + break + } + } + } + draw() }) function draw() { - let res = " "+ (symbols.wall + " ").repeat(map[0].length) + "\n"; + let res = " " + (symbols.wall + " ").repeat(map[0].length) + "\n" for (let row of map) { - res += " " + symbols.wall + " "; + res += " " + symbols.wall + " " for (let col of row) { - res += col + " "; + res += col + " " } - res += symbols.wall + '\n'; + res += symbols.wall + '\n' } - res += " "+ (symbols.wall + " ").repeat(map[0].length) + "\n"; - res = res.replace("♟", clr("♟", "yellow")).replace(/▣/g, clr("▣", "green")); - print(res); + res += " " + (symbols.wall + " ").repeat(map[0].length) + "\n" + res = res.replace("♟", clr("♟", "yellow")).replace(/▣/g, clr("▣", "green")) + print(res) if (hero.hasWon()) { - console.log(clr("Press any key to continue", "cian")); + console.log(clr("Press any key to continue", "cian")) } } @@ -80,7 +80,7 @@ function welcome() { Welcome to ${clr(logo, 'yellow')} - Maze escape game for Salifm's CLI game collection. + Maze escape game for Salif's CLI game collection. ${clr('Help', 'green')} - This is you: ♟ @@ -90,23 +90,23 @@ function welcome() { ${clr('Press any key to continue...', 'cian')} - `); + `) } /*Salif's coloring function*/ function clr(text, color) { - var code = { red: 91, green: 92, blue: 34, cian: 96, yellow: 93 }[color]; - if (code) return "\x1b[" + code + "m" + text + "\x1b[0m"; + var code = { red: 91, green: 92, blue: 34, cian: 96, yellow: 93 }[color] + if (code) return "\x1b[" + code + "m" + text + "\x1b[0m" } -function print(str, hide=true) { +function print(str, hide = true) { console.log(esc.clearTerminal) - console.log(str); - console.log(hide ? esc.cursorHide : esc.cursorShow); + console.log(str) + console.log(hide ? esc.cursorHide : esc.cursorShow) } function main() { - welcome(); + welcome() } -main(); +main() diff --git a/MazeEscape/package-lock.json b/MazeEscape/package-lock.json deleted file mode 100644 index ba7b68f..0000000 --- a/MazeEscape/package-lock.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "maze-escape", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "ansi-escapes": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.2.1.tgz", - "integrity": "sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q==", - "requires": { - "type-fest": "^0.5.2" - } - }, - "type-fest": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz", - "integrity": "sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==" - } - } -} diff --git a/MazeEscape/package.json b/MazeEscape/package.json index c31e21d..a1c3619 100644 --- a/MazeEscape/package.json +++ b/MazeEscape/package.json @@ -1,20 +1,20 @@ { - "name": "maze-escape", - "version": "1.0.0", - "description": "A maze escape game for salif's CLI games collection", - "main": "index.js", - "scripts": { - "test": "test", - "play": "node index.js" - }, - "keywords": [ - "game", - "maze-escape", - "cli" - ], - "author": "Seniru Pasan", - "license": "Apache-2.0", - "dependencies": { - "ansi-escapes": "^4.2.1" - } -} + "name": "maze-escape", + "version": "1.0.0", + "description": "A maze escape game for salif's CLI games collection", + "main": "index.js", + "scripts": { + "test": "test", + "play": "node index.js" + }, + "keywords": [ + "game", + "maze-escape", + "cli" + ], + "author": "Seniru Pasan", + "license": "Apache-2.0", + "dependencies": { + "ansi-escapes": "^4.2.1" + } +} \ No newline at end of file diff --git a/README.md b/README.md index 2bdffa6..d6f6659 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ > Games in the terminal -[![Run on Repl.it](https://repl.it/badge/github/salifm/cli-games)](https://repl.it/@AllAwesome497/cli-games) +[![Run on Repl.it](https://repl.it/badge/github/salif/cli-games)](https://repl.it/@AllAwesome497/cli-games) CLI Games is a community-driven collection of games that could be run in your terminal! Currently this project has many games including, - Hangman @@ -19,7 +19,7 @@ Installation is very simple. ```bash #Clone the repo -git clone https://github.com/salifm/cli-games.git +git clone https://github.com/salif/cli-games.git cd cli-games ``` diff --git a/Snake/index.js b/Snake/index.js index c2affe4..2cefed6 100644 --- a/Snake/index.js +++ b/Snake/index.js @@ -1,17 +1,17 @@ -const readline = require('readline'); -const esc = require('ansi-escapes'); +const readline = require('readline') +const esc = require('ansi-escapes') // initializing the variables let map, snake, snakeHead, foodPos, score, interval -readline.emitKeypressEvents(process.stdin); -process.stdin.setRawMode(true); +readline.emitKeypressEvents(process.stdin) +process.stdin.setRawMode(true) // handling keypress events process.stdin.on('keypress', (str, key) => { if (key.name == 'z' && key.ctrl) { - console.log(esc.cursorShow); - process.exit(0); + console.log(esc.cursorShow) + process.exit(0) } else if (key.name == "up") { if (!snakeHead.movingDown) { snakeHead.movingForward = true @@ -47,9 +47,9 @@ process.stdin.on('keypress', (str, key) => { function newGame() { score = 0 // creating a 25 x 30 map - map = Array.from(Array(15), _ => Array(30).fill(0)); + map = Array.from(Array(15), _ => Array(30).fill(0)) // setting the snake in the middle - snakeHead = {x: 12, y: 5, movingForward: true, movingDown: false, movingLeft: false, movingRight: false} + snakeHead = { x: 12, y: 5, movingForward: true, movingDown: false, movingLeft: false, movingRight: false } snake = [ [12, 5], [12, 6] @@ -59,7 +59,7 @@ function newGame() { map[6][12] = 2 // body // setting the food - foodPos = {x:5, y:3} + foodPos = { x: 5, y: 3 } map[3][5] = 5 drawMap() @@ -115,7 +115,7 @@ function isEatingSelf() { function loop() { // clearing all the values in the map (setting them to 0) - map = Array.from(Array(15), _ => Array(30).fill(0)); + map = Array.from(Array(15), _ => Array(30).fill(0)) // snake move logic if (snakeHead.movingForward) { @@ -127,11 +127,11 @@ function loop() { } else if (snakeHead.movingRight) { snakeHead.x += 1 } - - for (let i=snake.length - 1; i > 0; i--) { - snake[i] = snake[i-1] + + for (let i = snake.length - 1; i > 0; i--) { + snake[i] = snake[i - 1] } - + snake[0] = [snakeHead.x, snakeHead.y] // wall hit detetion @@ -144,20 +144,20 @@ function loop() { } else if (snakeHead.y >= 15) { gameOver("You hit the wall!") } - + for (let segments of snake) { map[segments[1]][segments[0]] = 1 } - + if (isEatingFood()) { snake.push([-1, -1]) setFoodPos() score++ } - + map[snakeHead.y][snakeHead.x] = 2 map[foodPos.y][foodPos.x] = 5 - + drawMap() if (isEatingSelf()) { @@ -194,22 +194,22 @@ function gameOver(msg) { print(clr("Game over! " + msg, "red"), false, false) process.exit(0) } - -function print(str, hide=true, clear=true) { + +function print(str, hide = true, clear = true) { if (clear) { console.log(esc.clearTerminal) } - console.log(str); - console.log(hide ? esc.cursorHide : esc.cursorShow); + console.log(str) + console.log(hide ? esc.cursorHide : esc.cursorShow) } function randInt(min, max) { - return Math.floor(Math.random() * (max - min + 1)) + min; + return Math.floor(Math.random() * (max - min + 1)) + min } function clr(text, color) { - var code = { red: 91, green: 92, blue: 34, cian: 96, yellow: 93 }[color]; - if (code) return "\x1b[" + code + "m" + text + "\x1b[0m"; + var code = { red: 91, green: 92, blue: 34, cian: 96, yellow: 93 }[color] + if (code) return "\x1b[" + code + "m" + text + "\x1b[0m" } -main() \ No newline at end of file +main() diff --git a/Snake/package-lock.json b/Snake/package-lock.json deleted file mode 100644 index 39fec8d..0000000 --- a/Snake/package-lock.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "requires": true, - "lockfileVersion": 1, - "dependencies": { - "ansi-escapes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", - "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", - "requires": { - "type-fest": "^0.8.1" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" - } - } -} diff --git a/Snake/package.json b/Snake/package.json index 1051898..7e91b4b 100644 --- a/Snake/package.json +++ b/Snake/package.json @@ -1,7 +1,7 @@ { "name": "snake", "version": "1.0.0", - "description": "Snake game Salifm's CLI game collection", + "description": "Snake game Salif's CLI game collection", "main": "index.js", "dependencies": { "ansi-escapes": "^4.3.0" diff --git a/TextAdventures/README.md b/TextAdventures/README.md index d070c4b..d7a5ecd 100644 --- a/TextAdventures/README.md +++ b/TextAdventures/README.md @@ -7,19 +7,19 @@ You have to follow these steps in order to play this game - Clone this repository to your local machine (only if you haven't cloned this before) - ```sh - git clone https://github.com/salifm/cli-games.git + ```bash + git clone https://github.com/salif/cli-games.git ``` - Move to `TextAdventures` directory - ```sh + ```bash cd TextAdventures ``` -- ```sh +- ```bash npm install ``` -- ```sh +- ```bash npm run play ``` @@ -105,4 +105,3 @@ Before starting to create a new story, please read this guidelines. - You must specify `true` to the `over` key if the game is over, and otherwise `false`. If it is `true`, you must add another key called `win` and the value must be a boolean value related with victory or lose. - You can nest more and more options inside `answers` table as you did before. - Enjoy! - diff --git a/TextAdventures/index.js b/TextAdventures/index.js index 75974eb..6e3168a 100644 --- a/TextAdventures/index.js +++ b/TextAdventures/index.js @@ -1,40 +1,40 @@ -const prompts = require('prompts'); -const stories = require('./stories.json'); +const prompts = require('prompts') +const stories = require('./stories.json') -let response = {}; -response.value = {}; -response.value.description = "Choose your story!"; -let node = stories.stories; +let response = {} +response.value = {} +response.value.description = "Choose your story!" +let node = stories.stories function getValues(n) { - let choices = []; + let choices = [] for (let s of n) { - choices.push({title: s.title, value: s}) + choices.push({ title: s.title, value: s }) } - return choices; + return choices } /*Salif's coloring function*/ function clr(text, color) { - var code = { red: 91, green: 92, blue: 34, cian: 96, yellow: 93 }[color]; - if (code) return "\x1b[" + code + "m" + text + "\x1b[0m"; + var code = { red: 91, green: 92, blue: 34, cian: 96, yellow: 93 }[color] + if (code) return "\x1b[" + code + "m" + text + "\x1b[0m" } (async () => { while (true) { - response = await prompts({ - type: 'select', - name: 'value', - message: response.value.description, - choices: getValues(node), - hint: '- Space to select. Return to submit' - }); - if (response.value.over) { - console.log(clr(response.value.description, response.value.win ? "green" : "red")); - break; - } - node = response.value.answers; + response = await prompts({ + type: 'select', + name: 'value', + message: response.value.description, + choices: getValues(node), + hint: '- Space to select. Return to submit' + }) + if (response.value.over) { + console.log(clr(response.value.description, response.value.win ? "green" : "red")) + break + } + node = response.value.answers } -})(); +})() diff --git a/TextAdventures/package-lock.json b/TextAdventures/package-lock.json deleted file mode 100644 index 40bb2e8..0000000 --- a/TextAdventures/package-lock.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "text-adventures", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, - "prompts": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.2.1.tgz", - "integrity": "sha512-VObPvJiWPhpZI6C5m60XOzTfnYg/xc/an+r9VYymj9WJW3B/DIH+REzjpAACPf8brwPeP+7vz3bIim3S+AaMjw==", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.3" - } - }, - "sisteransi": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.3.tgz", - "integrity": "sha512-SbEG75TzH8G7eVXFSN5f9EExILKfly7SUvVY5DhhYLvfhKqhDFY0OzevWa/zwak0RLRfWS5AvfMWpd9gJvr5Yg==" - } - } -} diff --git a/TextAdventures/package.json b/TextAdventures/package.json index be64b78..9cb57c2 100644 --- a/TextAdventures/package.json +++ b/TextAdventures/package.json @@ -1,28 +1,28 @@ { - "name": "text-adventures", - "version": "1.0.0", - "description": "A text adventures game for Salif's CLI game collection", - "main": "index.js", - "scripts": { - "test": "test", - "play": "node index.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/salifm/cli-games.git" - }, - "keywords": [ - "text-adventure", - "cli", - "game" - ], - "author": "Seniru Pasan", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/salifm/cli-games/issues" - }, - "homepage": "https://github.com/salifm/cli-games#readme", - "dependencies": { - "prompts": "^2.2.1" - } -} + "name": "text-adventures", + "version": "1.0.0", + "description": "A text adventures game for Salif's CLI game collection", + "main": "index.js", + "scripts": { + "test": "test", + "play": "node index.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/salif/cli-games.git" + }, + "keywords": [ + "text-adventure", + "cli", + "game" + ], + "author": "Seniru Pasan", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/salif/cli-games/issues" + }, + "homepage": "https://github.com/salif/cli-games#readme", + "dependencies": { + "prompts": "^2.2.1" + } +} \ No newline at end of file diff --git a/TextAdventures/stories.json b/TextAdventures/stories.json index 82c945b..087b072 100644 --- a/TextAdventures/stories.json +++ b/TextAdventures/stories.json @@ -1,275 +1,275 @@ { - "stories": [ - { - "title": "The hello world story", - "description": "\nOnce upon a time - not very long ago - lived a random citizen called Eric. He didn't show interest in anything at all! One day some of his nerdy friends invited him for an event. Actually it was about a technology exhibtion. Would you make Eric go to that event on that day?\n", - "answers": [ - { - "title": "Yes", - "description": "\nGreat! On that day you went there with a fresh-looking suite for the sake of your sakes. Although it was not much dull for Eric that day. He found and made many new pals. Also there were some rooms that are open for the exhibition. There were many rooms too!\n", - "over": false, - "answers": [ - { - "title": "Just stay and chat with your pals", - "description": "\nNice chat! But all of your day ended just like that. You feel sleepy now - and of course the exhibition was over. Go to the bed buddy :D\n", - "over": true, - "win": false - }, - { - "title": "Go to the gaming centre", - "description": "\nIncredible! You beat many of your friends. But you made one wrong decision. You started betting and returned home with no money ;(\n", - "over": true, - "win": false - }, - { - "title": "Go to the cafe", - "description": "\nThe food were delicious! But they were prepared with no hygienic measures. So you had to meet the doctor and do nothing after that. Choose wisely next time!\n", - "over": true, - "win": false - }, - { - "title": "Go to Programmer arcade", - "description": "\nYou found that this room is very strange and you want to leave it very soon. But something tell that you stay there. Would you?\n", - "over": false, - "answers": [ - { - "title": "Stay here", - "description": "\nIt was very hard to stay there until you heard a description about programming. You feel little interest about it! Then the committe announced that they are giving lessons for novice programmers distributed some applications for the people who would like to join. What would you like to learn?", - "over": false, - "answers": [ - { - "title": "Java", - "description": "\nJava runs on more that 3 billion devices - they said. Finally you managed to write your first program. Then you run it with a big hope. And finally it displayed 'hello world' in your console. You gazed at it very happily!", - "over": true, - "win": true - }, - { - "title": "Javascript", - "description": "\nYou quickly realised JS is just an awesome language. Finally you managed to write your first program. Then you run it with a big hope. And finally it displayed 'hello world' in your console. You gazed at it very happily!", - "over": true, - "win": true - }, - { - "title": "Python", - "description": "\nThe most popular programming language in the world. You wonder how a reptile can change the world :D Finally you managed to write your first program. Then you run it with a big hope. And finally it displayed 'hello world' in your console. You gazed at it very happily!", - "over": true, - "win": true - }, - { - "title": "Assembly", - "description": "\nAssembly is like the core of many things - including programming languages and OS. But this is no good for beginners. You fell discouraged and started hating programming :(", - "over": true, - "win": false - }, - { - "title": "C++", - "description": "\nIt seems to be hard. But you started loving it! Finally you managed to write your first program. Then you run it with a big hope. And finally it displayed 'hello world' in your console. You gazed at it very happily!", - "over": true, - "win": true - }, - { - "title": "Lua", - "description": "\nLua - a small but a powerful language. You quickly got the language. Finally you managed to write your first program. Then you run it with a big hope. And finally it displayed 'hello world' in your console. You gazed at it very happily!", - "over": true, - "win": true - } - ] - }, - { - "title": "Get out soon", - "description": "\nHuh? Bad choice you made. Better luck next time!", - "over": true, - "win": false - } - ] - } - ] - }, - { - "title": "No", - "description": "\nSleepy monster! Just stay there for your entire life ....", - "over": true, - "win": false - } - ] - }, - { - "title": "A day in the haunted house", - "description": "\nYou had many friends - both good and bad. And you were too popular among them. One day your friends gave you a challenge to stay a night in the haunted house on the top of the lonely mountain.\nAccept this challenge?", - "answers": [ - { - "title": "I'm not gonna accept their silly challenges", - "description": "\nWell you lose the challenge, also your reputation among your friends. Now they never gonna respect you!", - "over": true, - "win": false - }, - { - "title": "Sure! I'm always ready for challenges", - "over": false, - "description": "\nFinally the day came. You went to the freaky haunted house with the help of your friends. It looked very spooky! And you heard weird sounds of wolfs and owls outside. It's the time to get that brave decision. Would you get into the house?", - "answers": [ - { - "title": "I dont want to lose my life", - "description": "\nSkipping challenges is bad. You lose your friends!", - "over": true, - "win": false - }, - { - "title": "Yes, let's go in!", - "description": "\nYou went in. And your silly friends left you here and went home. The door closed by itself. You tried to open it but it's locked. Now you have to escape this freaky house. But you have no idea about what to do next.\nYou looked around to find a source of light and found a switch to turn on the lights. And you found few places with that dimmed light!", - "over": false, - "answers": [ - { - "title": "Go to Kitchen", - "over": false, - "description": "\nYou wondered how did you think this as a kitchen. There are only few utensils which were worn out already. To make it worse, there were lots of rats and cockroaches on the floor. You wanted to run out of the room but the door that you entered closed behind you.", - "answers": [ - { - "title": "I can't get out of here anyway. Let me lose my life", - "description": "\nAnd you took a blunt knife to kill yourself. You hit yourself and died with lots of pain!", - "over": true, - "win": false - }, - { - "title": "Follow the trail of those shitty creatures", - "description": "\nYou followed them and found a died body lying out there. It seems there is something in his pocket. Get it?", - "over": false, - "answers": [ - { - "title": "Yes", - "description": "\nIt was a hungry zombie who was looking for a fresh brain. You lose your precise brain and dead", - "over": true, - "win": false - }, - { - "title": "No", - "description": "\nThen you sent your hand through your own pocket to find something useful. Then you found a torch. You switched it on, and then you found a pathway to a hidden room in ground. Wanna go inside?", - "over": false, - "answers": [ - { - "title": "Yes", - "description": "\nIt was not a room actually, but an exit! You stayed there until the morning and told your friends about the things you did. Everyone were surprised!", - "over": true, - "win": true - }, - { - "title": "No", - "description": "\nBy the way you wake up the sleeping zombie who was in a great hunger. You lost your brain and your precious brain!", - "over": true, - "win": false - } - ] - } - ] - }, - { - "title": "Eat those animals! I can't live without food", - "description": "\nThey were tasty than you thought. But at the same time they were poisonous. You dead there!", - "over": true, - "win": false - } - ] - }, - { - "title": "Go to Washroom", - "description": "\nIt's sure the washroom have not been cleaned for ages. You don't have any idea what are doing here even.", - "over": false, - "answers": [ - { - "title": "Look around", - "description": "\nYou saw a window which leads to out. Though it's located quiet above. Escape?", - "over": false, - "answers": [ - { - "title": "Yes", - "description": "\nYou tried your best to reach the window, But you accidently slipped and hit your head hard on the floor. Then you felt nothing!\n\nEhm! I mean you are dead", - "over": true, - "win": false - }, - { - "title": "No", - "description": "\nAnd then you found something glittering in the bath tub. You want to touch it but your sixth sense says not to touch it", - "over": false, - "answers": [ - { - "title": "I don't care. Get it!", - "description": "\nAnd then a soul came and thanked you for freeing him from this curse. He told you everything and let you away from this house. And the good news is that this house is not haunted anymore!", - "over": true, - "win": true - }, - { - "title": "If my sixth sense says no, then no!", - "description": "\nThat object mush have cursed! You burned because of something came from that glittering object", - "over": true, - "win": false - } - ] - } - ] - }, - { - "title": "Have a quick wash", - "description": "\nThe water was poisoned as it was not used for ages and creepy works of animals. You dead by poisoning!", - "over": true, - "win": false - }, - { - "title": "Get out", - "description": "\nIt seems like a soul have sensed you when you were inside the washroom. And that bad soul started haunting you forever!", - "win": false, - "over": true - } - ] - }, - { - "title": "Go upstairs", - "description": "\nUpstair was nothing but full of valuable objects", - "over": false, - "answers": [ - { - "title": "I'm not sure about anything in this house. I'll go down", - "description": "\nActually the steps were too old that they can't carry you anymore. It break down instantly making you dead", - "over": true, - "win": false - }, - { - "title": "Hey look! There's an opened window. Let's jump out of there", - "description": "\nYou managed to reach that window and jumped down. But it was too high and you had severe fractures", - "over": true, - "win": false - }, - { - "title": "Hey! There's a box. Let's open it!", - "description": "\nIncredible! You found a treasure inside that box. Luckily you also found a key to leave this haunted house. And you lived a very rich life after that day", - "over": true, - "win": true - }, - { - "title": "Look! There are lots of gold here! Let's grab a few!", - "description": "\nYou started grabbing one by one. Eventually you disturbed the sleep of the beasts who lived their peacefully. Now they are going to have you for the dinner", - "over": true, - "win": false - } - ] - }, - { - "title": "Go to the store room", - "over": true, - "win": false, - "description": "\nThere were lots of garbage there. You peeked inside an old pot which seemed to be valuable. But unfortunately you wake up the snake who was sleeping peacefully there and dead by it" - } - ] - } - ] - } - ] - }, - { - "title": "The unknown story", - "description": "No story here!", - "over": true, - "win": false - } - ], - "over": false + "stories": [ + { + "title": "The hello world story", + "description": "\nOnce upon a time - not very long ago - lived a random citizen called Eric. He didn't show interest in anything at all! One day some of his nerdy friends invited him for an event. Actually it was about a technology exhibtion. Would you make Eric go to that event on that day?\n", + "answers": [ + { + "title": "Yes", + "description": "\nGreat! On that day you went there with a fresh-looking suite for the sake of your sakes. Although it was not much dull for Eric that day. He found and made many new pals. Also there were some rooms that are open for the exhibition. There were many rooms too!\n", + "over": false, + "answers": [ + { + "title": "Just stay and chat with your pals", + "description": "\nNice chat! But all of your day ended just like that. You feel sleepy now - and of course the exhibition was over. Go to the bed buddy :D\n", + "over": true, + "win": false + }, + { + "title": "Go to the gaming centre", + "description": "\nIncredible! You beat many of your friends. But you made one wrong decision. You started betting and returned home with no money ;(\n", + "over": true, + "win": false + }, + { + "title": "Go to the cafe", + "description": "\nThe food were delicious! But they were prepared with no hygienic measures. So you had to meet the doctor and do nothing after that. Choose wisely next time!\n", + "over": true, + "win": false + }, + { + "title": "Go to Programmer arcade", + "description": "\nYou found that this room is very strange and you want to leave it very soon. But something tell that you stay there. Would you?\n", + "over": false, + "answers": [ + { + "title": "Stay here", + "description": "\nIt was very hard to stay there until you heard a description about programming. You feel little interest about it! Then the committe announced that they are giving lessons for novice programmers distributed some applications for the people who would like to join. What would you like to learn?", + "over": false, + "answers": [ + { + "title": "Java", + "description": "\nJava runs on more that 3 billion devices - they said. Finally you managed to write your first program. Then you run it with a big hope. And finally it displayed 'hello world' in your console. You gazed at it very happily!", + "over": true, + "win": true + }, + { + "title": "Javascript", + "description": "\nYou quickly realised JS is just an awesome language. Finally you managed to write your first program. Then you run it with a big hope. And finally it displayed 'hello world' in your console. You gazed at it very happily!", + "over": true, + "win": true + }, + { + "title": "Python", + "description": "\nThe most popular programming language in the world. You wonder how a reptile can change the world :D Finally you managed to write your first program. Then you run it with a big hope. And finally it displayed 'hello world' in your console. You gazed at it very happily!", + "over": true, + "win": true + }, + { + "title": "Assembly", + "description": "\nAssembly is like the core of many things - including programming languages and OS. But this is no good for beginners. You fell discouraged and started hating programming :(", + "over": true, + "win": false + }, + { + "title": "C++", + "description": "\nIt seems to be hard. But you started loving it! Finally you managed to write your first program. Then you run it with a big hope. And finally it displayed 'hello world' in your console. You gazed at it very happily!", + "over": true, + "win": true + }, + { + "title": "Lua", + "description": "\nLua - a small but a powerful language. You quickly got the language. Finally you managed to write your first program. Then you run it with a big hope. And finally it displayed 'hello world' in your console. You gazed at it very happily!", + "over": true, + "win": true + } + ] + }, + { + "title": "Get out soon", + "description": "\nHuh? Bad choice you made. Better luck next time!", + "over": true, + "win": false + } + ] + } + ] + }, + { + "title": "No", + "description": "\nSleepy monster! Just stay there for your entire life ....", + "over": true, + "win": false + } + ] + }, + { + "title": "A day in the haunted house", + "description": "\nYou had many friends - both good and bad. And you were too popular among them. One day your friends gave you a challenge to stay a night in the haunted house on the top of the lonely mountain.\nAccept this challenge?", + "answers": [ + { + "title": "I'm not gonna accept their silly challenges", + "description": "\nWell you lose the challenge, also your reputation among your friends. Now they never gonna respect you!", + "over": true, + "win": false + }, + { + "title": "Sure! I'm always ready for challenges", + "over": false, + "description": "\nFinally the day came. You went to the freaky haunted house with the help of your friends. It looked very spooky! And you heard weird sounds of wolfs and owls outside. It's the time to get that brave decision. Would you get into the house?", + "answers": [ + { + "title": "I dont want to lose my life", + "description": "\nSkipping challenges is bad. You lose your friends!", + "over": true, + "win": false + }, + { + "title": "Yes, let's go in!", + "description": "\nYou went in. And your silly friends left you here and went home. The door closed by itself. You tried to open it but it's locked. Now you have to escape this freaky house. But you have no idea about what to do next.\nYou looked around to find a source of light and found a switch to turn on the lights. And you found few places with that dimmed light!", + "over": false, + "answers": [ + { + "title": "Go to Kitchen", + "over": false, + "description": "\nYou wondered how did you think this as a kitchen. There are only few utensils which were worn out already. To make it worse, there were lots of rats and cockroaches on the floor. You wanted to run out of the room but the door that you entered closed behind you.", + "answers": [ + { + "title": "I can't get out of here anyway. Let me lose my life", + "description": "\nAnd you took a blunt knife to kill yourself. You hit yourself and died with lots of pain!", + "over": true, + "win": false + }, + { + "title": "Follow the trail of those shitty creatures", + "description": "\nYou followed them and found a died body lying out there. It seems there is something in his pocket. Get it?", + "over": false, + "answers": [ + { + "title": "Yes", + "description": "\nIt was a hungry zombie who was looking for a fresh brain. You lose your precise brain and dead", + "over": true, + "win": false + }, + { + "title": "No", + "description": "\nThen you sent your hand through your own pocket to find something useful. Then you found a torch. You switched it on, and then you found a pathway to a hidden room in ground. Wanna go inside?", + "over": false, + "answers": [ + { + "title": "Yes", + "description": "\nIt was not a room actually, but an exit! You stayed there until the morning and told your friends about the things you did. Everyone were surprised!", + "over": true, + "win": true + }, + { + "title": "No", + "description": "\nBy the way you wake up the sleeping zombie who was in a great hunger. You lost your brain and your precious brain!", + "over": true, + "win": false + } + ] + } + ] + }, + { + "title": "Eat those animals! I can't live without food", + "description": "\nThey were tasty than you thought. But at the same time they were poisonous. You dead there!", + "over": true, + "win": false + } + ] + }, + { + "title": "Go to Washroom", + "description": "\nIt's sure the washroom have not been cleaned for ages. You don't have any idea what are doing here even.", + "over": false, + "answers": [ + { + "title": "Look around", + "description": "\nYou saw a window which leads to out. Though it's located quiet above. Escape?", + "over": false, + "answers": [ + { + "title": "Yes", + "description": "\nYou tried your best to reach the window, But you accidently slipped and hit your head hard on the floor. Then you felt nothing!\n\nEhm! I mean you are dead", + "over": true, + "win": false + }, + { + "title": "No", + "description": "\nAnd then you found something glittering in the bath tub. You want to touch it but your sixth sense says not to touch it", + "over": false, + "answers": [ + { + "title": "I don't care. Get it!", + "description": "\nAnd then a soul came and thanked you for freeing him from this curse. He told you everything and let you away from this house. And the good news is that this house is not haunted anymore!", + "over": true, + "win": true + }, + { + "title": "If my sixth sense says no, then no!", + "description": "\nThat object mush have cursed! You burned because of something came from that glittering object", + "over": true, + "win": false + } + ] + } + ] + }, + { + "title": "Have a quick wash", + "description": "\nThe water was poisoned as it was not used for ages and creepy works of animals. You dead by poisoning!", + "over": true, + "win": false + }, + { + "title": "Get out", + "description": "\nIt seems like a soul have sensed you when you were inside the washroom. And that bad soul started haunting you forever!", + "win": false, + "over": true + } + ] + }, + { + "title": "Go upstairs", + "description": "\nUpstair was nothing but full of valuable objects", + "over": false, + "answers": [ + { + "title": "I'm not sure about anything in this house. I'll go down", + "description": "\nActually the steps were too old that they can't carry you anymore. It break down instantly making you dead", + "over": true, + "win": false + }, + { + "title": "Hey look! There's an opened window. Let's jump out of there", + "description": "\nYou managed to reach that window and jumped down. But it was too high and you had severe fractures", + "over": true, + "win": false + }, + { + "title": "Hey! There's a box. Let's open it!", + "description": "\nIncredible! You found a treasure inside that box. Luckily you also found a key to leave this haunted house. And you lived a very rich life after that day", + "over": true, + "win": true + }, + { + "title": "Look! There are lots of gold here! Let's grab a few!", + "description": "\nYou started grabbing one by one. Eventually you disturbed the sleep of the beasts who lived their peacefully. Now they are going to have you for the dinner", + "over": true, + "win": false + } + ] + }, + { + "title": "Go to the store room", + "over": true, + "win": false, + "description": "\nThere were lots of garbage there. You peeked inside an old pot which seemed to be valuable. But unfortunately you wake up the snake who was sleeping peacefully there and dead by it" + } + ] + } + ] + } + ] + }, + { + "title": "The unknown story", + "description": "No story here!", + "over": true, + "win": false + } + ], + "over": false } \ No newline at end of file diff --git a/TicTacToe/index.js b/TicTacToe/index.js index 7551ece..4a33223 100644 --- a/TicTacToe/index.js +++ b/TicTacToe/index.js @@ -1,128 +1,128 @@ -let player = 1; -let p1 = null; -let p2 = null; -let nl = '\n -------------\n'; +let player = 1 +let p1 = null +let p2 = null +let nl = '\n -------------\n' let board = [ [' ', ' ', ' '], [' ', ' ', ' '], [' ', ' ', ' '], -]; -let gameInit = false; +] +let gameInit = false -let input = process.stdin; +let input = process.stdin function print(out) { - process.stdout.write(out); + process.stdout.write(out) } function printBoard() { - let res = ' 1 2 3 \n' + nl; + let res = ' 1 2 3 \n' + nl for (let row in board) { - res += (1 - -row) + " | " + board[row].join(' | ') + ' |\n' + nl; + res += (1 - -row) + " | " + board[row].join(' | ') + ' |\n' + nl } - print(res); + print(res) } function main() { if (!gameInit) { - print("Please enter Player 1 name: "); + print("Please enter Player 1 name: ") } } function prompt() { - print(`\nIt's ${clr(player == 1 ? p1 : p2, 'yellow')}'s turn. \nPlease enter the position of row and column you like to play: `); + print(`\nIt's ${clr(player == 1 ? p1 : p2, 'yellow')}'s turn. \nPlease enter the position of row and column you like to play: `) } function check(data) { - data = data.toString().replace(/\n/, '').trim(); + data = data.toString().replace(/\n/, '').trim() if (/^(1|2|3)\s+(1|2|3)$/gi.test(data)) { - return data.toString().replace(/\s+/g, ' ').split(' '); + return data.toString().replace(/\s+/g, ' ').split(' ') } - print(clr("Wrong input!\n", 'red')); - prompt(); - return false; + print(clr("Wrong input!\n", 'red')) + prompt() + return false } function isWinner(p) { - let m = p == 1 ? 'X' : 'O'; - return checkDiagonals(m) || checkRows(m) || checkColumns(m); + let m = p == 1 ? 'X' : 'O' + return checkDiagonals(m) || checkRows(m) || checkColumns(m) } function isStuck() { - let isStuck = true; - for(let i=0; i<3; i++) { - for(let j=0; j<3; j++) { - if(board[i][j] == ' ') { - isStuck = false; + let isStuck = true + for (let i = 0; i < 3; i++) { + for (let j = 0; j < 3; j++) { + if (board[i][j] == ' ') { + isStuck = false } } } - return isStuck; + return isStuck } function checkRows(m) { for (let row of board) { - if (row[0] == m && row[1] == m && row[2] == m) return true; + if (row[0] == m && row[1] == m && row[2] == m) return true } - return false; + return false } function checkColumns(m) { for (let col in board) { - if (board[0][col] === m && board[1][col] === m && board[2][col] === m) return true; + if (board[0][col] === m && board[1][col] === m && board[2][col] === m) return true } - return false; + return false } function checkDiagonals(m) { - return (board[0][0] === m && board[1][1] === m && board[2][2] === m) || (board[2][0] === m && board[1][1] === m && board[0][2] === m); + return (board[0][0] === m && board[1][1] === m && board[2][2] === m) || (board[2][0] === m && board[1][1] === m && board[0][2] === m) } -/*Coloring function by Salifm*/ +/*Coloring function by Salif*/ function clr(text, color) { - var code = { red: 91, green: 92, blue: 34, cian: 96, yellow: 93 }[color]; - if (code) return "\x1b[" + code + "m" + text + "\x1b[0m"; + var code = { red: 91, green: 92, blue: 34, cian: 96, yellow: 93 }[color] + if (code) return "\x1b[" + code + "m" + text + "\x1b[0m" } /**LISTENERS**/ input.on('data', data => { - if (!gameInit) { - if (!p1) { - p1 = data.toString().replace(/\n/g, ''); - print("Please enter Player 2 name: "); - } - else if (!p2) { - p2 = data.toString().replace(/\n/g, ''); - gameInit = true; - printBoard(); - prompt(); - } - } else { - if (check(data)) { - let i = check(data).map(x => parseInt(x) - 1); - if (board[i[0]][i[1]] !== ' ') { - print(clr('Invalid move! Somebody has already marked it down\n', 'red')); - prompt(); - } else { - board[i[0]][i[1]] = player == 1 ? 'X' : 'O'; + if (!gameInit) { + if (!p1) { + p1 = data.toString().replace(/\n/g, '') + print("Please enter Player 2 name: ") + } + else if (!p2) { + p2 = data.toString().replace(/\n/g, '') + gameInit = true + printBoard() + prompt() + } + } else { + if (check(data)) { + let i = check(data).map(x => parseInt(x) - 1) + if (board[i[0]][i[1]] !== ' ') { + print(clr('Invalid move! Somebody has already marked it down\n', 'red')) + prompt() + } else { + board[i[0]][i[1]] = player == 1 ? 'X' : 'O' if (isWinner(player)) { - printBoard(); - print(clr(`Congrats! ${player == 1 ? p1 : p2} is the winner!!!\n`, 'green')); - process.exit(); + printBoard() + print(clr(`Congrats! ${player == 1 ? p1 : p2} is the winner!!!\n`, 'green')) + process.exit() } if (isStuck()) { - printBoard(); - print(clr(`Nobody wins\n`, 'yellow')); - process.exit(); + printBoard() + print(clr(`Nobody wins\n`, 'yellow')) + process.exit() } - player = player == 1 ? 2 : 1; - printBoard(); - prompt(); - } - } - } + player = player == 1 ? 2 : 1 + printBoard() + prompt() + } + } + } }) main() diff --git a/TicTacToe/package-lock.json b/TicTacToe/package-lock.json deleted file mode 100644 index 48e341a..0000000 --- a/TicTacToe/package-lock.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "lockfileVersion": 1 -} From 07c653f327a47bb93fbe92c45b1c28a2bfe104a6 Mon Sep 17 00:00:00 2001 From: Salif Mehmed Date: Tue, 10 Oct 2023 02:06:48 +0300 Subject: [PATCH 15/20] Move Hangman translation files --- Hangman/hangman.py | 9 ++++++--- Hangman/index.js | 20 ++++++++++++------- Hangman/locales/bg/locale.json | 12 +++++++++++ .../bg.json => locales/bg/words/all.json} | 10 ---------- Hangman/locales/cs/locale.json | 12 +++++++++++ .../cs.json => locales/cs/words/all.json} | 10 ---------- Hangman/locales/de/locale.json | 12 +++++++++++ .../de.json => locales/de/words/all.json} | 10 ---------- Hangman/locales/en/locale.json | 12 +++++++++++ .../en-us.json => locales/en/words/all.json} | 10 ---------- .../en/words/code.json} | 10 ---------- Hangman/locales/es/locale.json | 12 +++++++++++ .../es.json => locales/es/words/all.json} | 10 ---------- Hangman/locales/fr/locale.json | 12 +++++++++++ .../fr.json => locales/fr/words/all.json} | 10 ---------- Hangman/locales/gr/locale.json | 12 +++++++++++ .../gr.json => locales/gr/words/all.json} | 10 ---------- Hangman/locales/hr/locale.json | 12 +++++++++++ .../hr.json => locales/hr/words/all.json} | 10 ---------- Hangman/locales/id/locale.json | 12 +++++++++++ .../id.json => locales/id/words/all.json} | 10 ---------- Hangman/locales/it/locale.json | 12 +++++++++++ .../it.json => locales/it/words/all.json} | 10 ---------- Hangman/locales/jp/locale.json | 12 +++++++++++ .../jp.json => locales/jp/words/all.json} | 10 ---------- Hangman/locales/lt-lt/locale.json | 12 +++++++++++ .../lt-lt/words/all.json} | 10 ---------- Hangman/locales/pt-br/locale.json | 12 +++++++++++ .../pt-br/words/all.json} | 10 ---------- Hangman/locales/ru-ru/locale.json | 12 +++++++++++ .../ru-ru/words/all.json} | 10 ---------- Hangman/locales/se/locale.json | 12 +++++++++++ .../se.json => locales/se/words/all.json} | 10 ---------- Hangman/locales/tr-tr/locale.json | 12 +++++++++++ .../tr-tr/words/all.json} | 11 ---------- Hangman/locales/vi-vn/locale.json | 12 +++++++++++ .../vi-vn/words/all.json} | 10 ---------- Hangman/locales/vi/locale.json | 12 +++++++++++ .../vi.json => locales/vi/words/all.json} | 10 ---------- Hangman/sort.js | 14 ++++++++----- 40 files changed, 244 insertions(+), 206 deletions(-) create mode 100644 Hangman/locales/bg/locale.json rename Hangman/{words/bg.json => locales/bg/words/all.json} (81%) create mode 100644 Hangman/locales/cs/locale.json rename Hangman/{words/cs.json => locales/cs/words/all.json} (81%) create mode 100644 Hangman/locales/de/locale.json rename Hangman/{words/de.json => locales/de/words/all.json} (77%) create mode 100644 Hangman/locales/en/locale.json rename Hangman/{words/en-us.json => locales/en/words/all.json} (99%) rename Hangman/{words/en-code.json => locales/en/words/code.json} (82%) create mode 100644 Hangman/locales/es/locale.json rename Hangman/{words/es.json => locales/es/words/all.json} (85%) create mode 100644 Hangman/locales/fr/locale.json rename Hangman/{words/fr.json => locales/fr/words/all.json} (77%) create mode 100644 Hangman/locales/gr/locale.json rename Hangman/{words/gr.json => locales/gr/words/all.json} (74%) create mode 100644 Hangman/locales/hr/locale.json rename Hangman/{words/hr.json => locales/hr/words/all.json} (76%) create mode 100644 Hangman/locales/id/locale.json rename Hangman/{words/id.json => locales/id/words/all.json} (98%) create mode 100644 Hangman/locales/it/locale.json rename Hangman/{words/it.json => locales/it/words/all.json} (73%) create mode 100644 Hangman/locales/jp/locale.json rename Hangman/{words/jp.json => locales/jp/words/all.json} (75%) create mode 100644 Hangman/locales/lt-lt/locale.json rename Hangman/{words/lt-lt.json => locales/lt-lt/words/all.json} (75%) create mode 100644 Hangman/locales/pt-br/locale.json rename Hangman/{words/pt-br.json => locales/pt-br/words/all.json} (81%) create mode 100644 Hangman/locales/ru-ru/locale.json rename Hangman/{words/ru-ru.json => locales/ru-ru/words/all.json} (83%) create mode 100644 Hangman/locales/se/locale.json rename Hangman/{words/se.json => locales/se/words/all.json} (81%) create mode 100644 Hangman/locales/tr-tr/locale.json rename Hangman/{words/tr-tr.json => locales/tr-tr/words/all.json} (70%) create mode 100644 Hangman/locales/vi-vn/locale.json rename Hangman/{words/vi-vn.json => locales/vi-vn/words/all.json} (69%) create mode 100644 Hangman/locales/vi/locale.json rename Hangman/{words/vi.json => locales/vi/words/all.json} (70%) mode change 100644 => 100755 Hangman/sort.js diff --git a/Hangman/hangman.py b/Hangman/hangman.py index 098dbab..7c17317 100644 --- a/Hangman/hangman.py +++ b/Hangman/hangman.py @@ -4,21 +4,24 @@ import json import pyfiglet -language = "en-us" +language = "en" if(len(sys.argv) > 1): language = sys.argv[1] print(pyfiglet.figlet_format("Hello!")) -with open("words/" + language + ".json") as json_file: +with open("locales/" + language + "/locale.json") as json_file: db = json.load(json_file) +with open("locales/" + language + "/words/all.json") as json_file: + db_words = json.load(json_file) + word = [] wordl = 0 obfWord = [] playedLetters = [] guessesRemaining = 8 -words = db["words"] +words = db_words["words"] def showLetter(data): global word, wordl, obfWord diff --git a/Hangman/index.js b/Hangman/index.js index 2adc0f0..54b9015 100755 --- a/Hangman/index.js +++ b/Hangman/index.js @@ -22,8 +22,8 @@ class Game { class Hangman { constructor(args) { this.language = args.language - this.db = args.db - this.words = this.db.words + this.db = args.locale + this.words = args.words.words this.pics = args.pics this.colors = args.colors this.input = args.input @@ -125,14 +125,20 @@ class Hangman { } } -let language = "en-us" -const arg = process.argv[2] -if (arg != undefined && /^[A-Za-z\-]{1,}$/.test(arg)) { - language = arg +let language = "en" +let words = "all" +const argLanguage = process.argv[2] +if (argLanguage != undefined && /^[A-Za-z\-]{1,}$/.test(argLanguage)) { + language = argLanguage + argWords = process.argv[3] + if (argWords != undefined) { + words = argWords + } } new Hangman({ - db: require("./words/" + language + ".json"), + locale: require(`./locales/${language}/locale.json`), + words: require(`./locales/${language}/words/${words}.json`), pics: require('./hangarts.json'), colors: Colors, input: process.stdin, diff --git a/Hangman/locales/bg/locale.json b/Hangman/locales/bg/locale.json new file mode 100644 index 0000000..b0826b9 --- /dev/null +++ b/Hangman/locales/bg/locale.json @@ -0,0 +1,12 @@ +{ + "language": "bg", + "played": "Буквата, която написа вече е изиграна!", + "you_won": "Ти спечели!", + "you_lose": "Ти загуби!", + "word_was": "Думата беше:", + "one_char": "Напиши само една буква!", + "remaining": "оставащи познавания", + "letters": "Изиграни букви:", + "guess": "Познай буква:", + "hangman": "Бесеница" +} \ No newline at end of file diff --git a/Hangman/words/bg.json b/Hangman/locales/bg/words/all.json similarity index 81% rename from Hangman/words/bg.json rename to Hangman/locales/bg/words/all.json index 1c944eb..f439951 100644 --- a/Hangman/words/bg.json +++ b/Hangman/locales/bg/words/all.json @@ -1,15 +1,5 @@ { - "language": "bg", "regexp": "^[абвгдежзийклмнопрстуфхцчшщъьюя]{3,}$", - "played": "Буквата, която написа вече е изиграна!", - "you_won": "Ти спечели!", - "you_lose": "Ти загуби!", - "word_was": "Думата беше:", - "one_char": "Напиши само една буква!", - "remaining": "оставащи познавания", - "letters": "Изиграни букви:", - "guess": "Познай буква:", - "hangman": "Бесеница", "words": [ "абстракция", "алгоритъм", diff --git a/Hangman/locales/cs/locale.json b/Hangman/locales/cs/locale.json new file mode 100644 index 0000000..a10ce34 --- /dev/null +++ b/Hangman/locales/cs/locale.json @@ -0,0 +1,12 @@ +{ + "language": "cs", + "played": "Napsané písmeno již bylo zahráno!", + "you_won": "Vyhráli jste!", + "you_lose": "Prohráli jste!", + "word_was": "Slovo bylo:", + "one_char": "Napište pouze jeden znak!", + "remaining": "zbývající pokusy", + "letters": "Zahraná písmena:", + "guess": "Uhádněte písmeno:", + "hangman": "Oběšenec" +} \ No newline at end of file diff --git a/Hangman/words/cs.json b/Hangman/locales/cs/words/all.json similarity index 81% rename from Hangman/words/cs.json rename to Hangman/locales/cs/words/all.json index 1532504..1d74e55 100644 --- a/Hangman/words/cs.json +++ b/Hangman/locales/cs/words/all.json @@ -1,14 +1,4 @@ { - "language": "cs", - "played": "Napsané písmeno již bylo zahráno!", - "you_won": "Vyhráli jste!", - "you_lose": "Prohráli jste!", - "word_was": "Slovo bylo:", - "one_char": "Napište pouze jeden znak!", - "remaining": "zbývající pokusy", - "letters": "Zahraná písmena:", - "guess": "Uhádněte písmeno:", - "hangman": "Oběšenec", "words": [ "algoritmy", "argumenty", diff --git a/Hangman/locales/de/locale.json b/Hangman/locales/de/locale.json new file mode 100644 index 0000000..ede7aba --- /dev/null +++ b/Hangman/locales/de/locale.json @@ -0,0 +1,12 @@ +{ + "language": "de", + "played": "Der Buchstabe wurde von dir schon ausgewählt!", + "you_won": "Du hast gewonnen!", + "you_lose": "Du hast verloren!", + "word_was": "Das Wort war:", + "one_char": "Nur einen Buchstaben!", + "remaining": "verbleibende Versuche", + "letters": "Gewählte Buchstaben:", + "guess": "Wähle einen Buchstaben:", + "hangman": "Galgenraten" +} \ No newline at end of file diff --git a/Hangman/words/de.json b/Hangman/locales/de/words/all.json similarity index 77% rename from Hangman/words/de.json rename to Hangman/locales/de/words/all.json index 92ed33c..fcd1ded 100644 --- a/Hangman/words/de.json +++ b/Hangman/locales/de/words/all.json @@ -1,14 +1,4 @@ { - "language": "de", - "played": "Der Buchstabe wurde von dir schon ausgewählt!", - "you_won": "Du hast gewonnen!", - "you_lose": "Du hast verloren!", - "word_was": "Das Wort war:", - "one_char": "Nur einen Buchstaben!", - "remaining": "verbleibende Versuche", - "letters": "Gewählte Buchstaben:", - "guess": "Wähle einen Buchstaben:", - "hangman": "Galgenraten", "words": [ "abstraktion", "algorithmus", diff --git a/Hangman/locales/en/locale.json b/Hangman/locales/en/locale.json new file mode 100644 index 0000000..8302305 --- /dev/null +++ b/Hangman/locales/en/locale.json @@ -0,0 +1,12 @@ +{ + "language": "en", + "played": "The letter you wrote was already played!", + "you_won": "You won!", + "you_lose": "You lose!", + "word_was": "The word was:", + "one_char": "Write just one character!", + "remaining": "guesses remaining", + "letters": "Letters already played:", + "guess": "Guess letter:", + "hangman": "Hangman" +} \ No newline at end of file diff --git a/Hangman/words/en-us.json b/Hangman/locales/en/words/all.json similarity index 99% rename from Hangman/words/en-us.json rename to Hangman/locales/en/words/all.json index b131e65..bd9db07 100644 --- a/Hangman/words/en-us.json +++ b/Hangman/locales/en/words/all.json @@ -1,15 +1,5 @@ { - "language": "en-us", "regexp": "^[a-z]{3,}$", - "played": "The letter you wrote was already played!", - "you_won": "You won!", - "you_lose": "You lose!", - "word_was": "The word was:", - "one_char": "Write just one character!", - "remaining": "guesses remaining", - "letters": "Letters already played:", - "guess": "Guess letter:", - "hangman": "Hangman", "words": [ "aardvark", "abacus", diff --git a/Hangman/words/en-code.json b/Hangman/locales/en/words/code.json similarity index 82% rename from Hangman/words/en-code.json rename to Hangman/locales/en/words/code.json index 9de5e11..0f3ca3f 100644 --- a/Hangman/words/en-code.json +++ b/Hangman/locales/en/words/code.json @@ -1,15 +1,5 @@ { - "language": "en-code", "regexp": "^[a-z]{3,}$", - "played": "The letter you wrote was already played!", - "you_won": "You won!", - "you_lose": "You lose!", - "word_was": "The word was:", - "one_char": "Write just one character!", - "remaining": "guesses remaining", - "letters": "Letters already played:", - "guess": "Guess letter:", - "hangman": "Hangman", "words": [ "abstraction", "agile", diff --git a/Hangman/locales/es/locale.json b/Hangman/locales/es/locale.json new file mode 100644 index 0000000..6bbc225 --- /dev/null +++ b/Hangman/locales/es/locale.json @@ -0,0 +1,12 @@ +{ + "language": "es", + "played": "¡La letra que escribiste ya fue usada!", + "you_won": "¡Ganaste!", + "you_lose": "¡Perdiste!", + "word_was": "La palabra era:", + "one_char": "¡Escribe sólo un caracter!", + "remaining": "letras por adivinar", + "letters": "Letras que ya se usaron:", + "guess": "Adivina la letra:", + "hangman": "Ahorcado" +} \ No newline at end of file diff --git a/Hangman/words/es.json b/Hangman/locales/es/words/all.json similarity index 85% rename from Hangman/words/es.json rename to Hangman/locales/es/words/all.json index efe2066..1beb312 100644 --- a/Hangman/words/es.json +++ b/Hangman/locales/es/words/all.json @@ -1,14 +1,4 @@ { - "language": "es", - "played": "¡La letra que escribiste ya fue usada!", - "you_won": "¡Ganaste!", - "you_lose": "¡Perdiste!", - "word_was": "La palabra era:", - "one_char": "¡Escribe sólo un caracter!", - "remaining": "letras por adivinar", - "letters": "Letras que ya se usaron:", - "guess": "Adivina la letra:", - "hangman": "Ahorcado", "words": [ "activar", "adelantar", diff --git a/Hangman/locales/fr/locale.json b/Hangman/locales/fr/locale.json new file mode 100644 index 0000000..a078575 --- /dev/null +++ b/Hangman/locales/fr/locale.json @@ -0,0 +1,12 @@ +{ + "language": "fr", + "played": "La lettre que vous avez écrite a déjà été jouée!", + "you_won": "Vous avez gagné!", + "you_lose": "Vous avez perdu!", + "word_was": "Le mot était:", + "one_char": "Ecrivez un seul caractère!", + "remaining": "Essais restants:", + "letters": "Lettres déjà jouées:", + "guess": "Devinez une lettre:", + "hangman": "Pendu" +} \ No newline at end of file diff --git a/Hangman/words/fr.json b/Hangman/locales/fr/words/all.json similarity index 77% rename from Hangman/words/fr.json rename to Hangman/locales/fr/words/all.json index 128b9b3..46d06f8 100644 --- a/Hangman/words/fr.json +++ b/Hangman/locales/fr/words/all.json @@ -1,14 +1,4 @@ { - "language": "fr", - "played": "La lettre que vous avez écrite a déjà été jouée!", - "you_won": "Vous avez gagné!", - "you_lose": "Vous avez perdu!", - "word_was": "Le mot était:", - "one_char": "Ecrivez un seul caractère!", - "remaining": "Essais restants:", - "letters": "Lettres déjà jouées:", - "guess": "Devinez une lettre:", - "hangman": "Pendu", "words": [ "algorithmes", "ame", diff --git a/Hangman/locales/gr/locale.json b/Hangman/locales/gr/locale.json new file mode 100644 index 0000000..cab615f --- /dev/null +++ b/Hangman/locales/gr/locale.json @@ -0,0 +1,12 @@ +{ + "language": "gr", + "played": "Το γράμμα που έβαλες έχει ήδη χρησιμοποιηθεί!", + "you_won": "Κέρδισες!", + "you_lose": "Έχασες!", + "word_was": "Η λέξη ήταν:", + "one_char": "Γράψε μόνο έναν χαρακτήρα!", + "remaining": "Μαντεψιές που απέμειναν", + "letters": "Χρησιμοποιημένα γράμματα:", + "guess": "Μάντεψε γράμμα:", + "hangman": "Κρεμάλα" +} \ No newline at end of file diff --git a/Hangman/words/gr.json b/Hangman/locales/gr/words/all.json similarity index 74% rename from Hangman/words/gr.json rename to Hangman/locales/gr/words/all.json index 1a3ed76..e49922f 100644 --- a/Hangman/words/gr.json +++ b/Hangman/locales/gr/words/all.json @@ -1,14 +1,4 @@ { - "language": "gr", - "played": "Το γράμμα που έβαλες έχει ήδη χρησιμοποιηθεί!", - "you_won": "Κέρδισες!", - "you_lose": "Έχασες!", - "word_was": "Η λέξη ήταν:", - "one_char": "Γράψε μόνο έναν χαρακτήρα!", - "remaining": "Μαντεψιές που απέμειναν", - "letters": "Χρησιμοποιημένα γράμματα:", - "guess": "Μάντεψε γράμμα:", - "hangman": "Κρεμάλα", "words": [ "αλγόριθμοι", "ανάπτυξη", diff --git a/Hangman/locales/hr/locale.json b/Hangman/locales/hr/locale.json new file mode 100644 index 0000000..00a99b4 --- /dev/null +++ b/Hangman/locales/hr/locale.json @@ -0,0 +1,12 @@ +{ + "language": "hr", + "played": "Pismo ste već odabrali!", + "you_won": "Pobjedio si!", + "you_lose": "Izgubio si!", + "word_was": "Riječ je bila:", + "one_char": "Samo jedno slovo!", + "remaining": "preostali pokušaji", + "letters": "Odabrana slova:", + "guess": "Odaberite pismo:", + "hangman": "Vješala" +} \ No newline at end of file diff --git a/Hangman/words/hr.json b/Hangman/locales/hr/words/all.json similarity index 76% rename from Hangman/words/hr.json rename to Hangman/locales/hr/words/all.json index 93f9516..61dbbe8 100644 --- a/Hangman/words/hr.json +++ b/Hangman/locales/hr/words/all.json @@ -1,14 +1,4 @@ { - "language": "hr", - "played": "Pismo ste već odabrali!", - "you_won": "Pobjedio si!", - "you_lose": "Izgubio si!", - "word_was": "Riječ je bila:", - "one_char": "Samo jedno slovo!", - "remaining": "preostali pokušaji", - "letters": "Odabrana slova:", - "guess": "Odaberite pismo:", - "hangman": "Vješala", "words": [ "algoritmi", "argumenti", diff --git a/Hangman/locales/id/locale.json b/Hangman/locales/id/locale.json new file mode 100644 index 0000000..a074de4 --- /dev/null +++ b/Hangman/locales/id/locale.json @@ -0,0 +1,12 @@ +{ + "language": "id", + "played": "Huruf yang kamu tebak sudah dimainkan!", + "you_won": "Kamu menang!", + "you_lose": "Kamu kalah!", + "word_was": "Kata yang dimainkan adalah:", + "one_char": "Satu huruf lagi!", + "remaining": "tebakan lagi", + "letters": "Huruf yang sudah ditebak:", + "guess": "Tebak huruf:", + "hangman": "Hangman" +} \ No newline at end of file diff --git a/Hangman/words/id.json b/Hangman/locales/id/words/all.json similarity index 98% rename from Hangman/words/id.json rename to Hangman/locales/id/words/all.json index 597ccca..dda816f 100644 --- a/Hangman/words/id.json +++ b/Hangman/locales/id/words/all.json @@ -1,14 +1,4 @@ { - "language": "id", - "played": "Huruf yang kamu tebak sudah dimainkan!", - "you_won": "Kamu menang!", - "you_lose": "Kamu kalah!", - "word_was": "Kata yang dimainkan adalah:", - "one_char": "Satu huruf lagi!", - "remaining": "tebakan lagi", - "letters": "Huruf yang sudah ditebak:", - "guess": "Tebak huruf:", - "hangman": "Hangman", "words": [ "abad", "ada", diff --git a/Hangman/locales/it/locale.json b/Hangman/locales/it/locale.json new file mode 100644 index 0000000..d8ae42e --- /dev/null +++ b/Hangman/locales/it/locale.json @@ -0,0 +1,12 @@ +{ + "language": "it", + "played": "Questa lettera è già stata inserita!", + "you_won": "Hai vinto!", + "you_lose": "Hai perso!", + "word_was": "La parola era:", + "one_char": "Scrivi solo una lettera!", + "remaining": "tentativi rimasti", + "letters": "Lettere già inserite:", + "guess": "Inserisci una lettera:", + "hangman": "L'impiccato" +} \ No newline at end of file diff --git a/Hangman/words/it.json b/Hangman/locales/it/words/all.json similarity index 73% rename from Hangman/words/it.json rename to Hangman/locales/it/words/all.json index fdfb86e..3bb1d36 100644 --- a/Hangman/words/it.json +++ b/Hangman/locales/it/words/all.json @@ -1,14 +1,4 @@ { - "language": "it", - "played": "Questa lettera è già stata inserita!", - "you_won": "Hai vinto!", - "you_lose": "Hai perso!", - "word_was": "La parola era:", - "one_char": "Scrivi solo una lettera!", - "remaining": "tentativi rimasti", - "letters": "Lettere già inserite:", - "guess": "Inserisci una lettera:", - "hangman": "L'impiccato", "words": [ "algoritmo", "altare", diff --git a/Hangman/locales/jp/locale.json b/Hangman/locales/jp/locale.json new file mode 100644 index 0000000..deabe50 --- /dev/null +++ b/Hangman/locales/jp/locale.json @@ -0,0 +1,12 @@ +{ + "language": "jp", + "played": "あなたが書いた手紙はすでに使用されています!", + "you_won": "勝った!", + "you_lose": "失った!", + "word_was": "言葉は:", + "one_char": "1文字のみを入力してください!", + "remaining": "残りの推測", + "letters": "すでに再生された文字:", + "guess": "文字を推測する:", + "hangman": "絞首刑" +} \ No newline at end of file diff --git a/Hangman/words/jp.json b/Hangman/locales/jp/words/all.json similarity index 75% rename from Hangman/words/jp.json rename to Hangman/locales/jp/words/all.json index 1bfd2ea..4f3e365 100644 --- a/Hangman/words/jp.json +++ b/Hangman/locales/jp/words/all.json @@ -1,14 +1,4 @@ { - "language": "jp", - "played": "あなたが書いた手紙はすでに使用されています!", - "you_won": "勝った!", - "you_lose": "失った!", - "word_was": "言葉は:", - "one_char": "1文字のみを入力してください!", - "remaining": "残りの推測", - "letters": "すでに再生された文字:", - "guess": "文字を推測する:", - "hangman": "絞首刑", "words": [ "あそぶ", "あなた", diff --git a/Hangman/locales/lt-lt/locale.json b/Hangman/locales/lt-lt/locale.json new file mode 100644 index 0000000..5ea043e --- /dev/null +++ b/Hangman/locales/lt-lt/locale.json @@ -0,0 +1,12 @@ +{ + "language": "lt-lt", + "played": "Jūsų įvesta raidė jau buvo pateikta!", + "you_won": "Jūs laimėjote!", + "you_lose": "Jūs pralaimėjote!", + "word_was": "Žodis buvo:", + "one_char": "Įveskite tik vieną simbolį!", + "remaining": "likę spėjimai", + "letters": "Jau pateiktos raidės:", + "guess": "Spėkite raidę:", + "hangman": "Kartuvės" +} \ No newline at end of file diff --git a/Hangman/words/lt-lt.json b/Hangman/locales/lt-lt/words/all.json similarity index 75% rename from Hangman/words/lt-lt.json rename to Hangman/locales/lt-lt/words/all.json index da0c630..6d4052d 100644 --- a/Hangman/words/lt-lt.json +++ b/Hangman/locales/lt-lt/words/all.json @@ -1,14 +1,4 @@ { - "language": "lt-lt", - "played": "Jūsų įvesta raidė jau buvo pateikta!", - "you_won": "Jūs laimėjote!", - "you_lose": "Jūs pralaimėjote!", - "word_was": "Žodis buvo:", - "one_char": "Įveskite tik vieną simbolį!", - "remaining": "likę spėjimai", - "letters": "Jau pateiktos raidės:", - "guess": "Spėkite raidę:", - "hangman": "Kartuvės", "words": [ "algoritmai", "altorius", diff --git a/Hangman/locales/pt-br/locale.json b/Hangman/locales/pt-br/locale.json new file mode 100644 index 0000000..02ce5ba --- /dev/null +++ b/Hangman/locales/pt-br/locale.json @@ -0,0 +1,12 @@ +{ + "language": "pt-br", + "played": "A letra escolhida foi usada!", + "you_won": "Você ganhou!", + "you_lose": "Você perdeu!", + "word_was": "A palavra era:", + "one_char": "Escreva apenas uma letra!", + "remaining": "Número de tentativas", + "letters": "A letra foi escolhida:", + "guess": "Escolha uma letra:", + "hangman": "Forca" +} \ No newline at end of file diff --git a/Hangman/words/pt-br.json b/Hangman/locales/pt-br/words/all.json similarity index 81% rename from Hangman/words/pt-br.json rename to Hangman/locales/pt-br/words/all.json index 1616292..5bb5ac4 100644 --- a/Hangman/words/pt-br.json +++ b/Hangman/locales/pt-br/words/all.json @@ -1,14 +1,4 @@ { - "language": "pt-br", - "played": "A letra escolhida foi usada!", - "you_won": "Você ganhou!", - "you_lose": "Você perdeu!", - "word_was": "A palavra era:", - "one_char": "Escreva apenas uma letra!", - "remaining": "Número de tentativas", - "letters": "A letra foi escolhida:", - "guess": "Escolha uma letra:", - "hangman": "Forca", "words": [ "abduzir", "afilhado", diff --git a/Hangman/locales/ru-ru/locale.json b/Hangman/locales/ru-ru/locale.json new file mode 100644 index 0000000..b207ec2 --- /dev/null +++ b/Hangman/locales/ru-ru/locale.json @@ -0,0 +1,12 @@ +{ + "language": "ru-ru", + "played": "Буква, которую Вы ввели, уже была!", + "you_won": "Вы победили!", + "you_lose": "Вы проиграли!", + "word_was": "Слово было:", + "one_char": "Вводите по одной букве!", + "remaining": "догадок остаётся", + "letters": "Уже введенные буквы:", + "guess": "Отгадайте букву:", + "hangman": "Виселица" +} \ No newline at end of file diff --git a/Hangman/words/ru-ru.json b/Hangman/locales/ru-ru/words/all.json similarity index 83% rename from Hangman/words/ru-ru.json rename to Hangman/locales/ru-ru/words/all.json index a4d82dd..4c20f2f 100644 --- a/Hangman/words/ru-ru.json +++ b/Hangman/locales/ru-ru/words/all.json @@ -1,14 +1,4 @@ { - "language": "ru-ru", - "played": "Буква, которую Вы ввели, уже была!", - "you_won": "Вы победили!", - "you_lose": "Вы проиграли!", - "word_was": "Слово было:", - "one_char": "Вводите по одной букве!", - "remaining": "догадок остаётся", - "letters": "Уже введенные буквы:", - "guess": "Отгадайте букву:", - "hangman": "Виселица", "words": [ "автоматизация", "алгоритмы", diff --git a/Hangman/locales/se/locale.json b/Hangman/locales/se/locale.json new file mode 100644 index 0000000..92c696a --- /dev/null +++ b/Hangman/locales/se/locale.json @@ -0,0 +1,12 @@ +{ + "language": "se", + "played": "Den bokstaven har redan blivit spelad!", + "you_won": "Du vann!", + "you_lose": "Du förlorade!", + "word_was": "Ordet var:", + "one_char": "Skriv bara en bokstav!", + "remaining": "gissningar kvar", + "letters": "Spelade bokstäver:", + "guess": "Gissa bokstav:", + "hangman": "Hänga gubbe" +} \ No newline at end of file diff --git a/Hangman/words/se.json b/Hangman/locales/se/words/all.json similarity index 81% rename from Hangman/words/se.json rename to Hangman/locales/se/words/all.json index ac7ee27..160271f 100644 --- a/Hangman/words/se.json +++ b/Hangman/locales/se/words/all.json @@ -1,14 +1,4 @@ { - "language": "se", - "played": "Den bokstaven har redan blivit spelad!", - "you_won": "Du vann!", - "you_lose": "Du förlorade!", - "word_was": "Ordet var:", - "one_char": "Skriv bara en bokstav!", - "remaining": "gissningar kvar", - "letters": "Spelade bokstäver:", - "guess": "Gissa bokstav:", - "hangman": "Hänga gubbe", "words": [ "adjektiv", "alfabet", diff --git a/Hangman/locales/tr-tr/locale.json b/Hangman/locales/tr-tr/locale.json new file mode 100644 index 0000000..d10d57d --- /dev/null +++ b/Hangman/locales/tr-tr/locale.json @@ -0,0 +1,12 @@ +{ + "language": "tr-tr", + "played": "Yazdığın harf zaten kullanıldı!", + "you_won": "Kazandın!", + "you_lose": "Kaybettin!", + "word_was": "Kelime şuydu:", + "one_char": "Sadece bir karakter yaz!", + "remaining": "Kalan tahminler", + "letters": "Kullanılmış harfler:", + "guess": "Harf tahmin et:", + "hangman": "Adam Asmaca" +} \ No newline at end of file diff --git a/Hangman/words/tr-tr.json b/Hangman/locales/tr-tr/words/all.json similarity index 70% rename from Hangman/words/tr-tr.json rename to Hangman/locales/tr-tr/words/all.json index e6662ed..bbf8515 100644 --- a/Hangman/words/tr-tr.json +++ b/Hangman/locales/tr-tr/words/all.json @@ -1,15 +1,4 @@ { - "language": "tr-tr", - "regexp": "^[abcçdefgğhıijklmnoöprsştuüvyz]{3,}$", - "played": "Yazdığın harf zaten kullanıldı!", - "you_won": "Kazandın!", - "you_lose": "Kaybettin!", - "word_was": "Kelime şuydu:", - "one_char": "Sadece bir karakter yaz!", - "remaining": "Kalan tahminler", - "letters": "Kullanılmış harfler:", - "guess": "Harf tahmin et:", - "hangman": "Adam Asmaca", "words": [ "alanlar", "algoritmalar", diff --git a/Hangman/locales/vi-vn/locale.json b/Hangman/locales/vi-vn/locale.json new file mode 100644 index 0000000..32a5a3e --- /dev/null +++ b/Hangman/locales/vi-vn/locale.json @@ -0,0 +1,12 @@ +{ + "language": "vi-vn", + "played": "Chữ cái bạn vừa nhập đã được sử dụng!", + "you_won": "Bạn đã thắng!", + "you_lose": "Bạn đã thua!", + "word_was": "Đáp án:", + "one_char": "Chỉ nhập một chữ cái!", + "remaining": "lượt đoán còn lại", + "letters": "Chữ cái đã sử dụng:", + "guess": "Đoán chữ cái:", + "hangman": "Hangman" +} \ No newline at end of file diff --git a/Hangman/words/vi-vn.json b/Hangman/locales/vi-vn/words/all.json similarity index 69% rename from Hangman/words/vi-vn.json rename to Hangman/locales/vi-vn/words/all.json index f1569c7..65dc0bf 100644 --- a/Hangman/words/vi-vn.json +++ b/Hangman/locales/vi-vn/words/all.json @@ -1,14 +1,4 @@ { - "language": "vi-vn", - "played": "Chữ cái bạn vừa nhập đã được sử dụng!", - "you_won": "Bạn đã thắng!", - "you_lose": "Bạn đã thua!", - "word_was": "Đáp án:", - "one_char": "Chỉ nhập một chữ cái!", - "remaining": "lượt đoán còn lại", - "letters": "Chữ cái đã sử dụng:", - "guess": "Đoán chữ cái:", - "hangman": "Hangman", "words": [ "biến", "bàn phím", diff --git a/Hangman/locales/vi/locale.json b/Hangman/locales/vi/locale.json new file mode 100644 index 0000000..5019a34 --- /dev/null +++ b/Hangman/locales/vi/locale.json @@ -0,0 +1,12 @@ +{ + "language": "vi", + "played": "Chữ cái bạn vừa nhập đã được sử dụng!", + "you_won": "Bạn đã thắng!", + "you_lose": "Bạn đã thua!", + "word_was": "Đáp án:", + "one_char": "Chỉ nhập một chữ cái!", + "remaining": "lượt đoán còn lại", + "letters": "Chữ cái đã sử dụng:", + "guess": "Đoán chữ cái:", + "hangman": "Hangman" +} \ No newline at end of file diff --git a/Hangman/words/vi.json b/Hangman/locales/vi/words/all.json similarity index 70% rename from Hangman/words/vi.json rename to Hangman/locales/vi/words/all.json index d95e699..3c48f08 100644 --- a/Hangman/words/vi.json +++ b/Hangman/locales/vi/words/all.json @@ -1,14 +1,4 @@ { - "language": "vi", - "played": "Chữ cái bạn vừa nhập đã được sử dụng!", - "you_won": "Bạn đã thắng!", - "you_lose": "Bạn đã thua!", - "word_was": "Đáp án:", - "one_char": "Chỉ nhập một chữ cái!", - "remaining": "lượt đoán còn lại", - "letters": "Chữ cái đã sử dụng:", - "guess": "Đoán chữ cái:", - "hangman": "Hangman", "words": [ "biến", "bàn phím", diff --git a/Hangman/sort.js b/Hangman/sort.js old mode 100644 new mode 100755 index 92d9bab..9e752f0 --- a/Hangman/sort.js +++ b/Hangman/sort.js @@ -1,14 +1,17 @@ +#!/usr/bin/env node + const fs = require("fs") -let language = "en-us" +let words_file = "./locales/en/words/all.json" if (process.argv.length > 2) { - language = process.argv[2] + words_file = process.argv[2] } -const db = require(`./words/${language}.json`) +const db = require(words_file) const newWords = new Set() const testRegex = db.regexp != undefined const regexp = new RegExp(db.regexp) + db.words.forEach(word => { if (testRegex) { if (!regexp.test(word)) { @@ -17,5 +20,6 @@ db.words.forEach(word => { } newWords.add(word) }) -db.words = Array.from(newWords).sort() -fs.writeFileSync(`./words/${language}.json`, JSON.stringify(db, null, "\t")) +const words = Array.from(newWords).sort() + +fs.writeFileSync(words_file, JSON.stringify(db, null, "\t")) From 61f4d009b9a2e41059eacfda7689ed1f1ec1fb5a Mon Sep 17 00:00:00 2001 From: Salif Mehmed Date: Tue, 10 Oct 2023 03:30:36 +0300 Subject: [PATCH 16/20] Update Hangman translation files --- Hangman/README.md | 42 +++++----- Hangman/hangman.py | 4 +- Hangman/index.js | 4 +- Hangman/locales/bg/locale.json | 3 +- Hangman/locales/bg/words/all.json | 2 +- Hangman/locales/cs/locale.json | 1 - Hangman/locales/de/locale.json | 1 - Hangman/locales/en/locale.json | 3 +- Hangman/locales/en/words/all.json | 2 +- Hangman/locales/en/words/code.json | 2 +- Hangman/locales/es/locale.json | 1 - Hangman/locales/fr/locale.json | 1 - Hangman/locales/gr/locale.json | 1 - Hangman/locales/hr/locale.json | 1 - Hangman/locales/id/locale.json | 1 - Hangman/locales/it/locale.json | 1 - Hangman/locales/jp/locale.json | 1 - Hangman/locales/{lt-lt => lt}/locale.json | 3 +- Hangman/locales/{lt-lt => lt}/words/all.json | 0 Hangman/locales/pt-br/locale.json | 1 - Hangman/locales/{ru-ru => ru}/locale.json | 3 +- Hangman/locales/{ru-ru => ru}/words/all.json | 0 Hangman/locales/se/locale.json | 1 - Hangman/locales/{tr-tr => tr}/locale.json | 3 +- Hangman/locales/{tr-tr => tr}/words/all.json | 1 + Hangman/locales/tr/words/code.json | 85 ++++++++++++++++++++ Hangman/locales/vi-vn/locale.json | 12 --- Hangman/locales/vi-vn/words/all.json | 54 ------------- Hangman/locales/vi/locale.json | 1 - Hangman/sort.js | 2 +- 30 files changed, 122 insertions(+), 115 deletions(-) rename Hangman/locales/{lt-lt => lt}/locale.json (85%) rename Hangman/locales/{lt-lt => lt}/words/all.json (100%) rename Hangman/locales/{ru-ru => ru}/locale.json (86%) rename Hangman/locales/{ru-ru => ru}/words/all.json (100%) rename Hangman/locales/{tr-tr => tr}/locale.json (83%) rename Hangman/locales/{tr-tr => tr}/words/all.json (94%) create mode 100644 Hangman/locales/tr/words/code.json delete mode 100644 Hangman/locales/vi-vn/locale.json delete mode 100644 Hangman/locales/vi-vn/words/all.json diff --git a/Hangman/README.md b/Hangman/README.md index 6592840..0702a4b 100644 --- a/Hangman/README.md +++ b/Hangman/README.md @@ -2,40 +2,42 @@ ## Play -```bash -$ python hangman.py -``` - -or +### Node.js ```bash -$ python hangman.py [language] -``` +node index.js -#### Example +# specify language: +node index.js [language] +# e.g. +node index.js pt-br -```bash -$ python hangman.py pt-br +# specify words: +node index.js en code ``` -## Node.js +### Python ```bash -$ node index.js +python hangman.py +# or specify language: +python hangman.py [language] +# e.g. +python hangman.py pt-br ``` -or +## Contributing + +### Translate ```bash -$ node index.js [language] +cp locales/en/locale.json locales/[language]/locale.json +# Translate locales/[language]/locale.json ``` -#### Example +### Add a word list ```bash -$ node index.js pt-br +echo '{"words": ["word 1", "word 2"]}' > locales/[language]/words/[name].json +# Edit locales/[language]/words/[name].json ``` - -## Contributing - -See [this issue](https://github.com/salif/cli-games/issues/9) diff --git a/Hangman/hangman.py b/Hangman/hangman.py index 7c17317..4622513 100644 --- a/Hangman/hangman.py +++ b/Hangman/hangman.py @@ -62,8 +62,8 @@ def check(data): if guessesRemaining < 1: print(clr("\n " + " ".join(obfWord) + "\n", "cian")) print(clr("\n --------------------------------------------", "blue")) - print(clr("\n " + db["you_lose"] + " \n", "red")) - print(clr(" " + db["word_was"] + " " + "".join(word) + "\n", "red")) + print(clr("\n " + "".join(word), "cian")) + print(clr("\n " + db["you_lose"] + "\n", "red")) sys.exit() else: print(clr("\n " + db["one_char"], "red")) diff --git a/Hangman/index.js b/Hangman/index.js index 54b9015..fea793b 100755 --- a/Hangman/index.js +++ b/Hangman/index.js @@ -77,6 +77,8 @@ class Hangman { for (const c of word) { if (playedChars.has(c)) { output.push(c) + } else if (c === " ") { + output.push(c) } else { toGuess += 1 output.push("_") @@ -128,7 +130,7 @@ class Hangman { let language = "en" let words = "all" const argLanguage = process.argv[2] -if (argLanguage != undefined && /^[A-Za-z\-]{1,}$/.test(argLanguage)) { +if (argLanguage != undefined && /^[A-Za-z\-\_]{1,}$/.test(argLanguage)) { language = argLanguage argWords = process.argv[3] if (argWords != undefined) { diff --git a/Hangman/locales/bg/locale.json b/Hangman/locales/bg/locale.json index b0826b9..a9fc767 100644 --- a/Hangman/locales/bg/locale.json +++ b/Hangman/locales/bg/locale.json @@ -1,9 +1,8 @@ { - "language": "bg", + "language": "Български", "played": "Буквата, която написа вече е изиграна!", "you_won": "Ти спечели!", "you_lose": "Ти загуби!", - "word_was": "Думата беше:", "one_char": "Напиши само една буква!", "remaining": "оставащи познавания", "letters": "Изиграни букви:", diff --git a/Hangman/locales/bg/words/all.json b/Hangman/locales/bg/words/all.json index f439951..610eb3e 100644 --- a/Hangman/locales/bg/words/all.json +++ b/Hangman/locales/bg/words/all.json @@ -1,5 +1,5 @@ { - "regexp": "^[абвгдежзийклмнопрстуфхцчшщъьюя]{3,}$", + "regexp": "^[абвгдежзийклмнопрстуфхцчшщъьюя ]{3,}$", "words": [ "абстракция", "алгоритъм", diff --git a/Hangman/locales/cs/locale.json b/Hangman/locales/cs/locale.json index a10ce34..7dc0959 100644 --- a/Hangman/locales/cs/locale.json +++ b/Hangman/locales/cs/locale.json @@ -3,7 +3,6 @@ "played": "Napsané písmeno již bylo zahráno!", "you_won": "Vyhráli jste!", "you_lose": "Prohráli jste!", - "word_was": "Slovo bylo:", "one_char": "Napište pouze jeden znak!", "remaining": "zbývající pokusy", "letters": "Zahraná písmena:", diff --git a/Hangman/locales/de/locale.json b/Hangman/locales/de/locale.json index ede7aba..b56e43e 100644 --- a/Hangman/locales/de/locale.json +++ b/Hangman/locales/de/locale.json @@ -3,7 +3,6 @@ "played": "Der Buchstabe wurde von dir schon ausgewählt!", "you_won": "Du hast gewonnen!", "you_lose": "Du hast verloren!", - "word_was": "Das Wort war:", "one_char": "Nur einen Buchstaben!", "remaining": "verbleibende Versuche", "letters": "Gewählte Buchstaben:", diff --git a/Hangman/locales/en/locale.json b/Hangman/locales/en/locale.json index 8302305..7738335 100644 --- a/Hangman/locales/en/locale.json +++ b/Hangman/locales/en/locale.json @@ -1,9 +1,8 @@ { - "language": "en", + "language": "English", "played": "The letter you wrote was already played!", "you_won": "You won!", "you_lose": "You lose!", - "word_was": "The word was:", "one_char": "Write just one character!", "remaining": "guesses remaining", "letters": "Letters already played:", diff --git a/Hangman/locales/en/words/all.json b/Hangman/locales/en/words/all.json index bd9db07..21650ee 100644 --- a/Hangman/locales/en/words/all.json +++ b/Hangman/locales/en/words/all.json @@ -1,5 +1,5 @@ { - "regexp": "^[a-z]{3,}$", + "regexp": "^[a-z ]{3,}$", "words": [ "aardvark", "abacus", diff --git a/Hangman/locales/en/words/code.json b/Hangman/locales/en/words/code.json index 0f3ca3f..e98bd19 100644 --- a/Hangman/locales/en/words/code.json +++ b/Hangman/locales/en/words/code.json @@ -1,5 +1,5 @@ { - "regexp": "^[a-z]{3,}$", + "regexp": "^[a-z ]{3,}$", "words": [ "abstraction", "agile", diff --git a/Hangman/locales/es/locale.json b/Hangman/locales/es/locale.json index 6bbc225..ead626f 100644 --- a/Hangman/locales/es/locale.json +++ b/Hangman/locales/es/locale.json @@ -3,7 +3,6 @@ "played": "¡La letra que escribiste ya fue usada!", "you_won": "¡Ganaste!", "you_lose": "¡Perdiste!", - "word_was": "La palabra era:", "one_char": "¡Escribe sólo un caracter!", "remaining": "letras por adivinar", "letters": "Letras que ya se usaron:", diff --git a/Hangman/locales/fr/locale.json b/Hangman/locales/fr/locale.json index a078575..1aa7a51 100644 --- a/Hangman/locales/fr/locale.json +++ b/Hangman/locales/fr/locale.json @@ -3,7 +3,6 @@ "played": "La lettre que vous avez écrite a déjà été jouée!", "you_won": "Vous avez gagné!", "you_lose": "Vous avez perdu!", - "word_was": "Le mot était:", "one_char": "Ecrivez un seul caractère!", "remaining": "Essais restants:", "letters": "Lettres déjà jouées:", diff --git a/Hangman/locales/gr/locale.json b/Hangman/locales/gr/locale.json index cab615f..e445cdd 100644 --- a/Hangman/locales/gr/locale.json +++ b/Hangman/locales/gr/locale.json @@ -3,7 +3,6 @@ "played": "Το γράμμα που έβαλες έχει ήδη χρησιμοποιηθεί!", "you_won": "Κέρδισες!", "you_lose": "Έχασες!", - "word_was": "Η λέξη ήταν:", "one_char": "Γράψε μόνο έναν χαρακτήρα!", "remaining": "Μαντεψιές που απέμειναν", "letters": "Χρησιμοποιημένα γράμματα:", diff --git a/Hangman/locales/hr/locale.json b/Hangman/locales/hr/locale.json index 00a99b4..cf02f25 100644 --- a/Hangman/locales/hr/locale.json +++ b/Hangman/locales/hr/locale.json @@ -3,7 +3,6 @@ "played": "Pismo ste već odabrali!", "you_won": "Pobjedio si!", "you_lose": "Izgubio si!", - "word_was": "Riječ je bila:", "one_char": "Samo jedno slovo!", "remaining": "preostali pokušaji", "letters": "Odabrana slova:", diff --git a/Hangman/locales/id/locale.json b/Hangman/locales/id/locale.json index a074de4..f86cb04 100644 --- a/Hangman/locales/id/locale.json +++ b/Hangman/locales/id/locale.json @@ -3,7 +3,6 @@ "played": "Huruf yang kamu tebak sudah dimainkan!", "you_won": "Kamu menang!", "you_lose": "Kamu kalah!", - "word_was": "Kata yang dimainkan adalah:", "one_char": "Satu huruf lagi!", "remaining": "tebakan lagi", "letters": "Huruf yang sudah ditebak:", diff --git a/Hangman/locales/it/locale.json b/Hangman/locales/it/locale.json index d8ae42e..1cdc2d0 100644 --- a/Hangman/locales/it/locale.json +++ b/Hangman/locales/it/locale.json @@ -3,7 +3,6 @@ "played": "Questa lettera è già stata inserita!", "you_won": "Hai vinto!", "you_lose": "Hai perso!", - "word_was": "La parola era:", "one_char": "Scrivi solo una lettera!", "remaining": "tentativi rimasti", "letters": "Lettere già inserite:", diff --git a/Hangman/locales/jp/locale.json b/Hangman/locales/jp/locale.json index deabe50..879a405 100644 --- a/Hangman/locales/jp/locale.json +++ b/Hangman/locales/jp/locale.json @@ -3,7 +3,6 @@ "played": "あなたが書いた手紙はすでに使用されています!", "you_won": "勝った!", "you_lose": "失った!", - "word_was": "言葉は:", "one_char": "1文字のみを入力してください!", "remaining": "残りの推測", "letters": "すでに再生された文字:", diff --git a/Hangman/locales/lt-lt/locale.json b/Hangman/locales/lt/locale.json similarity index 85% rename from Hangman/locales/lt-lt/locale.json rename to Hangman/locales/lt/locale.json index 5ea043e..c7a6a40 100644 --- a/Hangman/locales/lt-lt/locale.json +++ b/Hangman/locales/lt/locale.json @@ -1,9 +1,8 @@ { - "language": "lt-lt", + "language": "lt", "played": "Jūsų įvesta raidė jau buvo pateikta!", "you_won": "Jūs laimėjote!", "you_lose": "Jūs pralaimėjote!", - "word_was": "Žodis buvo:", "one_char": "Įveskite tik vieną simbolį!", "remaining": "likę spėjimai", "letters": "Jau pateiktos raidės:", diff --git a/Hangman/locales/lt-lt/words/all.json b/Hangman/locales/lt/words/all.json similarity index 100% rename from Hangman/locales/lt-lt/words/all.json rename to Hangman/locales/lt/words/all.json diff --git a/Hangman/locales/pt-br/locale.json b/Hangman/locales/pt-br/locale.json index 02ce5ba..60d7bae 100644 --- a/Hangman/locales/pt-br/locale.json +++ b/Hangman/locales/pt-br/locale.json @@ -3,7 +3,6 @@ "played": "A letra escolhida foi usada!", "you_won": "Você ganhou!", "you_lose": "Você perdeu!", - "word_was": "A palavra era:", "one_char": "Escreva apenas uma letra!", "remaining": "Número de tentativas", "letters": "A letra foi escolhida:", diff --git a/Hangman/locales/ru-ru/locale.json b/Hangman/locales/ru/locale.json similarity index 86% rename from Hangman/locales/ru-ru/locale.json rename to Hangman/locales/ru/locale.json index b207ec2..aeb2816 100644 --- a/Hangman/locales/ru-ru/locale.json +++ b/Hangman/locales/ru/locale.json @@ -1,9 +1,8 @@ { - "language": "ru-ru", + "language": "ru", "played": "Буква, которую Вы ввели, уже была!", "you_won": "Вы победили!", "you_lose": "Вы проиграли!", - "word_was": "Слово было:", "one_char": "Вводите по одной букве!", "remaining": "догадок остаётся", "letters": "Уже введенные буквы:", diff --git a/Hangman/locales/ru-ru/words/all.json b/Hangman/locales/ru/words/all.json similarity index 100% rename from Hangman/locales/ru-ru/words/all.json rename to Hangman/locales/ru/words/all.json diff --git a/Hangman/locales/se/locale.json b/Hangman/locales/se/locale.json index 92c696a..cb81169 100644 --- a/Hangman/locales/se/locale.json +++ b/Hangman/locales/se/locale.json @@ -3,7 +3,6 @@ "played": "Den bokstaven har redan blivit spelad!", "you_won": "Du vann!", "you_lose": "Du förlorade!", - "word_was": "Ordet var:", "one_char": "Skriv bara en bokstav!", "remaining": "gissningar kvar", "letters": "Spelade bokstäver:", diff --git a/Hangman/locales/tr-tr/locale.json b/Hangman/locales/tr/locale.json similarity index 83% rename from Hangman/locales/tr-tr/locale.json rename to Hangman/locales/tr/locale.json index d10d57d..372bbe1 100644 --- a/Hangman/locales/tr-tr/locale.json +++ b/Hangman/locales/tr/locale.json @@ -1,9 +1,8 @@ { - "language": "tr-tr", + "language": "Türkçe", "played": "Yazdığın harf zaten kullanıldı!", "you_won": "Kazandın!", "you_lose": "Kaybettin!", - "word_was": "Kelime şuydu:", "one_char": "Sadece bir karakter yaz!", "remaining": "Kalan tahminler", "letters": "Kullanılmış harfler:", diff --git a/Hangman/locales/tr-tr/words/all.json b/Hangman/locales/tr/words/all.json similarity index 94% rename from Hangman/locales/tr-tr/words/all.json rename to Hangman/locales/tr/words/all.json index bbf8515..9a23e72 100644 --- a/Hangman/locales/tr-tr/words/all.json +++ b/Hangman/locales/tr/words/all.json @@ -1,4 +1,5 @@ { + "regexp": "^[abcçdefgğhıijklmnoöprsştuüvyz ]{3,}$", "words": [ "alanlar", "algoritmalar", diff --git a/Hangman/locales/tr/words/code.json b/Hangman/locales/tr/words/code.json new file mode 100644 index 0000000..964c340 --- /dev/null +++ b/Hangman/locales/tr/words/code.json @@ -0,0 +1,85 @@ +{ + "regexp": "^[abcçdefgğhıijklmnoöprsştuüvyz ]{3,}$", + "words": [ + "akış", + "algoritma", + "arama", + "arayüz", + "argüman", + "asyonkron", + "ayrılmış", + "ayırma", + "bayt", + "başlatma", + "bellek", + "bildiri", + "bileşen", + "bit", + "derleyici", + "değişken", + "dinamik", + "dize", + "dizi", + "dizin", + "dosya", + "döngü", + "eleman", + "fonksiyon", + "fonsiyonel", + "giriş", + "grafik", + "gösterici", + "hata", + "hazine", + "işaretçi", + "kalıtım", + "kaplama", + "karakter", + "kod", + "koşul", + "kuyruk", + "kütüphane", + "mantıksal", + "metot", + "modül", + "modüler", + "nesne", + "nesne yönelimli", + "olay tabanlı", + "ondalık", + "operand", + "operatör", + "paket", + "paralel", + "polimorfizm", + "programcı", + "programlama", + "proje", + "prosedür", + "prosedürel", + "referans", + "register", + "sabit", + "soyutlama", + "statik", + "sözdizimi", + "sınıf", + "sıralama", + "talimat", + "tam sayı", + "tampon", + "tanımlama", + "terminal", + "yapı", + "yapısal", + "yeniden yapılandırma", + "yorum", + "yorumlayıcı", + "yığın", + "çok platformlu", + "çıkış", + "önişlemci", + "örnek", + "özyineleme" + ] +} \ No newline at end of file diff --git a/Hangman/locales/vi-vn/locale.json b/Hangman/locales/vi-vn/locale.json deleted file mode 100644 index 32a5a3e..0000000 --- a/Hangman/locales/vi-vn/locale.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "language": "vi-vn", - "played": "Chữ cái bạn vừa nhập đã được sử dụng!", - "you_won": "Bạn đã thắng!", - "you_lose": "Bạn đã thua!", - "word_was": "Đáp án:", - "one_char": "Chỉ nhập một chữ cái!", - "remaining": "lượt đoán còn lại", - "letters": "Chữ cái đã sử dụng:", - "guess": "Đoán chữ cái:", - "hangman": "Hangman" -} \ No newline at end of file diff --git a/Hangman/locales/vi-vn/words/all.json b/Hangman/locales/vi-vn/words/all.json deleted file mode 100644 index 65dc0bf..0000000 --- a/Hangman/locales/vi-vn/words/all.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "words": [ - "biến", - "bàn phím", - "bàn thờ", - "bóng tối", - "bộ nhớ", - "cây leo", - "cơ sở dữ liệu", - "cấu trúc", - "cửa sổ lệnh", - "dãy", - "dữ liệu", - "giai thừa", - "giấy cói", - "hàm", - "khai báo", - "kim tự tháp", - "kính chào", - "loại", - "lí trí", - "lập trình viên", - "lệnh", - "máy", - "nghi lễ", - "người viết code", - "nhà phát triển", - "nhị phân", - "phiên bản", - "pi-ta-go", - "sách", - "sọ", - "tham số", - "thuật toán", - "thư viện", - "thử nghiệm", - "tiếng Do Thái", - "tiếng Latin", - "trình chỉnh sửa", - "tuyệt phẩm", - "tài liệu", - "táo", - "tâm hổn", - "tầm nhìn", - "từ điển", - "tự động", - "vòng lặp", - "điều kiện", - "đóng đinh", - "đền", - "đệ quy", - "đồ khảo cổ" - ] -} \ No newline at end of file diff --git a/Hangman/locales/vi/locale.json b/Hangman/locales/vi/locale.json index 5019a34..5793748 100644 --- a/Hangman/locales/vi/locale.json +++ b/Hangman/locales/vi/locale.json @@ -3,7 +3,6 @@ "played": "Chữ cái bạn vừa nhập đã được sử dụng!", "you_won": "Bạn đã thắng!", "you_lose": "Bạn đã thua!", - "word_was": "Đáp án:", "one_char": "Chỉ nhập một chữ cái!", "remaining": "lượt đoán còn lại", "letters": "Chữ cái đã sử dụng:", diff --git a/Hangman/sort.js b/Hangman/sort.js index 9e752f0..7084f98 100755 --- a/Hangman/sort.js +++ b/Hangman/sort.js @@ -20,6 +20,6 @@ db.words.forEach(word => { } newWords.add(word) }) -const words = Array.from(newWords).sort() +db.words = Array.from(newWords).sort() fs.writeFileSync(words_file, JSON.stringify(db, null, "\t")) From 24c15c39e7be585e40f3306de0bde9b7ece254ed Mon Sep 17 00:00:00 2001 From: Salif Mehmed Date: Tue, 10 Oct 2023 15:25:55 +0300 Subject: [PATCH 17/20] Add Hangman Esperanto translation --- Hangman/index.js | 2 +- Hangman/locales/bg/locale.json | 6 +-- Hangman/locales/eo/locale.json | 11 ++++ Hangman/locales/eo/words/all.json | 85 +++++++++++++++++++++++++++++++ 4 files changed, 100 insertions(+), 4 deletions(-) create mode 100644 Hangman/locales/eo/locale.json create mode 100644 Hangman/locales/eo/words/all.json diff --git a/Hangman/index.js b/Hangman/index.js index fea793b..579953e 100755 --- a/Hangman/index.js +++ b/Hangman/index.js @@ -103,7 +103,7 @@ class Hangman { if (this.game.toGuess < 1) { console.log(this.clr("\n ++++++++++++++++++++++++++++++", this.game.colors.blue)) console.log(this.clr(`\n ${this.game.word.join('')}`, this.colors.cian)) - console.log(this.clr(`\n ${this.db.you_won}\n`, this.game.colors.yellow)) + console.log(this.clr(`\n ${this.db.you_won}\n`, this.game.colors.green)) process.exit(0) } else { this.showPrompt(obfWord, null) diff --git a/Hangman/locales/bg/locale.json b/Hangman/locales/bg/locale.json index a9fc767..67c7a74 100644 --- a/Hangman/locales/bg/locale.json +++ b/Hangman/locales/bg/locale.json @@ -1,10 +1,10 @@ { "language": "Български", - "played": "Буквата, която написа вече е изиграна!", + "played": "Въведената буква вече е изиграна!", "you_won": "Ти спечели!", "you_lose": "Ти загуби!", - "one_char": "Напиши само една буква!", - "remaining": "оставащи познавания", + "one_char": "Въведи валидна буква!", + "remaining": "оставащи въвеждания", "letters": "Изиграни букви:", "guess": "Познай буква:", "hangman": "Бесеница" diff --git a/Hangman/locales/eo/locale.json b/Hangman/locales/eo/locale.json new file mode 100644 index 0000000..34c9205 --- /dev/null +++ b/Hangman/locales/eo/locale.json @@ -0,0 +1,11 @@ +{ + "language": "Esperanto", + "played": "La enmetita litero jam estis ludita!", + "you_won": "Vi venkis!", + "you_lose": "Vi malvenkis!", + "one_char": "Enigu valida litero!", + "remaining": "restantaj eniroj", + "letters": "Luditaj literoj:", + "guess": "Divenu literon:", + "hangman": "Pendumo" +} \ No newline at end of file diff --git a/Hangman/locales/eo/words/all.json b/Hangman/locales/eo/words/all.json new file mode 100644 index 0000000..782b334 --- /dev/null +++ b/Hangman/locales/eo/words/all.json @@ -0,0 +1,85 @@ +{ + "regexp": "^[abcĉdefgĝhĥijĵklmnoprsŝtuŭvz ]{3,}$", + "words": [ + "abstrakcio", + "algoritmo", + "alokigo", + "antaŭtraktado", + "argumento", + "asinkrona", + "bajto", + "biblioteko", + "bito", + "boolea", + "bufro", + "decimala", + "deklaro", + "difino", + "dinamika", + "dosiero", + "dosierujo", + "ekzemplo", + "eligo", + "enigo", + "entjera", + "eraro", + "ero", + "fluado", + "funkcia", + "funkcio", + "grafika", + "heredaĵo", + "inicialigo", + "inkapsulado", + "instrukcio", + "interfaco", + "interpretilo", + "iteracio", + "kalkulilo", + "klaso", + "kodo", + "komentario", + "kompililo", + "komponanto", + "kondiĉo", + "konstanto", + "listo", + "matrico", + "memoro", + "metodo", + "modula", + "modulo", + "montrilo", + "multplatforma", + "objektigita", + "objekto", + "okaza", + "operacio", + "opero", + "ordo", + "pako", + "paralela", + "polimorfismo", + "procedura", + "proceduro", + "programado", + "programisto", + "projekto", + "refaktorado", + "referenco", + "registro", + "rekurzio", + "rezervita", + "serĉado", + "signo", + "sintakso", + "stako", + "statika", + "strukturita", + "strukturo", + "terminale", + "variablo", + "vico", + "ĉeno" + ] +} \ No newline at end of file From 8c6ffece87b89ea89dbb1c75a0c7854a4f2c51cf Mon Sep 17 00:00:00 2001 From: Salif Mehmed Date: Tue, 10 Oct 2023 16:33:37 +0300 Subject: [PATCH 18/20] Fix scripts, package-lock.json, LICENSE.txt, README.md --- .editorconfig | 5 ++++ LICENSE => LICENSE.txt | 0 MazeEscape/package-lock.json | 41 +++++++++++++++++++++++++++++++ README.md | 15 +++++++----- Snake/package-lock.json | 42 ++++++++++++++++++++++++++++++++ TextAdventures/package-lock.json | 41 +++++++++++++++++++++++++++++++ games.sh | 4 +-- install-games.sh | 4 +-- 8 files changed, 142 insertions(+), 10 deletions(-) rename LICENSE => LICENSE.txt (100%) mode change 100755 => 100644 create mode 100644 MazeEscape/package-lock.json mode change 100755 => 100644 README.md create mode 100644 Snake/package-lock.json create mode 100644 TextAdventures/package-lock.json diff --git a/.editorconfig b/.editorconfig index 2b2869d..19c2e91 100644 --- a/.editorconfig +++ b/.editorconfig @@ -16,3 +16,8 @@ indent_style = space indent_size = 4 trim_trailing_whitespace = true insert_final_newline = true + +[*.sh] +indent_style = tab +indent_size = 4 +insert_final_newline = true diff --git a/LICENSE b/LICENSE.txt old mode 100755 new mode 100644 similarity index 100% rename from LICENSE rename to LICENSE.txt diff --git a/MazeEscape/package-lock.json b/MazeEscape/package-lock.json new file mode 100644 index 0000000..7f26689 --- /dev/null +++ b/MazeEscape/package-lock.json @@ -0,0 +1,41 @@ +{ + "name": "maze-escape", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "maze-escape", + "version": "1.0.0", + "license": "Apache-2.0", + "dependencies": { + "ansi-escapes": "^4.2.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/README.md b/README.md old mode 100755 new mode 100644 index ae4595f..03f5c99 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ CLI Games is a community-driven collection of games that could be run in your te *And more in the future!* -# How to Install? +## How to Install? Installation is very simple. @@ -25,8 +25,10 @@ cd cli-games bash install-games.sh ``` -# How to Play? -### for windows +## How to Play? + +### for Windows + After cloning, run `dir` to get a list of available directories of games. Then navigate to your favourite game using the `cd` command **Eg:** `cd Hangman` @@ -35,13 +37,14 @@ Read the **README** file in the respective directory to get more instruction abo Most of the games support different languages (including `node-js` and `python`) and the choice is yours! ### for Unix/Linux + just type -```sh +```bash bash games.sh ``` and select the game by the number or 'e' for exit. If a game has a JS and Python version, you can choose which one you prefer you to play -# Contributing +## Contributing Want to contribute this project? We are happy to accept your contributions! You can do the following to contribute us @@ -51,7 +54,7 @@ Want to contribute this project? We are happy to accept your contributions! You - [Creating new games](#creating-new-games) - Spreading the word! -## Creating new games +### Creating new games Before creating a new game, please check if it is available already, or somebody is working on creating that game. Then make sure to create a new issue to make sure others are OK with it. If you got approval for your suggestion, then move one! Code your game and create a PR with the new changes. We'll be happy to introduce your new game :smile: diff --git a/Snake/package-lock.json b/Snake/package-lock.json new file mode 100644 index 0000000..b4b90f7 --- /dev/null +++ b/Snake/package-lock.json @@ -0,0 +1,42 @@ +{ + "name": "snake", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "snake", + "version": "1.0.0", + "license": "Apache-2.0", + "dependencies": { + "ansi-escapes": "^4.3.0" + }, + "devDependencies": {} + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/TextAdventures/package-lock.json b/TextAdventures/package-lock.json new file mode 100644 index 0000000..48f1fd3 --- /dev/null +++ b/TextAdventures/package-lock.json @@ -0,0 +1,41 @@ +{ + "name": "text-adventures", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "text-adventures", + "version": "1.0.0", + "license": "Apache-2.0", + "dependencies": { + "prompts": "^2.2.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + } + } +} diff --git a/games.sh b/games.sh index 2de327b..409f020 100755 --- a/games.sh +++ b/games.sh @@ -20,7 +20,7 @@ case $option in read game case $game in "js"|"JS"|"Js"|"jS"|"Javascript"|"javascript") - cd $dir/Hangman && node hangman.js + cd $dir/Hangman && node index.js ;; "py"|"python"|"PY"|"Python") cd $dir/Hangman && python3 hangman.py @@ -51,7 +51,7 @@ case $option in read tictactoe case $tictactoe in "js"|"JS"|"Js"|"jS"|"Javascript"|"javascript"|"j") - cd $dir/TicTacToe && node tictactoe.js + cd $dir/TicTacToe && node index.js ;; "py"|"python"|"PY"|"Python"|"p") cd $dir/TicTacToe && python tictactoe.py diff --git a/install-games.sh b/install-games.sh index 918b023..2888ca9 100755 --- a/install-games.sh +++ b/install-games.sh @@ -6,7 +6,7 @@ text_not_installed="dependencies not installed, please refer the problem log abo printf "Installing Hangman dependencies... \n" -pip install pyfiglet lolcat +pip install -r requirements.txt printf "Installing MazeEscape dependencies... \n" @@ -39,5 +39,5 @@ else exit 1 fi -printf "Dependences installed succesfully" +printf "Dependences installed succesfully\n" exit 0 From d22e88db68143b693f090224edd63a9f1a08b3c9 Mon Sep 17 00:00:00 2001 From: Salif Mehmed Date: Tue, 10 Oct 2023 20:01:07 +0300 Subject: [PATCH 19/20] Add Hangman web interface --- .editorconfig | 5 ++ CONTRIBUTORS | 4 +- Hangman/Hangman.js | 140 +++++++++++++++++++++++++++++++++++++++++++++ Hangman/index.js | 132 ++---------------------------------------- Hangman/web.html | 88 ++++++++++++++++++++++++++++ 5 files changed, 241 insertions(+), 128 deletions(-) create mode 100644 Hangman/Hangman.js create mode 100644 Hangman/web.html diff --git a/.editorconfig b/.editorconfig index 19c2e91..0ba3208 100644 --- a/.editorconfig +++ b/.editorconfig @@ -21,3 +21,8 @@ insert_final_newline = true indent_style = tab indent_size = 4 insert_final_newline = true + +[*.html] +indent_style = tab +indent_size = 4 +insert_final_newline = true diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 735cb65..4f5355a 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1,5 +1,6 @@ -Seniru Pasan Indira Salif Mehmed +Seniru Pasan Indira +Toni500github dnhuan Natsumi H Dany Shaanan @@ -34,6 +35,7 @@ Ramon Bezerra Rodrigo da Silva Ferreira Sebastian Kießling Stefanos Z +Toni500git Valery Briz Vasilhs Toskas exiam diff --git a/Hangman/Hangman.js b/Hangman/Hangman.js new file mode 100644 index 0000000..9686b87 --- /dev/null +++ b/Hangman/Hangman.js @@ -0,0 +1,140 @@ +class Colors { + constructor() { + this.red = 91 + this.green = 92 + this.blue = 34 + this.cian = 96 + this.yellow = 93 + } +} + +class Game { + constructor(word, colors, availChars) { + this.word = word + this.colors = colors + this.availChars = availChars + this.lives = 8 + this.toGuess = 0 + this.playedChars = new Set() + } +} + +class Hangman { + constructor(args) { + this.db = args.locale + this.words = args.words.words + this.pics = args.pics + this.colors = args.colors + this.input = args.input + this.output = args.output + } + + play() { + const availChars = this.getUniqueChars(this.words) + const randWord = () => this.words[Math.floor(Math.random() * this.words.length)] + this.game = new Game(randWord().split(""), this.colors, availChars) + + this.output.write(this.clr(`\n ${this.db.hangman}\n`, this.game.colors.green)) + + this.game.playedChars.add(this.game.word[0]) + this.game.playedChars.add(this.game.word[this.game.word.length - 1]) + + this.showPrompt(this.obf(this.game.word, this.game.playedChars), this.pic()) + this.input.on('data', (data) => { + this.guess(data.trim().toLowerCase()) + }) + } + + rePlay() { + this.input.on('data', (data) => { + this.output.write(this.clr("\n ++++++++++++++++++++++++++++++\n", this.game.colors.blue)) + this.play() + }) + } + + showPrompt(obfWord, msg) { + this.output.write(this.clr("\n ++++++++++++++++++++++++++++++\n", this.game.colors.blue)) + if (msg != null) { + this.output.write(msg + "\n") + } + this.output.write(this.clr(`\n ${this.db.letters} ${Array.from(this.game.playedChars).join(", ")}\n`, this.game.colors.green)) + this.output.write(this.clr(`\n ${obfWord}\n`, this.colors.cian)) + + this.output.write(this.clr(`\n ${this.db.guess} `, this.colors.yellow)) + } + + getUniqueChars(arr) { + const uniqueChars = new Set() + for (const str of arr) { + for (const char of str) { + uniqueChars.add(char) + } + } + return uniqueChars + } + + clr(text, color) { + return color == null ? text : "\x1b[" + color + "m" + text + "\x1b[0m" + } + + obf(word, playedChars) { + const output = [] + let toGuess = 0 + for (const c of word) { + if (playedChars.has(c)) { + output.push(c) + } else if (c === " ") { + output.push(c) + } else { + toGuess += 1 + output.push("_") + } + } + this.game.toGuess = toGuess + return output.join(" ") + } + + pic() { + return "\n" + this.pics[this.game.lives].join('\n') + } + + guess(c) { + if (this.game.playedChars.has(c)) { + this.showPrompt(this.obf(this.game.word, this.game.playedChars), + this.clr(`\n ${this.db.played}`, this.game.colors.red)) + } else if (this.game.availChars.has(c)) { + this.game.playedChars.add(c) + if (this.game.word.includes(c)) { + const obfWord = this.obf(this.game.word, this.game.playedChars) + if (this.game.toGuess < 1) { + this.output.write(this.clr("\n ++++++++++++++++++++++++++++++\n", this.game.colors.blue)) + this.output.write(this.clr(`\n ${this.game.word.join('')}\n`, this.colors.cian)) + this.output.write(this.clr(`\n ${this.db.you_won}\n\n`, this.game.colors.green)) + // process.exit(0) + this.rePlay() + } else { + this.showPrompt(obfWord, null) + } + } else { + this.game.lives -= 1 + if (this.game.lives < 1) { + this.output.write(this.clr("\n ++++++++++++++++++++++++++++++\n", this.game.colors.blue)) + this.output.write(this.clr(`\n ${this.game.word.join('')}\n`, this.colors.cian)) + this.output.write(this.clr(`\n ${this.db.you_lose}\n\n`, this.game.colors.red)) + // process.exit(0) + this.rePlay() + } else { + this.showPrompt(this.obf(this.game.word, this.game.playedChars), this.pic()) + } + } + } else { + this.showPrompt(this.obf(this.game.word, this.game.playedChars), + this.clr(`\n ${this.db.one_char} `, this.game.colors.red) + + this.clr(`\n [${Array.from(this.game.availChars).sort().join(', ')}]`, this.colors.green)) + } + } +} + +if (typeof module !== 'undefined') { + module.exports = { Hangman: Hangman, Colors: Colors } +} diff --git a/Hangman/index.js b/Hangman/index.js index 579953e..a8e0ebc 100755 --- a/Hangman/index.js +++ b/Hangman/index.js @@ -1,131 +1,6 @@ #!/usr/bin/env node -const Colors = { - red: 91, - green: 92, - blue: 34, - cian: 96, - yellow: 93 -} - -class Game { - constructor(word, colors, availChars) { - this.word = word - this.colors = colors - this.availChars = availChars - this.lives = 8 - this.toGuess = 0 - this.playedChars = new Set() - } -} - -class Hangman { - constructor(args) { - this.language = args.language - this.db = args.locale - this.words = args.words.words - this.pics = args.pics - this.colors = args.colors - this.input = args.input - this.input.setEncoding('utf-8') - } - - play() { - const availChars = this.getUniqueChars(this.words) - const randWord = () => this.words[Math.floor(Math.random() * this.words.length)] - this.game = new Game(randWord().split(""), this.colors, availChars) - - console.log(this.clr(`\n ${this.db.hangman}`, this.game.colors.green)) - - this.game.playedChars.add(this.game.word[0]) - this.game.playedChars.add(this.game.word[this.game.word.length - 1]) - - this.showPrompt(this.obf(this.game.word, this.game.playedChars), this.pic()) - this.input.on('data', (data) => { - this.guess(data.trim().toLowerCase()) - }) - } - - showPrompt(obfWord, msg) { - console.log(this.clr("\n ++++++++++++++++++++++++++++++", this.game.colors.blue)) - if (msg != null) { - console.log(msg) - } - console.log(this.clr(`\n ${this.db.letters} ${Array.from(this.game.playedChars).join(", ")}`, this.game.colors.green)) - console.log(this.clr(`\n ${obfWord}`, this.colors.cian)) - - process.stdout.write(this.clr(`\n ${this.db.guess} `, this.colors.yellow)) - } - - getUniqueChars(arr) { - const uniqueChars = new Set() - for (const str of arr) { - for (const char of str) { - uniqueChars.add(char) - } - } - return uniqueChars - } - - clr(text, color) { - return color == null ? text : "\x1b[" + color + "m" + text + "\x1b[0m" - } - - obf(word, playedChars) { - const output = [] - let toGuess = 0 - for (const c of word) { - if (playedChars.has(c)) { - output.push(c) - } else if (c === " ") { - output.push(c) - } else { - toGuess += 1 - output.push("_") - } - } - this.game.toGuess = toGuess - return output.join(" ") - } - - pic() { - return "\n" + this.pics[this.game.lives].join('\n') - } - - guess(c) { - if (this.game.playedChars.has(c)) { - this.showPrompt(this.obf(this.game.word, this.game.playedChars), - this.clr(`\n ${this.db.played}`, this.game.colors.red)) - } else if (this.game.availChars.has(c)) { - this.game.playedChars.add(c) - if (this.game.word.includes(c)) { - const obfWord = this.obf(this.game.word, this.game.playedChars) - if (this.game.toGuess < 1) { - console.log(this.clr("\n ++++++++++++++++++++++++++++++", this.game.colors.blue)) - console.log(this.clr(`\n ${this.game.word.join('')}`, this.colors.cian)) - console.log(this.clr(`\n ${this.db.you_won}\n`, this.game.colors.green)) - process.exit(0) - } else { - this.showPrompt(obfWord, null) - } - } else { - this.game.lives -= 1 - if (this.game.lives < 1) { - console.log(this.clr("\n ++++++++++++++++++++++++++++++", this.game.colors.blue)) - console.log(this.clr(`\n ${this.game.word.join('')}`, this.colors.cian)) - console.log(this.clr(`\n ${this.db.you_lose}\n`, this.game.colors.red)) - process.exit(0) - } else { - this.showPrompt(this.obf(this.game.word, this.game.playedChars), this.pic()) - } - } - } else { - this.showPrompt(this.obf(this.game.word, this.game.playedChars), - this.clr(`\n ${this.db.one_char} `, this.game.colors.red) + - this.clr(`\n [${Array.from(this.game.availChars).sort().join(', ')}]`, this.colors.green)) - } - } -} +const {Hangman, Colors} = require("./Hangman") let language = "en" let words = "all" @@ -138,10 +13,13 @@ if (argLanguage != undefined && /^[A-Za-z\-\_]{1,}$/.test(argLanguage)) { } } +process.stdin.setEncoding('utf-8') + new Hangman({ locale: require(`./locales/${language}/locale.json`), words: require(`./locales/${language}/words/${words}.json`), pics: require('./hangarts.json'), - colors: Colors, + colors: new Colors(), input: process.stdin, + output: process.stdout }).play() diff --git a/Hangman/web.html b/Hangman/web.html new file mode 100644 index 0000000..cdc49a0 --- /dev/null +++ b/Hangman/web.html @@ -0,0 +1,88 @@ + + + + + + + Hangman + + + + + + + + + + From 7af12eb1a8bc8bc38f1ba0bde2b72f6e5668055a Mon Sep 17 00:00:00 2001 From: Salif Mehmed Date: Tue, 10 Oct 2023 20:18:53 +0300 Subject: [PATCH 20/20] Restore semicolons --- MazeEscape/Hero.js | 52 ++++++------ MazeEscape/index.js | 92 ++++++++++---------- Snake/index.js | 182 ++++++++++++++++++++-------------------- TextAdventures/index.js | 32 +++---- 4 files changed, 179 insertions(+), 179 deletions(-) diff --git a/MazeEscape/Hero.js b/MazeEscape/Hero.js index 4010be6..2364696 100644 --- a/MazeEscape/Hero.js +++ b/MazeEscape/Hero.js @@ -1,74 +1,74 @@ -const symbols = require('./maps').symbols +const symbols = require('./maps').symbols; class Hero { constructor(map) { - this.x = 0 - this.y = 0 - this.map = map - this.won = false + this.x = 0; + this.y = 0; + this.map = map; + this.won = false; } moveUp() { if (this.canGo(this.x, this.y - 1)) { - this.leave() - this.goto(this.x, this.y - 1) + this.leave(); + this.goto(this.x, this.y - 1); } } moveDown() { if (this.canGo(this.x, this.y + 1)) { - this.leave() - this.goto(this.x, this.y + 1) + this.leave(); + this.goto(this.x, this.y + 1); } } moveLeft() { if (this.canGo(this.x - 1, this.y)) { - this.leave() - this.goto(this.x - 1, this.y) + this.leave(); + this.goto(this.x - 1, this.y); } } moveRight() { if (this.canGo(this.x + 1, this.y)) { - this.leave() - this.goto(this.x + 1, this.y) + this.leave(); + this.goto(this.x + 1, this.y); } } goto(x, y) { if (this.canGo(x, y)) { - this.x = x - this.y = y - if (this.isWinningPosition(x, y)) this.won = true - this.map[y][x] = '♟' + this.x = x; + this.y = y; + if (this.isWinningPosition(x, y)) this.won = true; + this.map[y][x] = '♟'; } } leave() { - this.map[this.y][this.x] = " " + this.map[this.y][this.x] = " "; } canGo(x, y) { - return this.map[y] && (this.map[y][x] == " " || this.map[y][x] == symbols.door) + return this.map[y] && (this.map[y][x] == " " || this.map[y][x] == symbols.door); } isWinningPosition(x, y) { - return this.map[y][x] == symbols.door + return this.map[y][x] == symbols.door; } hasWon() { - return this.won + return this.won; } nextMap(map) { - this.map = map - this.x = 0 - this.y = 0 - this.won = false + this.map = map; + this.x = 0; + this.y = 0; + this.won = false; } } -module.exports = Hero +module.exports = Hero; diff --git a/MazeEscape/index.js b/MazeEscape/index.js index f20a849..cfafcf2 100644 --- a/MazeEscape/index.js +++ b/MazeEscape/index.js @@ -1,68 +1,68 @@ -const readline = require('readline') -const esc = require('ansi-escapes') -const { maps, symbols } = require('./maps.json') -const Hero = require('./Hero') +const readline = require('readline'); +const esc = require('ansi-escapes'); +const { maps, symbols } = require('./maps.json'); +const Hero = require('./Hero'); -let round = 0 -let map = maps[round] -let hero = new Hero(map) -let gameStart = false +let round = 0; +let map = maps[round]; +let hero = new Hero(map); +let gameStart = false; -readline.emitKeypressEvents(process.stdin) -process.stdin.setRawMode(true) +readline.emitKeypressEvents(process.stdin); +process.stdin.setRawMode(true); process.stdin.on('keypress', (str, key) => { if (key.name == 'z' && key.ctrl) { - console.log(esc.cursorShow) - process.exit(0) + console.log(esc.cursorShow); + process.exit(0); } else if (!gameStart) { - gameStart = true - welcome() + gameStart = true; + welcome(); } else if (hero.hasWon()) { if (round + 1 < maps.length) { - round++ - map = maps[round] - hero.nextMap(map) + round++; + map = maps[round]; + hero.nextMap(map); } else { - console.log(clr("Congratulations! You've completed all the maps", "green")) - process.exit(0) + console.log(clr("Congratulations! You've completed all the maps", "green")); + process.exit(0); } } else { if (gameStart) { switch (key.name) { case "up": - hero.moveUp() - break + hero.moveUp(); + break; case "down": - hero.moveDown() - break + hero.moveDown(); + break; case "left": - hero.moveLeft() - break + hero.moveLeft(); + break; case "right": - hero.moveRight() - break + hero.moveRight(); + break; } } } - draw() -}) + draw(); +}); function draw() { - let res = " " + (symbols.wall + " ").repeat(map[0].length) + "\n" + let res = " " + (symbols.wall + " ").repeat(map[0].length) + "\n"; for (let row of map) { - res += " " + symbols.wall + " " + res += " " + symbols.wall + " "; for (let col of row) { - res += col + " " + res += col + " "; } - res += symbols.wall + '\n' + res += symbols.wall + '\n'; } - res += " " + (symbols.wall + " ").repeat(map[0].length) + "\n" - res = res.replace("♟", clr("♟", "yellow")).replace(/▣/g, clr("▣", "green")) - print(res) + res += " " + (symbols.wall + " ").repeat(map[0].length) + "\n"; + res = res.replace("♟", clr("♟", "yellow")).replace(/▣/g, clr("▣", "green")); + print(res); if (hero.hasWon()) { - console.log(clr("Press any key to continue", "cian")) + console.log(clr("Press any key to continue", "cian")); } } @@ -74,7 +74,7 @@ function welcome() { ) ( /(__)\\ / /_ )__) )__) \\__ \\( (__ /(__)\\ )___/ )__) (_/\\/\\_)(__)(__)(____)(____) (____)(___/ \\___)(__)(__)(__) (____) !!! - ` + `; print(` Welcome to @@ -90,23 +90,23 @@ function welcome() { ${clr('Press any key to continue...', 'cian')} - `) + `); } /*Salif's coloring function*/ function clr(text, color) { - var code = { red: 91, green: 92, blue: 34, cian: 96, yellow: 93 }[color] - if (code) return "\x1b[" + code + "m" + text + "\x1b[0m" + var code = { red: 91, green: 92, blue: 34, cian: 96, yellow: 93 }[color]; + if (code) return "\x1b[" + code + "m" + text + "\x1b[0m"; } function print(str, hide = true) { - console.log(esc.clearTerminal) - console.log(str) - console.log(hide ? esc.cursorHide : esc.cursorShow) + console.log(esc.clearTerminal); + console.log(str); + console.log(hide ? esc.cursorHide : esc.cursorShow); } function main() { - welcome() + welcome(); } -main() +main(); diff --git a/Snake/index.js b/Snake/index.js index 2cefed6..c030447 100644 --- a/Snake/index.js +++ b/Snake/index.js @@ -1,215 +1,215 @@ -const readline = require('readline') -const esc = require('ansi-escapes') +const readline = require('readline'); +const esc = require('ansi-escapes'); // initializing the variables -let map, snake, snakeHead, foodPos, score, interval +let map, snake, snakeHead, foodPos, score, interval; -readline.emitKeypressEvents(process.stdin) -process.stdin.setRawMode(true) +readline.emitKeypressEvents(process.stdin); +process.stdin.setRawMode(true); // handling keypress events process.stdin.on('keypress', (str, key) => { if (key.name == 'z' && key.ctrl) { - console.log(esc.cursorShow) - process.exit(0) + console.log(esc.cursorShow); + process.exit(0); } else if (key.name == "up") { if (!snakeHead.movingDown) { - snakeHead.movingForward = true - snakeHead.movingDown = false - snakeHead.movingLeft = false - snakeHead.movingRight = false + snakeHead.movingForward = true; + snakeHead.movingDown = false; + snakeHead.movingLeft = false; + snakeHead.movingRight = false; } } else if (key.name == "down") { if (!snakeHead.movingForward) { - snakeHead.movingForward = false - snakeHead.movingDown = true - snakeHead.movingLeft = false - snakeHead.movingRight = false + snakeHead.movingForward = false; + snakeHead.movingDown = true; + snakeHead.movingLeft = false; + snakeHead.movingRight = false; } } else if (key.name == "left") { if (!snakeHead.movingRight) { - snakeHead.movingForward = false - snakeHead.movingDown = false - snakeHead.movingLeft = true - snakeHead.movingRight = false + snakeHead.movingForward = false; + snakeHead.movingDown = false; + snakeHead.movingLeft = true; + snakeHead.movingRight = false; } } else if (key.name == "right") { if (!snakeHead.movingLeft) { - snakeHead.movingForward = false - snakeHead.movingDown = false - snakeHead.movingLeft = false - snakeHead.movingRight = true + snakeHead.movingForward = false; + snakeHead.movingDown = false; + snakeHead.movingLeft = false; + snakeHead.movingRight = true; } } -}) +}); function newGame() { - score = 0 + score = 0; // creating a 25 x 30 map - map = Array.from(Array(15), _ => Array(30).fill(0)) + map = Array.from(Array(15), _ => Array(30).fill(0)); // setting the snake in the middle - snakeHead = { x: 12, y: 5, movingForward: true, movingDown: false, movingLeft: false, movingRight: false } + snakeHead = { x: 12, y: 5, movingForward: true, movingDown: false, movingLeft: false, movingRight: false }; snake = [ [12, 5], [12, 6] - ] + ]; - map[5][12] = 1 // head - map[6][12] = 2 // body + map[5][12] = 1; // head + map[6][12] = 2; // body // setting the food - foodPos = { x: 5, y: 3 } - map[3][5] = 5 + foodPos = { x: 5, y: 3 }; + map[3][5] = 5; - drawMap() + drawMap(); } function drawMap() { // top borders - res = "▉" + ("▉▉▉".repeat(map[0].length)) + "▉\n▉" + res = "▉" + ("▉▉▉".repeat(map[0].length)) + "▉\n▉"; // drawing other parts for (let row of map) { for (let col of row) { if (col == 0) { - res += " " + res += " "; } else if (col == 1) { - res += clr(" ⬤ ", "yellow") + res += clr(" ⬤ ", "yellow"); } else if (col == 2) { - res += clr(" ⬤ ", "green") + res += clr(" ⬤ ", "green"); } else if (col == 5) { - res += clr(" ❤ ", "red") + res += clr(" ❤ ", "red"); } } - res += "▉\n▉" + res += "▉\n▉"; } // bottom borders - print(res + "▉" + ("▉▉▉".repeat(map[0].length)) + "\n") - print("Score: " + score, true, false) + print(res + "▉" + ("▉▉▉".repeat(map[0].length)) + "\n"); + print("Score: " + score, true, false); } function setFoodPos() { // searching for suitable places to set the food - let suitablePos = [] + let suitablePos = []; for (let row in map) { for (let col in map) { - if (map[row][col] == " ") suitablePos.push([row, col]) + if (map[row][col] == " ") suitablePos.push([row, col]); } } //setting the food in one of the suitable places - let choosen = suitablePos[randInt(0, suitablePos.length)] - foodPos.x = choosen[1] - foodPos.y = choosen[0] + let choosen = suitablePos[randInt(0, suitablePos.length)]; + foodPos.x = choosen[1]; + foodPos.y = choosen[0]; } function isEatingFood() { - return snakeHead.x == foodPos.x && snakeHead.y == foodPos.y + return snakeHead.x == foodPos.x && snakeHead.y == foodPos.y; } function isEatingSelf() { return snake.find((val, index) => { - return index != 0 && val[0] == snakeHead.x && val[1] == snakeHead.y - }) + return index != 0 && val[0] == snakeHead.x && val[1] == snakeHead.y; + }); } function loop() { // clearing all the values in the map (setting them to 0) - map = Array.from(Array(15), _ => Array(30).fill(0)) + map = Array.from(Array(15), _ => Array(30).fill(0)); // snake move logic if (snakeHead.movingForward) { - snakeHead.y -= 1 + snakeHead.y -= 1; } else if (snakeHead.movingDown) { - snakeHead.y += 1 + snakeHead.y += 1; } else if (snakeHead.movingLeft) { - snakeHead.x -= 1 + snakeHead.x -= 1; } else if (snakeHead.movingRight) { - snakeHead.x += 1 + snakeHead.x += 1; } for (let i = snake.length - 1; i > 0; i--) { - snake[i] = snake[i - 1] + snake[i] = snake[i - 1]; } - snake[0] = [snakeHead.x, snakeHead.y] + snake[0] = [snakeHead.x, snakeHead.y]; // wall hit detetion if (snakeHead.x < 0) { - gameOver("You hit the wall!") + gameOver("You hit the wall!"); } else if (snakeHead.x >= map[0].length) { - gameOver("You hit the wall!") + gameOver("You hit the wall!"); } else if (snakeHead.y < 0) { - gameOver("You hit the wall!") + gameOver("You hit the wall!"); } else if (snakeHead.y >= 15) { - gameOver("You hit the wall!") + gameOver("You hit the wall!"); } for (let segments of snake) { - map[segments[1]][segments[0]] = 1 + map[segments[1]][segments[0]] = 1; } if (isEatingFood()) { - snake.push([-1, -1]) - setFoodPos() - score++ + snake.push([-1, -1]); + setFoodPos(); + score++; } - map[snakeHead.y][snakeHead.x] = 2 - map[foodPos.y][foodPos.x] = 5 + map[snakeHead.y][snakeHead.x] = 2; + map[foodPos.y][foodPos.x] = 5; - drawMap() + drawMap(); if (isEatingSelf()) { - gameOver("You ate yourself") - process.exit(0) + gameOver("You ate yourself"); + process.exit(0); } // increasing the speed of the snake if the player has passed the level (at a higher score) if (score >= 80) { - clearInterval(interval) - interval = setInterval(loop, 100) + clearInterval(interval); + interval = setInterval(loop, 100); } else if (score >= 60) { - clearInterval(interval) - interval = setInterval(loop, 150) + clearInterval(interval); + interval = setInterval(loop, 150); } else if (score >= 50) { - clearInterval(interval) - interval = setInterval(loop, 200) + clearInterval(interval); + interval = setInterval(loop, 200); } else if (score >= 30) { - clearInterval(interval) - interval = setInterval(loop, 300) + clearInterval(interval); + interval = setInterval(loop, 300); } else if (score >= 10) { - clearInterval(interval) - interval = setInterval(loop, 400) + clearInterval(interval); + interval = setInterval(loop, 400); } } function main() { - newGame() - drawMap() - interval = setInterval(loop, 800) + newGame(); + drawMap(); + interval = setInterval(loop, 800); } function gameOver(msg) { - print(clr("Game over! " + msg, "red"), false, false) - process.exit(0) + print(clr("Game over! " + msg, "red"), false, false); + process.exit(0); } function print(str, hide = true, clear = true) { if (clear) { - console.log(esc.clearTerminal) + console.log(esc.clearTerminal); } - console.log(str) - console.log(hide ? esc.cursorHide : esc.cursorShow) + console.log(str); + console.log(hide ? esc.cursorHide : esc.cursorShow); } function randInt(min, max) { - return Math.floor(Math.random() * (max - min + 1)) + min + return Math.floor(Math.random() * (max - min + 1)) + min; } function clr(text, color) { - var code = { red: 91, green: 92, blue: 34, cian: 96, yellow: 93 }[color] - if (code) return "\x1b[" + code + "m" + text + "\x1b[0m" + var code = { red: 91, green: 92, blue: 34, cian: 96, yellow: 93 }[color]; + if (code) return "\x1b[" + code + "m" + text + "\x1b[0m"; } -main() +main(); diff --git a/TextAdventures/index.js b/TextAdventures/index.js index 6e3168a..6cf71ba 100644 --- a/TextAdventures/index.js +++ b/TextAdventures/index.js @@ -1,23 +1,23 @@ -const prompts = require('prompts') -const stories = require('./stories.json') +const prompts = require('prompts'); +const stories = require('./stories.json'); -let response = {} -response.value = {} -response.value.description = "Choose your story!" -let node = stories.stories +let response = {}; +response.value = {}; +response.value.description = "Choose your story!"; +let node = stories.stories; function getValues(n) { - let choices = [] + let choices = []; for (let s of n) { - choices.push({ title: s.title, value: s }) + choices.push({ title: s.title, value: s }); } - return choices + return choices; } /*Salif's coloring function*/ function clr(text, color) { - var code = { red: 91, green: 92, blue: 34, cian: 96, yellow: 93 }[color] - if (code) return "\x1b[" + code + "m" + text + "\x1b[0m" + var code = { red: 91, green: 92, blue: 34, cian: 96, yellow: 93 }[color]; + if (code) return "\x1b[" + code + "m" + text + "\x1b[0m"; } (async () => { @@ -29,12 +29,12 @@ function clr(text, color) { message: response.value.description, choices: getValues(node), hint: '- Space to select. Return to submit' - }) + }); if (response.value.over) { - console.log(clr(response.value.description, response.value.win ? "green" : "red")) - break + console.log(clr(response.value.description, response.value.win ? "green" : "red")); + break; } - node = response.value.answers + node = response.value.answers; } -})() +})();