From 0ed6d9cecb10655e83091f04d1d74d6e75bc9e14 Mon Sep 17 00:00:00 2001 From: Sachin Joshi Date: Sun, 8 Dec 2024 20:34:37 -0800 Subject: [PATCH] Wordle Clone added for unlimited play --- _includes/theme-sidebar | 1 + wordle/styles.css | 130 ++++++++++++++++++++++++++ wordle/wordle.html | 20 ++++ wordle/wordle.js | 146 +++++++++++++++++++++++++++++ wordle/words.js | 201 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 498 insertions(+) create mode 100644 wordle/styles.css create mode 100644 wordle/wordle.html create mode 100644 wordle/wordle.js create mode 100644 wordle/words.js diff --git a/_includes/theme-sidebar b/_includes/theme-sidebar index cf032ff..189a187 100644 --- a/_includes/theme-sidebar +++ b/_includes/theme-sidebar @@ -121,6 +121,7 @@
  • Crypto Average Calculator
  • +
  • Play Wordle
  • Feedback
  • diff --git a/wordle/styles.css b/wordle/styles.css new file mode 100644 index 0000000..ebc567e --- /dev/null +++ b/wordle/styles.css @@ -0,0 +1,130 @@ +body { + font-family: Arial, sans-serif; + background-color: #121213; + color: white; + margin: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 100vh; +} + +.container { + text-align: center; +} + +h1 { + font-size: 2rem; + margin-bottom: 20px; +} + +.grid { + display: grid; + grid-template-columns: repeat(5, 1fr); + gap: 10px; + margin-bottom: 20px; +} + +.tile { + width: 60px; + height: 60px; + border: 2px solid #3a3a3c; + font-size: 1.5rem; + text-align: center; + line-height: 60px; + text-transform: uppercase; + background-color: #121213; + color: white; + animation: flip 0.5s ease; +} + +.tile.correct { + background-color: #6aaa64; + border-color: #6aaa64; +} + +.tile.present { + background-color: #c9b458; + border-color: #c9b458; +} + +.tile.absent { + background-color: #3a3a3c; + border-color: #3a3a3c; +} + +@keyframes flip { + 0% { + transform: rotateX(0); + } + 50% { + transform: rotateX(90deg); + } + 100% { + transform: rotateX(0); + } +} + +.keyboard { + display: grid; + grid-template-columns: repeat(10, 1fr); + gap: 5px; +} + +.key { + padding: 10px; + background-color: #818384; + border: none; + color: white; + font-size: 1rem; + cursor: pointer; + text-transform: uppercase; +} + +.key.used { + background-color: #3a3a3c; + pointer-events: none; +} + +.key { + background-color: #d3d6da; /* Default key color */ + border: 1px solid #888; + padding: 10px; + margin: 5px; + font-size: 16px; + text-transform: uppercase; + cursor: pointer; +} + +.key.correct { + background-color: #6aaa64; /* Green for correct letters */ + color: white; +} + +.key.present { + background-color: #c9b458; /* Yellow for present letters */ + color: white; +} + +.key.absent { + background-color: #787c7e; /* Gray for absent letters */ + color: white; +} + + +.message { + margin-top: 20px; + font-size: 1.2rem; + height: 24px; +} + +button { + margin-top: 20px; + padding: 10px 20px; + background-color: #6aaa64; + border: none; + color: white; + font-size: 1rem; + cursor: pointer; +} diff --git a/wordle/wordle.html b/wordle/wordle.html new file mode 100644 index 0000000..37f2a02 --- /dev/null +++ b/wordle/wordle.html @@ -0,0 +1,20 @@ + + + + + + Wordle Clone + + + +
    +

    Wordle Clone

    +
    +
    +
    + +
    + + + + diff --git a/wordle/wordle.js b/wordle/wordle.js new file mode 100644 index 0000000..08e5adf --- /dev/null +++ b/wordle/wordle.js @@ -0,0 +1,146 @@ +let targetWord = words[Math.floor(Math.random() * words.length)]; +let currentGuess = ""; +let attempts = 0; + +const grid = document.getElementById("grid"); +const keyboard = document.getElementById("keyboard"); +const message = document.getElementById("message"); +const newGameBtn = document.getElementById("new-game"); + +function initializeGrid() { + grid.innerHTML = ""; + for (let i = 0; i < 30; i++) { + const tile = document.createElement("div"); + tile.classList.add("tile"); + grid.appendChild(tile); + } +} + +function initializeKeyboard() { + const keys = "qwertyuiopasdfghjklzxcvbnm".split(""); + keyboard.innerHTML = ""; + keys.forEach((key) => { + const keyBtn = document.createElement("button"); + keyBtn.classList.add("key"); + keyBtn.textContent = key; + keyBtn.setAttribute("data-key", key); + keyBtn.addEventListener("click", () => handleInput(key)); + keyboard.appendChild(keyBtn); + }); + + const enterKey = document.createElement("button"); + enterKey.classList.add("key"); + enterKey.textContent = "Enter"; + enterKey.addEventListener("click", handleSubmit); + keyboard.appendChild(enterKey); + + const backspaceKey = document.createElement("button"); + backspaceKey.classList.add("key"); + backspaceKey.textContent = "Backspace"; + backspaceKey.addEventListener("click", handleBackspace); + keyboard.appendChild(backspaceKey); +} + +function handleInput(letter) { + if (currentGuess.length < 5) { + currentGuess += letter; + updateGrid(); + } +} + +function handleBackspace() { + if (currentGuess.length > 0) { + currentGuess = currentGuess.slice(0, -1); // Remove the last letter + updateGrid(); + } +} + +function handleSubmit() { + if (currentGuess.length !== 5) { + setMessage("Word must be 5 letters"); + return; + } + + if (!words.includes(currentGuess)) { + setMessage("Invalid word"); + return; + } + + checkGuess(); + currentGuess = ""; + attempts++; + + if (currentGuess === targetWord) { + setMessage("You Win!"); + } else if (attempts === 6) { + setMessage(`Game Over! The word was: ${targetWord}`); + } +} + +function updateGrid() { + const tiles = document.querySelectorAll(".tile"); + const startIdx = attempts * 5; + for (let i = 0; i < 5; i++) { + tiles[startIdx + i].textContent = currentGuess[i] || ""; // Clear unused tiles + } +} + +function checkGuess() { + const tiles = document.querySelectorAll(".tile"); + currentGuess.split("").forEach((letter, index) => { + const tile = tiles[attempts * 5 + index]; + const key = document.querySelector(`[data-key="${letter}"]`); + + if (letter === targetWord[index]) { + tile.classList.add("correct"); + updateKeyboardColor(key, "correct"); + } else if (targetWord.includes(letter)) { + tile.classList.add("present"); + updateKeyboardColor(key, "present"); + } else { + tile.classList.add("absent"); + updateKeyboardColor(key, "absent"); + } + }); +} + +function updateKeyboardColor(key, status) { + // Update the keyboard key's color only if the new status is "better" + if (key.classList.contains("correct")) return; // Already correct + if (status === "correct") { + key.className = "key correct"; + } else if (status === "present" && !key.classList.contains("correct")) { + key.className = "key present"; + } else if (status === "absent" && !key.classList.contains("correct") && !key.classList.contains("present")) { + key.className = "key absent"; + } +} + +function setMessage(text) { + message.textContent = text; +} + +newGameBtn.addEventListener("click", startNewGame); + +function startNewGame() { + targetWord = words[Math.floor(Math.random() * words.length)]; + currentGuess = ""; + attempts = 0; + setMessage(""); + initializeGrid(); + initializeKeyboard(); +} + +// Add event listener for direct keyboard input +document.addEventListener("keydown", (event) => { + if (event.key === "Enter") { + handleSubmit(); + } else if (event.key === "Backspace") { + handleBackspace(); + } else if (/^[a-zA-Z]$/.test(event.key)) { + handleInput(event.key.toLowerCase()); + } +}); + +initializeGrid(); +initializeKeyboard(); diff --git a/wordle/words.js b/wordle/words.js new file mode 100644 index 0000000..d9caa0a --- /dev/null +++ b/wordle/words.js @@ -0,0 +1,201 @@ +const words = [ + "apple", "grape", "peach", "melon", "berry", "mango", "chess", "table", "chair", "sword", + "plant", "field", "stone", "water", "piano", "flute", "trump", "drama", "angel", "laugh", + "light", "blink", "drive", "power", "storm", "trade", "globe", "paint", "house", "brick", + "track", "steep", "cabin", "curve", "heart", "money", "crown", "coast", "world", "ocean", + "mount", "river", "smile", "flame", "glass", "earth", "beach", "shine", "start", "space", + "match", "flock", "style", "shelf", "cable", "field", "round", "music", "block", "shape", + "stone", "color", "shore", "store", "press", "sharp", "flash", "peace", "storm", "cream", + "speed", "plane", "fruit", "movie", "sound", "frost", "flair", "bring", "south", "night", + "space", "heavy", "north", "taste", "cloud", "cross", "short", "sweet", "break", "smoke", + "pouch", "glory", "magic", "dream", "solid", "worth", "limit", "grasp", "float", "pulse", + "acorn", "adapt", "agent", "alarm", "album", "align", "apple", "amuse", "angel", "ankle", + "arena", "arise", "arrow", "asset", "award", "bacon", "badge", "baker", "banjo", "basic", + "beach", "beard", "begin", "bench", "berry", "bingo", "black", "blank", "blaze", "blink", + "block", "board", "boast", "bonus", "boost", "bored", "brain", "brand", "brave", "brick", + "broad", "broom", "brush", "build", "burst", "cable", "camel", "candy", "canal", "carry", + "cause", "chain", "chair", "chalk", "charm", "chart", "chase", "cheap", "cheer", "chess", + "chill", "china", "choke", "chord", "chunk", "cider", "civic", "claim", "clamp", "class", + "clerk", "clock", "close", "cloud", "clown", "coach", "coast", "color", "coral", "couch", + "count", "cover", "craft", "crash", "crazy", "cream", "creep", "creme", "crisp", "cross", + "crown", "curve", "daily", "dance", "dandy", "dared", "death", "delay", "delta", "dense", + "devil", "diary", "digit", "diner", "dirty", "disco", "donor", "draft", "drain", "drama", + "dream", "drill", "drink", "drive", "drone", "drown", "eagle", "early", "earth", "elbow", + "elder", "elite", "email", "empty", "enjoy", "enter", "equal", "error", "event", "exile", + "extra", "fable", "faint", "fairy", "faith", "false", "fancy", "favor", "feast", "fence", + "fever", "fiber", "field", "fifth", "fight", "final", "first", "flame", "flash", "flock", + "floor", "flour", "focus", "force", "forge", "forum", "found", "frame", "fraud", "fresh", + "front", "frost", "fruit", "funny", "fuzzy", "gamer", "giant", "given", "glass", "glide", + "globe", "glory", "gnome", "grace", "grade", "grain", "grant", "grape", "grass", "grave", + "greed", "green", "grill", "groan", "group", "guard", "guess", "guide", "guilt", "habit", + "happy", "harsh", "haste", "haunt", "heart", "heavy", "hedge", "hello", "honey", "honor", + "horse", "hotel", "house", "hover", "human", "humor", "hurry", "image", "imply", "index", + "input", "issue", "ivory", "jewel", "jolly", "judge", "juice", "jumpy", "karma", "kayak", + "kebab", "kiosk", "knife", "knock", "label", "labor", "lapse", "laser", "later", "laugh", + "layer", "lemon", "level", "lever", "light", "limit", "liner", "logic", "loose", "lucky", + "lunar", "lunch", "magic", "major", "maker", "maple", "march", "marry", "match", "maybe", + "meant", "medal", "media", "merge", "metal", "meter", "might", "minor", "model", "money", + "month", "moral", "motor", "mount", "mouse", "mouth", "movie", "music", "myth", "naked", + "nanny", "naval", "nerve", "never", "noble", "noise", "north", "novel", "nurse", "ocean", + "offer", "onion", "order", "orbit", "organ", "other", "outer", "owner", "paint", "panic", + "paper", "party", "piano", "pilot", "place", "plant", "plate", "point", "polar", "power", + "press", "price", "pride", "prime", "prize", "prove", "pupil", "puppy", "queen", "quest", + "quiet", "quick", "quote", "radar", "radio", "range", "rapid", "reach", "ready", "rebel", + "refer", "reign", "relax", "reply", "reset", "rider", "right", "river", "robot", "rocky", + "rogue", "round", "royal", "rugby", "rumor", "ruler", "rural", "rusty", "salad", "sauce", + "scale", "scare", "scene", "scent", "scout", "screw", "sense", "serve", "shade", "shake", + "sharp", "sheep", "shift", "shirt", "shock", "short", "shout", "sight", "silly", "since", + "skill", "smile", "smoke", "snake", "solid", "solve", "space", "spare", "spark", "speak", + "speed", "spice", "spike", "spill", "spine", "split", "spoon", "sport", "spout", "spray", + "staff", "stage", "stair", "stake", "stamp", "stand", "start", "steam", "steel", "stick", + "sting", "stone", "store", "storm", "story", "straw", "strip", "stuck", "study", "style", + "sugar", "suite", "sunny", "super", "sweet", "table", "taker", "taste", "teach", "tease", + "tiger", "toast", "tooth", "torch", "track", "trade", "trail", "train", "trash", "trend", + "trial", "tribe", "trick", "troop", "trump", "trust", "truth", "tumor", "tutor", "twist", + "ultra", "uncle", "under", "union", "unite", "urban", "usage", "usher", "vapor", "vault", + "verse", "vivid", "voice", "voter", "wagon", "waste", "watch", "water", "weary", "weigh", + "weird", "whale", "wheel", "where", "while", "white", "whole", "whose", "widow", "wield", + "wince", "windy", "witch", "woman", "world", "worry", "wound", "wrath", "wreck", "wrist", + "write", "wrong", "yacht", "young", "youth", "zebra", "zesty", "zonal", + "aback", "abase", "abate", "abbey", "abbot", "abhor", "abide", "abled", "abler", "abode", + "abort", "about", "above", "abuse", "abyss", "ached", "aches", "acids", "acorn", "acrid", + "acted", "actor", "acute", "adage", "adapt", "added", "adder", "addle", "adept", "admin", + "admit", "adobe", "adopt", "adore", "adorn", "adult", "affix", "after", "again", "agent", + "agile", "aging", "aglow", "agree", "ahead", "aider", "aisle", "alarm", "album", "alert", + "algae", "alias", "alibi", "alien", "align", "alike", "alive", "allay", "alley", "allot", + "allow", "alloy", "aloft", "alone", "along", "aloof", "alpha", "altar", "alter", "amass", + "amaze", "amber", "amend", "amiss", "amity", "among", "ample", "amply", "amuse", "angel", + "anger", "angle", "angry", "angst", "anime", "ankle", "annex", "annoy", "annul", "anode", + "antic", "anvil", "apart", "apple", "apply", "apron", "argue", "arise", "armor", "aroma", + "arose", "array", "arrow", "arson", "artsy", "ascot", "ashen", "aside", "askew", "assay", + "asset", "atlas", "attic", "audio", "audit", "aural", "auras", "avoid", "awake", "award", + "aware", "awash", "awful", "axiom", "axles", "aztec", "azure", "babel", "badge", "bagel", + "baggy", "baker", "baler", "balmy", "banal", "banjo", "barge", "baron", "basal", "based", + "basic", "basil", "basin", "basis", "baste", "batch", "bathe", "baton", "bawdy", "bayou", + "beach", "beads", "beady", "beard", "beast", "beech", "beefy", "befit", "began", "begin", + "begun", "being", "belch", "belie", "belle", "belly", "below", "bench", "beret", "berry", + "berth", "beset", "betel", "bevel", "bezel", "bible", "biddy", "bigot", "bilge", "bills", + "binge", "bingo", "biome", "birch", "birth", "bison", "bitch", "bitty", "black", "blade", + "blame", "bland", "blank", "blare", "blast", "blaze", "bleak", "bleed", "blend", "bless", + "blimp", "blind", "blink", "bliss", "blitz", "bloat", "block", "bloke", "blond", "blood", + "bloom", "blown", "bluer", "bluff", "blunt", "blurb", "blurt", "blush", "board", "boast", + "bobby", "bokeh", "bolts", "bombs", "bonds", "boned", "bones", "bonus", "booth", "boots", + "booty", "booze", "borax", "borne", "bosom", "bossy", "botch", "bound", "bowel", "bower", + "brace", "brack", "bract", "braid", "brain", "brake", "brand", "brass", "brave", "brawn", + "bread", "break", "breed", "briar", "brick", "bride", "brief", "brine", "bring", "brink", + "brisk", "broad", "broil", "broke", "brood", "brook", "broom", "broth", "brown", "brunt", + "brush", "brute", "buddy", "budge", "buggy", "build", "built", "bulge", "bulky", "bumpy", + "bunch", "bunko", "bunny", "burly", "burnt", "burst", "bused", "bushy", "busty", "butte", + "buyer", "bylaw", "cabal", "cabby", "cabin", "cable", "cacti", "cadet", "caged", "cages", + "cairn", "camel", "cameo", "canal", "candy", "canoe", "canon", "caped", "caper", "carat", + "cargo", "carol", "carry", "carve", "caste", "catch", "cater", "cause", "caved", "caver", + "cease", "cedar", "chaff", "chain", "chair", "chalk", "champ", "chant", "chaos", "charm", + "chart", "chase", "chasm", "cheap", "check", "cheek", "cheer", "chess", "chest", "chick", + "chief", "child", "chill", "china", "chink", "chord", "chore", "chose", "chuck", "chunk", + "churn", "cider", "cigar", "cinch", "clack", "claim", "clamp", "clang", "clank", "clash", + "clasp", "class", "clean", "clear", "cleat", "cleft", "clerk", "click", "cliff", "climb", + "cling", "clink", "cloak", "clock", "clone", "close", "cloth", "cloud", "clout", "clove", + "clown", "cluck", "clump", "clung", "coach", "coast", "cobra", "coded", "coder", "codes", + "coils", "coins", "colic", "colon", "color", "comet", "comic", "comma", "condo", "cones", + "conic", "conks", "cooks", "coral", "cords", "corny", "costs", "couch", "cough", "could", + "count", "court", "coven", "cover", "crack", "craft", "cramp", "crane", "crash", "crate", + "crawl", "crazy", "creak", "cream", "creed", "creek", "creep", "crest", "crime", "crisp", + "croak", "crone", "crony", "cross", "crowd", "crown", "crude", "cruel", "crumb", "crush", + "crypt", "cubic", "cumin", "curds", "curly", "curse", "curve", "curvy", "cushy", "cuter", + "cyber", "cycle", "daddy", "daily", "dairy", "daisy", "dance", "dandy", "dated", "dates", + "daunt", "dealt", "death", "debut", "decal", "decay", "deeds", "deity", "delay", + "acorn", "adapt", "agent", "alarm", "album", "align", "apple", "amuse", "angel", "ankle", + "arena", "arise", "arrow", "asset", "award", "bacon", "badge", "baker", "banjo", "basic", + "beach", "beard", "begin", "bench", "berry", "bingo", "black", "blank", "blaze", "blink", + "block", "board", "boast", "bonus", "boost", "bored", "brain", "brand", "brave", "brick", + "broad", "broom", "brush", "build", "burst", "cable", "camel", "candy", "canal", "carry", + "cause", "chain", "chair", "chalk", "charm", "chart", "chase", "cheap", "cheer", "chess", + "chill", "china", "choke", "chord", "chunk", "cider", "civic", "claim", "clamp", "class", + "clerk", "clock", "close", "cloud", "clown", "coach", "coast", "color", "coral", "couch", + "count", "cover", "craft", "crash", "crazy", "cream", "creep", "creme", "crisp", "cross", + "crown", "curve", "daily", "dance", "dandy", "dared", "death", "delay", "delta", "dense", + "devil", "diary", "digit", "diner", "dirty", "disco", "donor", "draft", "drain", "drama", + "dream", "drill", "drink", "drive", "drone", "drown", "eagle", "early", "earth", "elbow", + "elder", "elite", "email", "empty", "enjoy", "enter", "equal", "error", "event", "exile", + "extra", "fable", "faint", "fairy", "faith", "false", "fancy", "favor", "feast", "fence", + "fever", "fiber", "field", "fifth", "fight", "final", "first", "flame", "flash", "flock", + "floor", "flour", "focus", "force", "forge", "forum", "found", "frame", "fraud", "fresh", + "front", "frost", "fruit", "funny", "fuzzy", "gamer", "giant", "given", "glass", "glide", + "globe", "glory", "gnome", "grace", "grade", "grain", "grant", "grape", "grass", "grave", + "greed", "green", "grill", "groan", "group", "guard", "guess", "guide", "guilt", "habit", + "happy", "harsh", "haste", "haunt", "heart", "heavy", "hedge", "hello", "honey", "honor", + "horse", "hotel", "house", "hover", "human", "humor", "hurry", "image", "imply", "index", + "input", "issue", "ivory", "jewel", "jolly", "judge", "juice", "jumpy", "karma", "kayak", + "kebab", "kiosk", "knife", "knock", "label", "labor", "lapse", "laser", "later", "laugh", + "layer", "lemon", "level", "lever", "light", "limit", "liner", "logic", "loose", "lucky", + "lunar", "lunch", "magic", "major", "maker", "maple", "march", "marry", "match", "maybe", + "meant", "medal", "media", "merge", "metal", "meter", "might", "minor", "model", "money", + "month", "moral", "motor", "mount", "mouse", "mouth", "movie", "music", "myth", "naked", + "nanny", "naval", "nerve", "never", "noble", "noise", "north", "novel", "nurse", "ocean", + "offer", "onion", "order", "orbit", "organ", "other", "outer", "owner", "paint", "panic", + "paper", "party", "piano", "pilot", "place", "plant", "plate", "point", "polar", "power", + "press", "price", "pride", "prime", "prize", "prove", "pupil", "puppy", "queen", "quest", + "quiet", "quick", "quote", "radar", "radio", "range", "rapid", "reach", "ready", "rebel", + "refer", "reign", "relax", "reply", "reset", "rider", "right", "river", "robot", "rocky", + "rogue", "round", "royal", "rugby", "rumor", "ruler", "rural", "rusty", "salad", "sauce", + "scale", "scare", "scene", "scent", "scout", "screw", "sense", "serve", "shade", "shake", + "sharp", "sheep", "shift", "shirt", "shock", "short", "shout", "sight", "silly", "since", + "skill", "smile", "smoke", "snake", "solid", "solve", "space", "spare", "spark", "speak", + "speed", "spice", "spike", "spill", "spine", "split", "spoon", "sport", "spout", "spray", + "staff", "stage", "stair", "stake", "stamp", "stand", "start", "steam", "steel", "stick", + "sting", "stone", "store", "storm", "story", "straw", "strip", "stuck", "study", "style", + "sugar", "suite", "sunny", "super", "sweet", "table", "taker", "taste", "teach", "tease", + "tiger", "toast", "tooth", "torch", "track", "trade", "trail", "train", "trash", "trend", + "trial", "tribe", "trick", "troop", "trump", "trust", "truth", "tumor", "tutor", "twist", + "ultra", "uncle", "under", "union", "unite", "urban", "usage", "usher", "vapor", "vault", + "verse", "vivid", "voice", "voter", "wagon", "waste", "watch", "water", "weary", "weigh", + "weird", "whale", "wheel", "where", "while", "white", "whole", "whose", "widow", "wield", + "wince", "windy", "witch", "woman", "world", "worry", "wound", "wrath", "wreck", "wrist", + "write", "wrong", "yacht", "young", "youth", "zebra", "zesty", "zonal", + "aback", "abase", "abate", "abbey", "abbot", "abhor", "abide", "abled", "abode", "abort", + "about", "above", "abuse", "abyss", "acorn", "acrid", "actor", "acute", "adage", "adapt", + "added", "adder", "adept", "admin", "admit", "adobe", "adopt", "adore", "adorn", "adult", + "affix", "after", "again", "agent", "agile", "aging", "agree", "ahead", "aider", "aisle", + "alarm", "album", "alert", "algae", "alias", "alibi", "alien", "align", "alike", "alive", + "allay", "alley", "allot", "allow", "alloy", "aloft", "alone", "along", "aloof", "alpha", + "altar", "alter", "amber", "amend", "amiss", "amity", "among", "ample", "amply", "amuse", + "angel", "anger", "angle", "angry", "angst", "anime", "ankle", "annex", "annoy", "annul", + "anode", "antic", "anvil", "apart", "apple", "apply", "apron", "arena", "argue", "arise", + "armor", "aroma", "arose", "array", "arrow", "arson", "artsy", "ascot", "ashen", "aside", + "askew", "assay", "asset", "atlas", "attic", "audio", "audit", "aural", "avoid", "await", + "awake", "award", "aware", "awash", "awful", "axiom", "axles", "azure", "babel", "badge", + "bagel", "baggy", "baker", "baler", "balmy", "banal", "banjo", "barge", "baron", "basic", + "basil", "basin", "basis", "baste", "batch", "bathe", "baton", "bawdy", "beach", "beads", + "beady", "beard", "beast", "beech", "beefy", "befit", "began", "begin", "begun", "being", + "belch", "belie", "belle", "belly", "below", "bench", "beret", "berry", "berth", "beset", + "betel", "bevel", "bezel", "bible", "biddy", "bigot", "bilge", "bills", "binge", "bingo", + "birch", "birth", "bison", "black", "blade", "blame", "bland", "blank", "blare", "blast", + "blaze", "bleak", "bleed", "blend", "bless", "blimp", "blind", "blink", "bliss", "blitz", + "bloat", "block", "bloke", "blond", "blood", "bloom", "blown", "bluer", "bluff", "blunt", + "blurb", "blurt", "blush", "board", "boast", "bobby", "bokeh", "bolts", "bombs", "bonds", + "bonus", "booth", "boots", "booty", "booze", "borax", "borne", "bosom", "bossy", "botch", + "bound", "bowel", "bower", "brace", "braid", "brain", "brake", "brand", "brass", "brave", + "brawl", "bread", "break", "breed", "briar", "brick", "bride", "brief", "brine", "bring", + "brink", "brisk", "broad", "broil", "broke", "brood", "brook", "broom", "broth", "brown", + "brunt", "brush", "brute", "buddy", "budge", "buggy", "build", "built", "bulge", "bulky", + "bumpy", "bunch", "bunny", "burly", "burnt", "burst", "buyer", "bylaw", "cabin", "cable", + "cache", "cadet", "caged", "cages", "cairn", "camel", "cameo", "canal", "candy", "canoe", + "canon", "caped", "caper", "cargo", "carol", "carry", "carve", "caste", "catch", "cater", + "cause", "caved", "caver", "cedar", "chain", "chair", "chalk", "champ", "chant", "chaos", + "charm", "chart", "chase", "cheap", "check", "cheek", "cheer", "chess", "chest", "chick", + "chief", "child", "chill", "china", "chord", "chore", "chose", "chuck", "chunk", "churn", + "cider", "cigar", "clang", "clank", "clash", "clasp", "class", "clean", "clear", "cleat", + "cleft", "clerk", "click", "cliff", "climb", "cling", "clink", "cloak", "clock", "clone", + "close", "cloth", "cloud", "clout", "clove", "clown", "cluck", "clump", "clung", "coach", + "coast", "cobra", "coder", "coils", "coins", "colon", "color", "comet", "comic", "comma", + "condo", "cones", "conic", "cooed", "coral", "cords", "corny", "couch", "cough", "could", + "count", "court", "cover", "cozy", "craft", "crane", "crash", "crate", "crawl", "crazy", + "creek", "creep", "crest", "crime", "crisp", "cross", "crowd", "crown", "crude", "cruel", + "crumb", "crush", "crust", "crypt", "cubic", "cumin", "curly", "curse", "curve", "cuter", + "cycle", "cynic", "daddy", "daily", "dairy", "dance", "dandy", "dated", "daunt", "death", + "dealt", "debut", "decay", "decor", "defer", "deity", "delay", "delta", "demon", "denim", + "depot", "depth", "derby", "desks", "devil", "diary", "digit", "diner", "dingo", "dirty", + "ditch", "diver", "dizzy", "dodge", "dogma", "doing", "donor", "dopey", "doubt", "dough", + "dozen", "draft", "drain", "drama", "dream", "dried", "drift", "drink", "drive", "drone", + "drown", "duvet", "dwelt", "dying", "eager", "early", "earth", "easel", "eaten", "eater" +];