├── .github └── workflows │ └── build.yml ├── .gitignore ├── LICENSE ├── WORDS.8xv ├── icon.png ├── linker_script ├── makefile ├── readme.md ├── screenshot.png └── src ├── gfx ├── convimg.yaml ├── icon_help.png ├── icon_settings.png └── icon_stats.png ├── graphics.c ├── graphics.h ├── main.c ├── wordle.h ├── words.c └── words.h /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Makefile CI 2 | 3 | on: 4 | push: 5 | branches: [ "master" ] 6 | pull_request: 7 | branches: [ "master" ] 8 | 9 | jobs: 10 | build: 11 | 12 | runs-on: ubuntu-latest 13 | 14 | strategy: 15 | matrix: 16 | wordlist: [Original, Sellout] 17 | 18 | steps: 19 | - uses: actions/checkout@v3 20 | 21 | - uses: robinraju/release-downloader@v1.8 22 | with: 23 | repository: "CE-Programming/toolchain" 24 | latest: true 25 | fileName: "CEdev-Linux.tar.gz" 26 | out-file-path: "" 27 | extract: true 28 | 29 | - name: Set up PATH 30 | run: echo "PATH=$PATH:${{ github.workspace }}/CEdev/bin" >> $GITHUB_ENV 31 | 32 | - name: Make gfx 33 | run: make gfx 34 | 35 | - name: Run make 36 | run: make 37 | env: 38 | SELLOUT: ${{ (matrix.wordlist == 'Sellout') && 1 || 0 }} 39 | 40 | - name: Create artifact 41 | uses: actions/upload-artifact@v3 42 | with: 43 | name: Wordle ${{ matrix.wordlist }} 44 | path: bin/WORDLE.8xp 45 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | bin/ 2 | obj/ 3 | src/gfx/*.c 4 | src/gfx/*.h -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2022 John Cesarz 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /WORDS.8xv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/commandblockguy/wordle/cab9c5e910f434b87ccc2df176e4ae63d1b93d0f/WORDS.8xv -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/commandblockguy/wordle/cab9c5e910f434b87ccc2df176e4ae63d1b93d0f/icon.png -------------------------------------------------------------------------------- /linker_script: -------------------------------------------------------------------------------- 1 | require _main 2 | locate .text at $D1A87F 3 | order .text, .data, .rodata, .bss 4 | 5 | source "obj/main.c.src" 6 | 7 | if 1 8 | source "../lib/static/acos.src" 9 | source "../lib/static/atof.src" 10 | source "../lib/static/asin.c.src" 11 | source "../lib/static/atan.c.src" 12 | source "../lib/static/atan2.c.src" 13 | source "../lib/static/cosh.c.src" 14 | source "../lib/static/exp.c.src" 15 | source "../lib/static/floor.c.src" 16 | source "../lib/static/fmod.c.src" 17 | source "../lib/static/frexp.c.src" 18 | source "../lib/static/ldexp.c.src" 19 | source "../lib/static/log.c.src" 20 | source "../lib/static/log10.c.src" 21 | source "../lib/static/modf.c.src" 22 | source "../lib/static/pow.c.src" 23 | source "../lib/static/sin.c.src" 24 | source "../lib/static/sinh.c.src" 25 | source "../lib/static/sqrt.c.src" 26 | source "../lib/static/strtod.c.src" 27 | source "../lib/static/tan.c.src" 28 | source "../lib/static/tanh.c.src" 29 | source "../lib/static/ufltinfo.c.src" 30 | source "../lib/static/ufltrnd.c.src" 31 | source "../lib/static/ceil.src" 32 | source "../lib/static/cos.src" 33 | source "../lib/static/fabs.src" 34 | else 35 | source "../lib/linked/linked.src" 36 | end if 37 | source "../lib/shared/abort.src" 38 | source "../lib/shared/atomic_load_32.src" 39 | source "../lib/shared/atomic_load_decreasing_32.src" 40 | source "../lib/shared/atomic_load_increasing_32.src" 41 | source "../lib/shared/delay.src" 42 | source "../lib/shared/getstringinput.src" 43 | source "../lib/shared/intce.src" 44 | source "../lib/shared/os_textbuffer.src" 45 | source "../lib/shared/random.src" 46 | source "../lib/shared/tice.src" 47 | source "../lib/shared/zx7_Decompress.src" 48 | source "../lib/shared/abs.src" 49 | source "../lib/shared/atoi.src" 50 | source "../lib/shared/bbitrev.src" 51 | source "../lib/shared/bdivs.src" 52 | source "../lib/shared/bdivu.src" 53 | source "../lib/shared/bldix.src" 54 | source "../lib/shared/bmuls.src" 55 | source "../lib/shared/bmulu.src" 56 | source "../lib/shared/bpopcnt.src" 57 | source "../lib/shared/brems.src" 58 | source "../lib/shared/bremu.src" 59 | source "../lib/shared/bshrs.src" 60 | source "../lib/shared/acos.c.src" 61 | source "../lib/shared/asctime.c.src" 62 | source "../lib/shared/assert.c.src" 63 | source "../lib/shared/bsearch.c.src" 64 | source "../lib/shared/clearerr.c.src" 65 | source "../lib/shared/ctime.c.src" 66 | source "../lib/shared/difftime.c.src" 67 | source "../lib/shared/exception.cpp.src" 68 | source "../lib/shared/fclose.c.src" 69 | source "../lib/shared/feof.c.src" 70 | source "../lib/shared/ferror.c.src" 71 | source "../lib/shared/fflush.c.src" 72 | source "../lib/shared/fgetc.c.src" 73 | source "../lib/shared/fgets.c.src" 74 | source "../lib/shared/files.c.src" 75 | source "../lib/shared/fopen.c.src" 76 | source "../lib/shared/fputc.c.src" 77 | source "../lib/shared/fputs.c.src" 78 | source "../lib/shared/fread.c.src" 79 | source "../lib/shared/free.c.src" 80 | source "../lib/shared/fseek.c.src" 81 | source "../lib/shared/ftell.c.src" 82 | source "../lib/shared/fwrite.c.src" 83 | source "../lib/shared/gamma.c.src" 84 | source "../lib/shared/gmtime.c.src" 85 | source "../lib/shared/isleap.c.src" 86 | source "../lib/shared/localtime.c.src" 87 | source "../lib/shared/malloc.c.src" 88 | source "../lib/shared/maptab.c.src" 89 | source "../lib/shared/mktime.c.src" 90 | source "../lib/shared/new.cpp.src" 91 | source "../lib/shared/printf.c.src" 92 | source "../lib/shared/qsort.c.src" 93 | source "../lib/shared/realloc.c.src" 94 | source "../lib/shared/remove.c.src" 95 | source "../lib/shared/rewind.c.src" 96 | source "../lib/shared/strtol.c.src" 97 | source "../lib/shared/strtoul.c.src" 98 | source "../lib/shared/time.c.src" 99 | source "../lib/shared/type_traits.cpp.src" 100 | source "../lib/shared/utility.cpp.src" 101 | source "../lib/shared/calloc.src" 102 | source "../lib/shared/clock.src" 103 | source "../lib/shared/copysign.src" 104 | source "../lib/shared/div.src" 105 | source "../lib/shared/fpneg.src" 106 | source "../lib/shared/fpupop1.src" 107 | source "../lib/shared/fpupop2.src" 108 | source "../lib/shared/frameset.src" 109 | source "../lib/shared/frameset0.src" 110 | source "../lib/shared/frbmuls.src" 111 | source "../lib/shared/frimuls.src" 112 | source "../lib/shared/frimulu.src" 113 | source "../lib/shared/frsmuls.src" 114 | source "../lib/shared/frsmulu.src" 115 | source "../lib/shared/getchar.src" 116 | source "../lib/shared/ibitrev.src" 117 | source "../lib/shared/inchar.src" 118 | source "../lib/shared/indcallhl.src" 119 | source "../lib/shared/ipopcnt.src" 120 | source "../lib/shared/isalnum.src" 121 | source "../lib/shared/isalpha.src" 122 | source "../lib/shared/isascii.src" 123 | source "../lib/shared/iscntrl.src" 124 | source "../lib/shared/isdigit.src" 125 | source "../lib/shared/isfinitef.src" 126 | source "../lib/shared/isgraph.src" 127 | source "../lib/shared/isinff.src" 128 | source "../lib/shared/islower.src" 129 | source "../lib/shared/isnanf.src" 130 | source "../lib/shared/isprint.src" 131 | source "../lib/shared/ispunct.src" 132 | source "../lib/shared/isspace.src" 133 | source "../lib/shared/isupper.src" 134 | source "../lib/shared/isxdigit.src" 135 | source "../lib/shared/labs.src" 136 | source "../lib/shared/lbitrev.src" 137 | source "../lib/shared/ldiv.src" 138 | source "../lib/shared/log2.src" 139 | source "../lib/shared/lpopcnt.src" 140 | source "../lib/shared/memset.src" 141 | source "../lib/shared/outchar.src" 142 | source "../lib/shared/putchar.src" 143 | source "../lib/shared/puts.src" 144 | source "../lib/shared/rand.src" 145 | source "../lib/shared/round.src" 146 | source "../lib/shared/sbitrev.src" 147 | source "../lib/shared/sbrk.src" 148 | source "../lib/shared/shared.src" 149 | source "../lib/shared/spopcnt.src" 150 | source "../lib/shared/srand.src" 151 | source "../lib/shared/strdup.src" 152 | source "../lib/shared/strncasecmp.src" 153 | source "../lib/shared/strndup.src" 154 | source "../lib/shared/strnlen.src" 155 | -------------------------------------------------------------------------------- /makefile: -------------------------------------------------------------------------------- 1 | # ---------------------------- 2 | # Makefile Options 3 | # ---------------------------- 4 | 5 | NAME = WORDLE 6 | ICON = icon.png 7 | DESCRIPTION = "Wordle" 8 | COMPRESSED = YES 9 | ARCHIVED = YES 10 | 11 | WORDLIST ?= 1 12 | 13 | CFLAGS = -Wall -Wextra -Oz -DCOMMIT=\"$(shell git rev-parse --short HEAD)\" -DSELLOUT_MODE=$(SELLOUT) 14 | CXXFLAGS = -Wall -Wextra -Oz 15 | 16 | # ---------------------------- 17 | 18 | include $(shell cedev-config --makefile) 19 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | ### Wordle CE 2 | 3 | A clone of the word guessing game [Wordle](https://www.powerlanguage.co.uk/wordle/) 4 | for the TI-84 Plus CE and TI-83 Premium CE graphing calculators. 5 | 6 | ![Animated screenshot of gameplay](screenshot.png) 7 | 8 | ### Usage 9 | *(A video tutorial for the following steps is also available 10 | [here](https://www.youtube.com/watch?v=_e8pgw9d7S4))* 11 | 12 | Transfer [WORDLE_sellout.8xp](https://github.com/commandblockguy/wordle/releases/latest/download/WORDLE_sellout.8xp), 13 | [WORDS.8xv](https://github.com/commandblockguy/wordle/releases/latest/download/WORDS.8xv) 14 | and the [C Libraries](https://tiny.cc/clibs) to the calculator using TI Connect CE 15 | or TiLP. Then, select prgmWORDLE from the program menu and press enter. 16 | If this results in an error, [arTIfiCE](https://yvantt.github.io/arTIfiCE/) is 17 | required for your OS version. If you have not set your system clock, be sure to 18 | do that from the calculator's mode menu so that you can get the latest puzzle. 19 | 20 | Help is available in-game by pressing the y= key while the game is running. 21 | 22 | ### Compiling 23 | To build [this repository](https://github.com/commandblockguy/wordle) from source, 24 | the [CE C Toolchain](https://github.com/CE-Programming/toolchain) is required. 25 | After installing the toolchain, clone this repository and run `make gfx` 26 | inside it to generate the graphics data, and then `make` to compile. The output .8xp 27 | can be found in the `bin/` directory. 28 | 29 | ### Credits 30 | Based on [Wordle](https://www.powerlanguage.co.uk/wordle/) by Josh Wardle. -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/commandblockguy/wordle/cab9c5e910f434b87ccc2df176e4ae63d1b93d0f/screenshot.png -------------------------------------------------------------------------------- /src/gfx/convimg.yaml: -------------------------------------------------------------------------------- 1 | palettes: 2 | - name: mypalette 3 | fixed-entries: 4 | - color: {index: 0, r: 0, g: 0, b: 0} 5 | - color: {index: 1, r: 255, g: 255, b: 255} 6 | 7 | converts: 8 | - name: myimages 9 | palette: mypalette 10 | transparent-color-index: 0 11 | style: rlet 12 | images: 13 | - icon_help.png 14 | - icon_stats.png 15 | - icon_settings.png 16 | 17 | outputs: 18 | - type: c 19 | include-file: gfx.h 20 | converts: 21 | - myimages 22 | -------------------------------------------------------------------------------- /src/gfx/icon_help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/commandblockguy/wordle/cab9c5e910f434b87ccc2df176e4ae63d1b93d0f/src/gfx/icon_help.png -------------------------------------------------------------------------------- /src/gfx/icon_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/commandblockguy/wordle/cab9c5e910f434b87ccc2df176e4ae63d1b93d0f/src/gfx/icon_settings.png -------------------------------------------------------------------------------- /src/gfx/icon_stats.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/commandblockguy/wordle/cab9c5e910f434b87ccc2df176e4ae63d1b93d0f/src/gfx/icon_stats.png -------------------------------------------------------------------------------- /src/graphics.c: -------------------------------------------------------------------------------- 1 | #include "graphics.h" 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #include "gfx/gfx.h" 8 | 9 | #define TILE_SIZE 24 10 | #define TILE_SPACING 3 11 | #define TILE_BASE_X (LCD_WIDTH / 2 - 2 * (TILE_SIZE + TILE_SPACING)) 12 | #define TILE_BASE_Y 66 13 | 14 | enum color { 15 | COLOR_BG, 16 | COLOR_ICONS, 17 | COLOR_TEXT, 18 | COLOR_UNUSED, 19 | COLOR_ABSENT, 20 | COLOR_PRESENT, 21 | COLOR_CORRECT, 22 | COLOR_WHITE, 23 | }; 24 | 25 | const uint16_t palette_dark[] = { 26 | [COLOR_BG] = gfx_RGBTo1555(0x12, 0x12, 0x13), 27 | [COLOR_ICONS] = gfx_RGBTo1555(0x56, 0x57, 0x58), 28 | [COLOR_TEXT] = gfx_RGBTo1555(0xd7, 0xda, 0xdc), 29 | [COLOR_UNUSED] = gfx_RGBTo1555(0x81, 0x83, 0x84), 30 | [COLOR_ABSENT] = gfx_RGBTo1555(0x3a, 0x3a, 0x3c), 31 | [COLOR_PRESENT] = gfx_RGBTo1555(0xb5, 0x9f, 0x3b), 32 | [COLOR_CORRECT] = gfx_RGBTo1555(0x53, 0x8d, 0x4e), 33 | [COLOR_WHITE] = gfx_RGBTo1555(0xd7, 0xda, 0xdc), 34 | }; 35 | 36 | const uint16_t palette_light[] = { 37 | [COLOR_BG] = gfx_RGBTo1555(0xff, 0xff, 0xff), 38 | [COLOR_ICONS] = gfx_RGBTo1555(0x87, 0x8a, 0x8c), 39 | [COLOR_TEXT] = gfx_RGBTo1555(0x00, 0x00, 0x00), 40 | [COLOR_UNUSED] = gfx_RGBTo1555(0xd3, 0xd6, 0xda), 41 | [COLOR_ABSENT] = gfx_RGBTo1555(0x78, 0x7c, 0x7e), 42 | [COLOR_PRESENT] = gfx_RGBTo1555(0xc9, 0xb4, 0x58), 43 | [COLOR_CORRECT] = gfx_RGBTo1555(0x6a, 0xaa, 0x64), 44 | [COLOR_WHITE] = gfx_RGBTo1555(0xff, 0xff, 0xff), 45 | }; 46 | 47 | const uint24_t anim_lengths[] = { 48 | [ANIM_TYPE_LETTER] = 5, 49 | [ANIM_FLIP_ALL] = 35, 50 | [ANIM_FLIP_LINE] = 55, 51 | [ANIM_INVALID_WORD] = 20, 52 | [ANIM_SUCCESS] = 100, 53 | }; 54 | 55 | struct tile { 56 | char c; 57 | enum color bg; 58 | enum color border; 59 | enum color text_col; 60 | uint24_t center_x; 61 | uint24_t center_y; 62 | uint8_t width; 63 | uint8_t height; 64 | }; 65 | 66 | static void draw_tile(const struct tile *tile); 67 | static void get_tile_colors(struct tile *tile, enum tile_type type); 68 | static void flip_tile(struct tile *tile, int frame); 69 | static void disp_title(void); 70 | static void disp_toast(const char *toast); 71 | 72 | void graphics_init(void) { 73 | gfx_Begin(); 74 | graphics_set_palette(SETTING_DARK); 75 | gfx_FillScreen(COLOR_BG); 76 | gfx_SetDrawBuffer(); 77 | timer_Enable(1, TIMER_32K, TIMER_NOINT, TIMER_UP); 78 | timer_Set(1, 0); 79 | } 80 | 81 | void graphics_cleanup(void) { 82 | gfx_End(); 83 | } 84 | 85 | void graphics_frame(uint8_t cur_line, const char *word, const char guesses[][WORD_LENGTH], const char *toast, struct anim_state *anim_state) { 86 | gfx_SwapDraw(); 87 | gfx_FillScreen(COLOR_BG); 88 | 89 | disp_title(); 90 | 91 | if(toast && (anim_state->frame == 0 || anim_state->animation == ANIM_INVALID_WORD)) { 92 | disp_toast(toast); 93 | } 94 | 95 | for(uint8_t y = 0; y < MAX_GUESSES; y++) { 96 | for(uint8_t x = 0; x < WORD_LENGTH; x++) { 97 | enum tile_type type = get_tile_type(guesses, y, x, word, cur_line); 98 | struct tile tile; 99 | tile.c = guesses[y][x]; 100 | get_tile_colors(&tile, type); 101 | 102 | tile.center_x = TILE_BASE_X + (TILE_SIZE + TILE_SPACING) * x; 103 | tile.center_y = TILE_BASE_Y + (TILE_SIZE + TILE_SPACING) * y; 104 | 105 | tile.width = TILE_SIZE; 106 | tile.height = TILE_SIZE; 107 | 108 | if(anim_state->frame) { 109 | switch(anim_state->animation) { 110 | case ANIM_TYPE_LETTER: { 111 | if(y == cur_line && (x == WORD_LENGTH - 1 || !guesses[y][x+1]) && guesses[y][x]) { 112 | if(anim_state->frame == 5) { 113 | // skip drawing this tile this frame 114 | continue; 115 | } 116 | const int8_t sizes[] = {1, 2, 1, -1, 0}; 117 | tile.width = TILE_SIZE + sizes[anim_state->frame - 1]; 118 | tile.height = TILE_SIZE + sizes[anim_state->frame - 1]; 119 | } 120 | break; 121 | } 122 | case ANIM_FLIP_ALL: { 123 | if(y < cur_line && guesses[y][x]) { 124 | int tile_frame = 35 - anim_state->frame - 5 * x; 125 | flip_tile(&tile, tile_frame); 126 | } 127 | break; 128 | } 129 | case ANIM_FLIP_LINE: { 130 | if(y == cur_line - 1) { 131 | int tile_frame = 55 - anim_state->frame - 10 * x; 132 | flip_tile(&tile, tile_frame); 133 | } 134 | break; 135 | } 136 | case ANIM_INVALID_WORD: { 137 | if(y == cur_line) { 138 | if(anim_state->frame % 4 == 0) tile.center_x--; 139 | if(anim_state->frame % 4 == 2) tile.center_x++; 140 | } 141 | break; 142 | } 143 | case ANIM_SUCCESS: { 144 | if(y == cur_line - 1) { 145 | int tile_flip_frame = 100 - anim_state->frame - 10 * x; 146 | flip_tile(&tile, tile_flip_frame); 147 | 148 | int tile_hop_frame = 40 - anim_state->frame - 5 * x; 149 | int8_t heights[20] = {1, 3, 6, 8, 10, 11, 12, 8, 4, -1, 0, 4, 5, 5, 4, 2, 1, 0, -1, -1}; 150 | if(tile_hop_frame > 0 && tile_hop_frame <= 20) { 151 | tile.center_y -= heights[tile_hop_frame - 1]; 152 | } 153 | } 154 | break; 155 | } 156 | } 157 | } 158 | 159 | draw_tile(&tile); 160 | } 161 | } 162 | 163 | const uint8_t icon_y = LCD_HEIGHT - 22; 164 | gfx_RLETSprite_NoClip(icon_help, 1 * LCD_WIDTH / 10 - icon_help_width / 2, icon_y); 165 | gfx_RLETSprite_NoClip(icon_stats, 7 * LCD_WIDTH / 10 - icon_stats_width / 2, icon_y); 166 | gfx_RLETSprite_NoClip(icon_settings, 9 * LCD_WIDTH / 10 - icon_settings_width / 2, icon_y); 167 | 168 | #ifndef NDEBUG 169 | // debug stuff 170 | gfx_SetTextFGColor(COLOR_TEXT); 171 | gfx_SetTextScale(1, 1); 172 | gfx_SetTextXY(2, 30); 173 | gfx_PrintUInt(32768 / timer_Get(1), 1); 174 | timer_Set(1, 0); 175 | gfx_SetTextXY(2, 40); 176 | gfx_PrintUInt(anim_state->animation, 1); 177 | gfx_SetTextXY(2, 50); 178 | gfx_PrintUInt(anim_state->frame, 1); 179 | #endif 180 | 181 | if(anim_state->frame) { 182 | anim_state->frame--; 183 | } 184 | } 185 | 186 | void graphics_start_anim(struct anim_state *state, enum animation anim) { 187 | state->animation = anim; 188 | state->frame = anim_lengths[anim]; 189 | } 190 | 191 | static void flip_tile(struct tile *tile, int frame) { 192 | if(frame < 7) { 193 | tile->bg = COLOR_BG; 194 | tile->border = COLOR_ICONS; 195 | } 196 | if(frame > 0 && frame <= 15) { 197 | tile->height = abs(TILE_SIZE - frame * 2 * TILE_SIZE / 15); 198 | } 199 | } 200 | 201 | static void draw_tile(const struct tile *tile) { 202 | uint24_t base_x = tile->center_x - tile->width / 2; 203 | uint24_t base_y = tile->center_y - tile->height / 2; 204 | if(tile->bg != COLOR_BG) { 205 | gfx_SetColor(tile->bg); 206 | gfx_FillRectangle_NoClip(base_x, base_y, tile->width, tile->height); 207 | } 208 | gfx_SetColor(tile->border); 209 | gfx_Rectangle_NoClip(base_x, base_y, tile->width, tile->height); 210 | uint8_t height_scale = (tile->height - 4) / 8; 211 | if(tile->c && height_scale) { 212 | gfx_SetTextScale(2, height_scale); 213 | gfx_SetTextFGColor(tile->text_col); 214 | gfx_SetTextXY(tile->center_x - gfx_GetCharWidth(tile->c) / 2 + 1, tile->center_y - height_scale * 4 + 1); 215 | gfx_PrintChar(tile->c); 216 | } 217 | } 218 | 219 | static void get_tile_colors(struct tile *tile, enum tile_type type) { 220 | tile->text_col = COLOR_WHITE; 221 | switch (type) { 222 | case TILE_EMPTY: { 223 | tile->border = COLOR_ABSENT; 224 | tile->bg = COLOR_BG; 225 | return; 226 | } 227 | case TILE_UNSUBMITTED: { 228 | tile->border = COLOR_ICONS; 229 | tile->bg = COLOR_BG; 230 | tile->text_col = COLOR_TEXT; 231 | return; 232 | } 233 | case TILE_CORRECT: tile->border = tile->bg = COLOR_CORRECT; return; 234 | case TILE_PRESENT: tile->border = tile->bg = COLOR_PRESENT; return; 235 | case TILE_ABSENT: tile->border = tile->bg = COLOR_ABSENT; return; 236 | } 237 | } 238 | 239 | static void disp_title(void) { 240 | gfx_SetTextScale(2, 2); 241 | gfx_SetTextFGColor(COLOR_TEXT); 242 | const char string[] = "WORDLE"; 243 | gfx_PrintStringXY(string, (LCD_WIDTH - gfx_GetStringWidth(string)) / 2, 4); 244 | gfx_SetColor(COLOR_ICONS); 245 | gfx_HorizLine_NoClip(0, 24, LCD_WIDTH); 246 | } 247 | 248 | static void disp_toast(const char *toast) { 249 | gfx_SetTextScale(1, 1); 250 | const uint8_t base_y = 32; 251 | uint24_t width = gfx_GetStringWidth(toast) + 8; 252 | uint24_t base_x = (LCD_WIDTH - width) / 2; 253 | gfx_SetColor(COLOR_TEXT); 254 | gfx_FillRectangle_NoClip(base_x, base_y + 1, width, 14); 255 | gfx_HorizLine_NoClip(base_x + 1, base_y, width - 2); 256 | gfx_HorizLine_NoClip(base_x + 1, base_y + 15, width - 2); 257 | gfx_SetTextFGColor(COLOR_BG); 258 | gfx_PrintStringXY(toast, base_x + 4, base_y + 4); 259 | } 260 | 261 | void graphics_screen_error(const char *msg[], uint8_t lines) { 262 | gfx_FillScreen(COLOR_BG); 263 | disp_title(); 264 | gfx_SetTextFGColor(COLOR_TEXT); 265 | gfx_SetTextScale(1, 1); 266 | for(uint8_t i = 0; i < lines; i++) { 267 | gfx_PrintStringXY(msg[i], (LCD_WIDTH - gfx_GetStringWidth(msg[i])) / 2, LCD_HEIGHT / 3 + 10 * i); 268 | } 269 | gfx_SwapDraw(); 270 | } 271 | 272 | void graphics_screen_help(void) { 273 | uint24_t base_x = 4; 274 | 275 | gfx_FillScreen(COLOR_BG); 276 | gfx_SetTextScale(1, 1); 277 | gfx_SetTextFGColor(COLOR_TEXT); 278 | 279 | const char *how_to_play = "HOW TO PLAY"; 280 | gfx_PrintStringXY(how_to_play, (LCD_WIDTH - gfx_GetStringWidth(how_to_play)) / 2, 4); 281 | 282 | const struct { 283 | uint8_t y; 284 | const char *str; 285 | } text[] = { 286 | {16, "Guess the WORDLE in 6 tries."}, 287 | {29, "Each guess must be a valid 5 letter word."}, 288 | {39, "Hit the enter key to submit."}, 289 | {52, "After each guess, the color of the tiles"}, 290 | {62, "will change to show how close your guess"}, 291 | {72, "was to the word."}, 292 | {85, "Examples"}, 293 | {124, "W is in the word and in the correct spot."}, 294 | {168, "I is in the word but in the wrong spot."}, 295 | {212, "G is not in the word in any spot."}, 296 | {227, "A new WORDLE will be available each day!"}, 297 | }; 298 | 299 | for(uint8_t i = 0; i < sizeof text / sizeof text[0]; i++) { 300 | gfx_PrintStringXY(text[i].str, base_x, text[i].y); 301 | } 302 | 303 | const struct { 304 | uint8_t y; 305 | struct { 306 | char c; 307 | enum color bg; 308 | enum color border; 309 | } tiles[WORD_LENGTH]; 310 | } examples[] = { 311 | {95, { 312 | {'W', COLOR_CORRECT, COLOR_CORRECT}, 313 | {'E', COLOR_BG, COLOR_ABSENT}, 314 | {'A', COLOR_BG, COLOR_ABSENT}, 315 | {'R', COLOR_BG, COLOR_ABSENT}, 316 | {'Y', COLOR_BG, COLOR_ABSENT}, 317 | }}, 318 | {139, { 319 | {'P', COLOR_BG, COLOR_ABSENT}, 320 | {'I', COLOR_PRESENT, COLOR_PRESENT}, 321 | {'L', COLOR_BG, COLOR_ABSENT}, 322 | {'L', COLOR_BG, COLOR_ABSENT}, 323 | {'S', COLOR_BG, COLOR_ABSENT}, 324 | }}, 325 | {183, { 326 | {'V', COLOR_BG, COLOR_ABSENT}, 327 | {'A', COLOR_BG, COLOR_ABSENT}, 328 | {'G', COLOR_ABSENT, COLOR_ABSENT}, 329 | {'U', COLOR_BG, COLOR_ABSENT}, 330 | {'E', COLOR_BG, COLOR_ABSENT}, 331 | }}, 332 | }; 333 | 334 | for(uint8_t i = 0; i < sizeof examples / sizeof examples[0]; i++) { 335 | for(uint8_t j = 0; j < WORD_LENGTH; j++) { 336 | struct tile tile = { 337 | .c = examples[i].tiles[j].c, 338 | .bg = examples[i].tiles[j].bg, 339 | .border = examples[i].tiles[j].border, 340 | .text_col = COLOR_WHITE, 341 | .center_x = base_x + TILE_SIZE / 2 + (TILE_SIZE + TILE_SPACING) * j, 342 | .center_y = examples[i].y + TILE_SIZE / 2, 343 | .width = TILE_SIZE, 344 | .height = TILE_SIZE 345 | }; 346 | draw_tile(&tile); 347 | } 348 | } 349 | 350 | gfx_SwapDraw(); 351 | } 352 | 353 | void graphics_screen_stats(uint24_t games_played, uint24_t current_streak, uint24_t max_streak, uint16_t *guess_counts, 354 | uint8_t current_guesses) { 355 | gfx_FillScreen(COLOR_BG); 356 | gfx_SetTextFGColor(COLOR_TEXT); 357 | gfx_SetTextScale(1, 1); 358 | const uint8_t numbers_y = 40; 359 | const struct { 360 | uint24_t center_x; 361 | uint8_t y; 362 | const char *str; 363 | } text[] = { 364 | {LCD_WIDTH / 2, 16, "STATISTICS"}, 365 | {1 * LCD_WIDTH / 5, numbers_y + 24, "Played"}, 366 | {2 * LCD_WIDTH / 5, numbers_y + 24, "Win %"}, 367 | {3 * LCD_WIDTH / 5, numbers_y + 24, "Current"}, 368 | {3 * LCD_WIDTH / 5, numbers_y + 34, "Streak"}, 369 | {4 * LCD_WIDTH / 5, numbers_y + 24, "Max"}, 370 | {4 * LCD_WIDTH / 5, numbers_y + 34, "Streak"}, 371 | {LCD_WIDTH / 2, 90, "GUESS DISTRIBUTION"}, 372 | {LCD_WIDTH / 2, 190, "NEXT WORDLE"} 373 | }; 374 | for(uint8_t i = 0; i < sizeof text / sizeof text[0]; i++) { 375 | gfx_PrintStringXY(text[i].str, text[i].center_x - gfx_GetStringWidth(text[i].str) / 2, text[i].y); 376 | } 377 | 378 | uint24_t total_wins = 0; 379 | for(uint8_t i = 0; i < MAX_GUESSES; i++) { 380 | total_wins += guess_counts[i]; 381 | } 382 | 383 | gfx_SetTextScale(2, 2); 384 | gfx_SetTextXY(1 * LCD_WIDTH / 5 - 20, numbers_y); 385 | gfx_PrintUInt(games_played, 1); 386 | gfx_SetTextXY(2 * LCD_WIDTH / 5 - 20, numbers_y); 387 | if(games_played) { 388 | gfx_PrintUInt(100 * total_wins / games_played, 1); 389 | } else { 390 | gfx_PrintChar('-'); 391 | } 392 | gfx_SetTextXY(3 * LCD_WIDTH / 5 - 20, numbers_y); 393 | gfx_PrintUInt(current_streak, 1); 394 | gfx_SetTextXY(4 * LCD_WIDTH / 5 - 20, numbers_y); 395 | gfx_PrintUInt(max_streak, 1); 396 | 397 | gfx_SetTextScale(1, 1); 398 | 399 | uint24_t max_count = 0; 400 | for(uint8_t i = 0; i < MAX_GUESSES; i++) { 401 | if(guess_counts[i] > max_count) { 402 | max_count = guess_counts[i]; 403 | } 404 | } 405 | 406 | for(uint8_t i = 0; i < MAX_GUESSES; i++) { 407 | uint8_t y = 105 + 13 * i; 408 | const uint24_t base_x = 32; 409 | const uint24_t max_width = LCD_WIDTH - base_x * 2 - 22; 410 | const uint8_t base_width = 24; 411 | uint24_t width = max_count ? base_width + guess_counts[i] * max_width / max_count : base_width; 412 | gfx_SetTextFGColor(COLOR_TEXT); 413 | gfx_SetTextXY(base_x, y + 2); 414 | gfx_PrintUInt(i + 1, 1); 415 | 416 | if(current_guesses == i + 1) { 417 | gfx_SetColor(COLOR_CORRECT); 418 | } else { 419 | gfx_SetColor(COLOR_ABSENT); 420 | } 421 | gfx_FillRectangle_NoClip(base_x + 11, y, width, 11); 422 | 423 | gfx_SetTextXY(base_x + width - 6, y + 2); 424 | gfx_SetTextFGColor(COLOR_WHITE); 425 | gfx_PrintUInt(guess_counts[i], 1); 426 | } 427 | 428 | int hours = 23 - time(NULL) / (60 * 60) % 24; 429 | int minutes = 59 - time(NULL) / 60 % 60; 430 | int seconds = 59 - time(NULL) % 60; 431 | gfx_SetTextFGColor(COLOR_TEXT); 432 | gfx_SetTextScale(2, 2); 433 | gfx_SetTextXY(108, 210); 434 | gfx_PrintUInt(hours, 2); 435 | gfx_PrintChar(':'); 436 | gfx_PrintUInt(minutes, 2); 437 | gfx_PrintChar(':'); 438 | gfx_PrintUInt(seconds, 2); 439 | 440 | gfx_SwapDraw(); 441 | } 442 | 443 | void disp_toggle(bool state, uint8_t y, bool highlighted) { 444 | const uint8_t radius = 6; 445 | const uint8_t length = 12; 446 | const uint24_t x = LCD_WIDTH - radius * 2 - length - 12; 447 | gfx_SetColor(state ? COLOR_CORRECT : COLOR_ABSENT); 448 | gfx_FillRectangle_NoClip(x + radius + 1, y, length + 2, radius * 2 + 1); 449 | gfx_FillCircle_NoClip(x + radius, y + radius, radius); 450 | gfx_FillCircle_NoClip(x + radius + length, y + radius, radius); 451 | gfx_SetColor(COLOR_TEXT); 452 | gfx_FillCircle_NoClip(x + radius + (state ? length : 0), y + radius, radius - 1); 453 | if(highlighted) { 454 | gfx_SetColor(COLOR_WHITE); 455 | gfx_PrintStringXY(">", x - gfx_GetCharWidth('>') - 1, y + radius - 4); 456 | gfx_PrintStringXY("<", x + radius * 2 + length + 3, y + radius - 4); 457 | } 458 | } 459 | 460 | void graphics_screen_settings(uint8_t settings, uint8_t selection, uint24_t day) { 461 | gfx_FillScreen(COLOR_BG); 462 | 463 | gfx_SetTextScale(1, 1); 464 | gfx_SetTextFGColor(COLOR_TEXT); 465 | 466 | const char *text_settings = "SETTINGS"; 467 | gfx_PrintStringXY(text_settings, (LCD_WIDTH - gfx_GetStringWidth(text_settings)) / 2, 16); 468 | 469 | const struct { 470 | const char *text; 471 | const char *description; 472 | } items[] = { 473 | {"Hard Mode", "Must use revealed hints in future guesses"}, 474 | {"Dark Theme", ""}, 475 | {"Color Blind Mode", "High contrast colors"}, 476 | }; 477 | 478 | const uint24_t x = 4; 479 | 480 | 481 | for(uint8_t i = 0; i < sizeof items / sizeof items[0]; i++) { 482 | uint8_t y = 50 + 45 * i; 483 | gfx_SetTextFGColor(COLOR_TEXT); 484 | gfx_SetTextScale(2, 2); 485 | gfx_PrintStringXY(items[i].text, x, y); 486 | gfx_SetTextFGColor(COLOR_ICONS); 487 | gfx_SetTextScale(1, 1); 488 | gfx_PrintStringXY(items[i].description, x, y + 20); 489 | gfx_SetColor(COLOR_ICONS); 490 | gfx_HorizLine_NoClip(x, y + 35, LCD_WIDTH - 2 * x); 491 | disp_toggle((settings >> i) & 1, y, i == selection); 492 | } 493 | 494 | gfx_SetTextFGColor(COLOR_ICONS); 495 | gfx_SetTextXY(LCD_WIDTH - 40, LCD_HEIGHT - 20); 496 | gfx_PrintChar('#'); 497 | gfx_PrintUInt(day, 1); 498 | 499 | gfx_PrintStringXY(COMMIT, LCD_WIDTH - gfx_GetStringWidth(COMMIT) - 8, LCD_HEIGHT - 10); 500 | 501 | gfx_SwapDraw(); 502 | } 503 | 504 | void graphics_set_palette(uint8_t settings) { 505 | if(settings & SETTING_DARK) { 506 | gfx_SetPalette(palette_dark, sizeof palette_dark, 0); 507 | } else { 508 | gfx_SetPalette(palette_light, sizeof palette_light, 0); 509 | } 510 | if(settings & SETTING_CONTRAST) { 511 | gfx_palette[COLOR_CORRECT] = gfx_RGBTo1555(0xf5, 0x79, 0x3a); 512 | gfx_palette[COLOR_PRESENT] = gfx_RGBTo1555(0x85, 0xc0, 0xf9); 513 | } 514 | } 515 | -------------------------------------------------------------------------------- /src/graphics.h: -------------------------------------------------------------------------------- 1 | #ifndef WORDLE_GRAPHICS_H 2 | #define WORDLE_GRAPHICS_H 3 | 4 | #include "wordle.h" 5 | 6 | enum animation { 7 | ANIM_TYPE_LETTER, 8 | ANIM_FLIP_ALL, 9 | ANIM_FLIP_LINE, 10 | ANIM_INVALID_WORD, 11 | ANIM_SUCCESS, 12 | }; 13 | 14 | struct anim_state { 15 | enum animation animation; 16 | uint8_t frame; 17 | }; 18 | 19 | void graphics_init(void); 20 | void graphics_cleanup(void); 21 | 22 | void graphics_set_palette(uint8_t settings); 23 | 24 | void graphics_frame(uint8_t cur_line, const char *word, const char guesses[][WORD_LENGTH], const char *toast, struct anim_state *anim_state); 25 | 26 | void graphics_start_anim(struct anim_state *state, enum animation anim); 27 | 28 | void graphics_screen_error(const char *msg[], uint8_t lines); 29 | void graphics_screen_help(void); 30 | void graphics_screen_stats(uint24_t games_played, uint24_t current_streak, uint24_t max_streak, uint16_t *guess_counts, 31 | uint8_t current_guesses); 32 | void graphics_screen_settings(uint8_t settings, uint8_t selection, uint24_t day); 33 | 34 | #endif //WORDLE_GRAPHICS_H 35 | -------------------------------------------------------------------------------- /src/main.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include "graphics.h" 6 | #include "words.h" 7 | 8 | /* 9 | *-------------------------------------- 10 | * Program Name: Wordle 11 | * Author: commandblockguy 12 | * License: MIT 13 | * Description: A clone of the word-guessing game Wordle. 14 | *-------------------------------------- 15 | */ 16 | 17 | const char (*words)[WORD_LENGTH]; 18 | uint16_t num_words; 19 | 20 | enum tile_type get_tile_type(const char guesses[][WORD_LENGTH], uint8_t guess, uint8_t pos, const char *word, uint8_t num_guesses) { 21 | char c = guesses[guess][pos]; 22 | if(!c) { 23 | return TILE_EMPTY; 24 | } else if(guess == num_guesses) { 25 | return TILE_UNSUBMITTED; 26 | } else if(c == word[pos]) { 27 | return TILE_CORRECT; 28 | } else { 29 | // Count occurrences in answer 30 | uint8_t count_answer = 0; 31 | uint8_t count_correct = 0; 32 | for(uint8_t i = 0; i < WORD_LENGTH; i++) { 33 | if(c == word[i]) { 34 | count_answer++; 35 | if(guesses[guess][i] == word[i]) { 36 | count_correct++; 37 | } 38 | } 39 | } 40 | // Count how many tiles with this letter have already been shown as present or correct 41 | uint8_t count_prev = 0; 42 | for(uint8_t i = 0; i < pos; i++) { 43 | if(c == guesses[guess][i]) { 44 | count_prev++; 45 | } 46 | } 47 | // Only mark present if there are fewer of this character already marked than there are in the answer 48 | if(count_answer - count_correct > count_prev) return TILE_PRESENT; 49 | else return TILE_ABSENT; 50 | } 51 | } 52 | 53 | bool is_word_in_list(const char *word) { 54 | int min = 0; 55 | int max = num_words; 56 | while(min <= max) { 57 | int mean = (min + max) / 2; 58 | int diff = memcmp(words[mean], word, WORD_LENGTH); 59 | if(diff < 0) min = mean + 1; 60 | else if(diff > 0) max = mean - 1; 61 | else return true; 62 | } 63 | return false; 64 | } 65 | 66 | const char *validate_word(const char guesses[][WORD_LENGTH], const char *word, uint8_t cur_guess, uint8_t settings) { 67 | const char *guess = guesses[cur_guess]; 68 | if(strnlen(guess, 5) != 5) return "Not enough letters"; 69 | if(!is_word_in_list(guess)) return "Not in word list"; 70 | 71 | if(settings & SETTING_HARD && cur_guess > 0) { 72 | const char *prev_guess = guesses[cur_guess - 1]; 73 | static char text_position[] = "___ letter must be _"; 74 | dbg_printf("hard mode\n"); 75 | for(uint8_t i = 0; i < WORD_LENGTH; i++) { 76 | const char ordinals[WORD_LENGTH][3] = {"1st", "2nd", "3rd", "4th", "5th"}; 77 | if(guess[i] != prev_guess[i] && get_tile_type(guesses, cur_guess - 1, i, word, cur_guess) == TILE_CORRECT) { 78 | memcpy(text_position, ordinals[i], 3); 79 | text_position[19] = prev_guess[i]; 80 | return text_position; 81 | } 82 | } 83 | static char text_contains[] = "Guess must contain _"; 84 | for(uint8_t i = 0; i < WORD_LENGTH; i++) { 85 | if(get_tile_type(guesses, cur_guess - 1, i, word, cur_guess) != TILE_PRESENT) { 86 | continue; 87 | } 88 | bool found = false; 89 | for(uint8_t j = 0; j < WORD_LENGTH; j++) { 90 | if(guess[j] == prev_guess[i]) { 91 | found = true; 92 | break; 93 | } 94 | } 95 | if(!found) { 96 | text_contains[19] = prev_guess[i]; 97 | return text_contains; 98 | } 99 | } 100 | return NULL; 101 | } else { 102 | return NULL; 103 | } 104 | } 105 | 106 | int get_day_number(void) { 107 | time_t current = time(NULL); 108 | time_t start = 1624060800; 109 | return (long)(current - start) / (60 * 60 * 24); 110 | } 111 | 112 | void screen_help(void) { 113 | do { 114 | graphics_screen_help(); 115 | } while(!os_GetCSC()); 116 | } 117 | 118 | void screen_settings(uint8_t *settings, uint24_t day) { 119 | int8_t selection = 0; 120 | sk_key_t key; 121 | do { 122 | key = os_GetCSC(); 123 | switch (key) { 124 | case sk_Up: { 125 | selection--; 126 | if(selection < 0) { 127 | selection = 2; 128 | } 129 | break; 130 | } 131 | case sk_Down: { 132 | selection++; 133 | if(selection >= 3) { 134 | selection = 0; 135 | } 136 | break; 137 | } 138 | case sk_Enter: 139 | case sk_Left: 140 | case sk_Right: { 141 | *settings ^= 1 << selection; 142 | graphics_set_palette(*settings); 143 | break; 144 | } 145 | } 146 | graphics_screen_settings(*settings, selection, day); 147 | } while(key != sk_Clear); 148 | } 149 | 150 | void play_game(int day) { 151 | struct save save = {}; 152 | 153 | FILE *f = fopen("WORDLE", "r"); 154 | if(f) { 155 | fread(&save, sizeof save, 1, f); 156 | if(save.day != day) { 157 | if(save.day != day - 1) { 158 | save.current_streak = 0; 159 | } 160 | memset(save.guesses, 0, sizeof save.guesses); 161 | save.num_guesses = 0; 162 | } 163 | fclose(f); 164 | f = NULL; 165 | } else { 166 | screen_help(); 167 | save.settings = SETTING_DARK; 168 | } 169 | 170 | graphics_set_palette(save.settings); 171 | 172 | dbg_printf("day: %u\n", save.day); 173 | dbg_printf("num guesses: %u\n", save.num_guesses); 174 | dbg_printf("streak: %u\n", save.current_streak); 175 | dbg_printf("max streak: %u\n", save.max_streak); 176 | dbg_printf("played: %u\n", save.games_played); 177 | dbg_printf("guesses: %.30s\n", *save.guesses); 178 | 179 | save.day = day; 180 | 181 | const char *word = answers[day]; 182 | uint8_t input_index = strnlen(save.guesses[save.num_guesses], WORD_LENGTH); 183 | struct anim_state anim_state; 184 | bool completed = save.num_guesses == MAX_GUESSES || (save.num_guesses && memcmp(save.guesses[save.num_guesses - 1], word, WORD_LENGTH) == 0); 185 | const char *toast = NULL; 186 | 187 | graphics_start_anim(&anim_state, ANIM_FLIP_ALL); 188 | 189 | sk_key_t key; 190 | while ((key = os_GetCSC()) != sk_Clear) { 191 | switch (key) { 192 | case sk_Enter: { 193 | if(!completed) { 194 | if(memcmp(save.guesses[save.num_guesses], word, WORD_LENGTH) == 0) { 195 | // Guess matches word 196 | save.games_played++; 197 | save.guess_counts[save.num_guesses]++; 198 | save.current_streak++; 199 | if(save.current_streak > save.max_streak) { 200 | save.max_streak = save.current_streak; 201 | } 202 | save.num_guesses++; 203 | input_index = 0; 204 | graphics_start_anim(&anim_state, ANIM_SUCCESS); 205 | completed = true; 206 | static const char *results[] = { 207 | "Genius", 208 | "Magnificent", 209 | "Impressive", 210 | "Splendid", 211 | "Great", 212 | "Phew", 213 | }; 214 | toast = results[save.num_guesses - 1]; 215 | } else if(!(toast = validate_word(save.guesses, word, save.num_guesses, save.settings))) { 216 | // Guess is valid word that's not today's 217 | save.num_guesses++; 218 | input_index = 0; 219 | graphics_start_anim(&anim_state, ANIM_FLIP_LINE); 220 | if(save.num_guesses == MAX_GUESSES) { 221 | // Game is lost 222 | completed = true; 223 | save.games_played++; 224 | save.current_streak = 0; 225 | toast = word; 226 | } 227 | } else { 228 | // Word is invalid 229 | graphics_start_anim(&anim_state, ANIM_INVALID_WORD); 230 | } 231 | } 232 | break; 233 | } 234 | 235 | case sk_Del: { 236 | if(input_index > 0 && !completed) { 237 | input_index--; 238 | save.guesses[save.num_guesses][input_index] = 0; 239 | toast = NULL; 240 | } 241 | break; 242 | } 243 | 244 | case sk_Yequ: { 245 | screen_help(); 246 | break; 247 | } 248 | 249 | case sk_Trace: { 250 | do { 251 | graphics_screen_stats(save.games_played, save.current_streak, save.max_streak, save.guess_counts, 252 | completed ? save.num_guesses : 0); 253 | } while(!os_GetCSC()); 254 | break; 255 | } 256 | 257 | case sk_Graph: { 258 | screen_settings(&save.settings, day); 259 | break; 260 | } 261 | 262 | default: { 263 | const char *chars = "\0\0\0\0\0\0\0\0\0\0\0WRMH\0\0\0\0VQLG\0\0\0ZUPKFC\0\0YTOJEB\0\0XSNIDA\0\0\0\0\0\0\0\0"; 264 | if(chars[key] && input_index < WORD_LENGTH && !completed) { 265 | save.guesses[save.num_guesses][input_index] = chars[key]; 266 | input_index++; 267 | graphics_start_anim(&anim_state, ANIM_TYPE_LETTER); 268 | } 269 | } 270 | } 271 | 272 | graphics_frame(save.num_guesses, word, save.guesses, toast, &anim_state); 273 | } 274 | 275 | f = fopen("WORDLE", "w"); 276 | if(f) { 277 | fwrite(&save, sizeof save, 1, f); 278 | fclose(f); 279 | f = NULL; 280 | } else { 281 | dbg_printf("write fopen failed\n"); 282 | } 283 | } 284 | 285 | void error_set_time(void) { 286 | do { 287 | const char *msg[] = { 288 | "Before playing, please set", 289 | "the system clock to today's", 290 | "date from the mode menu.", 291 | }; 292 | graphics_screen_error(msg, 3); 293 | } while(os_GetCSC() != sk_Clear); 294 | } 295 | 296 | void error_no_puzzle(void) { 297 | do { 298 | const char *msg[] = { 299 | "We've somehow run out of puzzles.", 300 | "", 301 | "Sorry about that, inhabitant", 302 | "of the far future." 303 | }; 304 | graphics_screen_error(msg, 4); 305 | } while(os_GetCSC() != sk_Clear); 306 | } 307 | 308 | void error_no_appvar(void) { 309 | do { 310 | const char *msg[] = { 311 | "Word list not found.", 312 | "Please resend WORDS.8xv.", 313 | }; 314 | graphics_screen_error(msg, 2); 315 | } while(os_GetCSC() != sk_Clear); 316 | } 317 | 318 | int main(void) { 319 | graphics_init(); 320 | 321 | int day = get_day_number(); 322 | dbg_printf("WORDLE: day %i\n", day); 323 | 324 | void *appvar_data = os_GetAppVarData("WORDS", NULL); 325 | 326 | if(!appvar_data) { 327 | error_no_appvar(); 328 | } else if(day < 0) { 329 | error_set_time(); 330 | } else if(day >= num_answers) { 331 | error_no_puzzle(); 332 | } else { 333 | words = appvar_data + 2; 334 | num_words = *((uint16_t*)appvar_data) / WORD_LENGTH; 335 | dbg_printf("found %u words, starting with %.5s\n", num_words, words[0]); 336 | play_game(day); 337 | } 338 | 339 | graphics_cleanup(); 340 | return 0; 341 | } 342 | -------------------------------------------------------------------------------- /src/wordle.h: -------------------------------------------------------------------------------- 1 | #ifndef WORDLE_WORDLE_H 2 | #define WORDLE_WORDLE_H 3 | 4 | #include 5 | #include 6 | 7 | #define WORD_LENGTH 5 8 | #define MAX_GUESSES 6 9 | 10 | #define SETTING_HARD (1 << 0) 11 | #define SETTING_DARK (1 << 1) 12 | #define SETTING_CONTRAST (1 << 2) 13 | 14 | struct save { 15 | uint16_t day; 16 | uint8_t num_guesses; 17 | char guesses[MAX_GUESSES][WORD_LENGTH]; 18 | uint16_t games_played; 19 | uint16_t current_streak; 20 | uint16_t max_streak; 21 | uint16_t guess_counts[MAX_GUESSES]; 22 | uint8_t settings; 23 | }; 24 | 25 | enum tile_type { 26 | TILE_EMPTY, 27 | TILE_UNSUBMITTED, 28 | TILE_ABSENT, 29 | TILE_PRESENT, 30 | TILE_CORRECT, 31 | }; 32 | 33 | enum tile_type get_tile_type(const char guesses[][WORD_LENGTH], uint8_t guess, uint8_t pos, const char *word, uint8_t num_guesses); 34 | 35 | #endif //WORDLE_WORDLE_H 36 | -------------------------------------------------------------------------------- /src/words.c: -------------------------------------------------------------------------------- 1 | #include "words.h" 2 | 3 | #ifndef SELLOUT_MODE 4 | #define SELLOUT_MODE 0 5 | #endif 6 | 7 | // WARNING: Here be spoilers! 8 | 9 | const char answers[][WORD_LENGTH + 1] = { 10 | #if !SELLOUT_MODE 11 | "CIGAR", 12 | "REBUT", 13 | "SISSY", 14 | "HUMPH", 15 | "AWAKE", 16 | "BLUSH", 17 | "FOCAL", 18 | "EVADE", 19 | "NAVAL", 20 | "SERVE", 21 | "HEATH", 22 | "DWARF", 23 | "MODEL", 24 | "KARMA", 25 | "STINK", 26 | "GRADE", 27 | "QUIET", 28 | "BENCH", 29 | "ABATE", 30 | "FEIGN", 31 | "MAJOR", 32 | "DEATH", 33 | "FRESH", 34 | "CRUST", 35 | "STOOL", 36 | "COLON", 37 | "ABASE", 38 | "MARRY", 39 | "REACT", 40 | "BATTY", 41 | "PRIDE", 42 | "FLOSS", 43 | "HELIX", 44 | "CROAK", 45 | "STAFF", 46 | "PAPER", 47 | "UNFED", 48 | "WHELP", 49 | "TRAWL", 50 | "OUTDO", 51 | "ADOBE", 52 | "CRAZY", 53 | "SOWER", 54 | "REPAY", 55 | "DIGIT", 56 | "CRATE", 57 | "CLUCK", 58 | "SPIKE", 59 | "MIMIC", 60 | "POUND", 61 | "MAXIM", 62 | "LINEN", 63 | "UNMET", 64 | "FLESH", 65 | "BOOBY", 66 | "FORTH", 67 | "FIRST", 68 | "STAND", 69 | "BELLY", 70 | "IVORY", 71 | "SEEDY", 72 | "PRINT", 73 | "YEARN", 74 | "DRAIN", 75 | "BRIBE", 76 | "STOUT", 77 | "PANEL", 78 | "CRASS", 79 | "FLUME", 80 | "OFFAL", 81 | "AGREE", 82 | "ERROR", 83 | "SWIRL", 84 | "ARGUE", 85 | "BLEED", 86 | "DELTA", 87 | "FLICK", 88 | "TOTEM", 89 | "WOOER", 90 | "FRONT", 91 | "SHRUB", 92 | "PARRY", 93 | "BIOME", 94 | "LAPEL", 95 | "START", 96 | "GREET", 97 | "GONER", 98 | "GOLEM", 99 | "LUSTY", 100 | "LOOPY", 101 | "ROUND", 102 | "AUDIT", 103 | "LYING", 104 | "GAMMA", 105 | "LABOR", 106 | "ISLET", 107 | "CIVIC", 108 | "FORGE", 109 | "CORNY", 110 | "MOULT", 111 | "BASIC", 112 | "SALAD", 113 | "AGATE", 114 | "SPICY", 115 | "SPRAY", 116 | "ESSAY", 117 | "FJORD", 118 | "SPEND", 119 | "KEBAB", 120 | "GUILD", 121 | "ABACK", 122 | "MOTOR", 123 | "ALONE", 124 | "HATCH", 125 | "HYPER", 126 | "THUMB", 127 | "DOWRY", 128 | "OUGHT", 129 | "BELCH", 130 | "DUTCH", 131 | "PILOT", 132 | "TWEED", 133 | "COMET", 134 | "JAUNT", 135 | "ENEMA", 136 | "STEED", 137 | "ABYSS", 138 | "GROWL", 139 | "FLING", 140 | "DOZEN", 141 | "BOOZY", 142 | "ERODE", 143 | "WORLD", 144 | "GOUGE", 145 | "CLICK", 146 | "BRIAR", 147 | "GREAT", 148 | "ALTAR", 149 | "PULPY", 150 | "BLURT", 151 | "COAST", 152 | "DUCHY", 153 | "GROIN", 154 | "FIXER", 155 | "GROUP", 156 | "ROGUE", 157 | "BADLY", 158 | "SMART", 159 | "PITHY", 160 | "GAUDY", 161 | "CHILL", 162 | "HERON", 163 | "VODKA", 164 | "FINER", 165 | "SURER", 166 | "RADIO", 167 | "ROUGE", 168 | "PERCH", 169 | "RETCH", 170 | "WROTE", 171 | "CLOCK", 172 | "TILDE", 173 | "STORE", 174 | "PROVE", 175 | "BRING", 176 | "SOLVE", 177 | "CHEAT", 178 | "GRIME", 179 | "EXULT", 180 | "USHER", 181 | "EPOCH", 182 | "TRIAD", 183 | "BREAK", 184 | "RHINO", 185 | "VIRAL", 186 | "CONIC", 187 | "MASSE", 188 | "SONIC", 189 | "VITAL", 190 | "TRACE", 191 | "USING", 192 | "PEACH", 193 | "CHAMP", 194 | "BATON", 195 | "BRAKE", 196 | "PLUCK", 197 | "CRAZE", 198 | "GRIPE", 199 | "WEARY", 200 | "PICKY", 201 | "ACUTE", 202 | "FERRY", 203 | "ASIDE", 204 | "TAPIR", 205 | "TROLL", 206 | "UNIFY", 207 | "REBUS", 208 | "BOOST", 209 | "TRUSS", 210 | "SIEGE", 211 | "TIGER", 212 | "BANAL", 213 | "SLUMP", 214 | "CRANK", 215 | "GORGE", 216 | "QUERY", 217 | "DRINK", 218 | "FAVOR", 219 | "ABBEY", 220 | "TANGY", 221 | "PANIC", 222 | "SOLAR", 223 | "SHIRE", 224 | "PROXY", 225 | "POINT", 226 | "ROBOT", 227 | "PRICK", 228 | "WINCE", 229 | "CRIMP", 230 | "KNOLL", 231 | "SUGAR", 232 | "WHACK", 233 | "MOUNT", 234 | "PERKY", 235 | "COULD", 236 | "WRUNG", 237 | "LIGHT", 238 | "THOSE", 239 | "MOIST", 240 | "SHARD", 241 | "PLEAT", 242 | "ALOFT", 243 | "SKILL", 244 | "ELDER", 245 | "FRAME", 246 | "HUMOR", 247 | "PAUSE", 248 | "ULCER", 249 | "ULTRA", 250 | "ROBIN", 251 | "CYNIC", 252 | "AGORA", 253 | "AROMA", 254 | "CAULK", 255 | "SHAKE", 256 | "PUPAL", 257 | "DODGE", 258 | "SWILL", 259 | "TACIT", 260 | "OTHER", 261 | "THORN", 262 | "TROVE", 263 | "BLOKE", 264 | "VIVID", 265 | "SPILL", 266 | "CHANT", 267 | "CHOKE", 268 | "RUPEE", 269 | "NASTY", 270 | "MOURN", 271 | "AHEAD", 272 | "BRINE", 273 | "CLOTH", 274 | "HOARD", 275 | "SWEET", 276 | "MONTH", 277 | "LAPSE", 278 | "WATCH", 279 | "TODAY", 280 | "FOCUS", 281 | "SMELT", 282 | "TEASE", 283 | "CATER", 284 | "MOVIE", 285 | "LYNCH", 286 | "SAUTE", 287 | "ALLOW", 288 | "RENEW", 289 | "THEIR", 290 | "SLOSH", 291 | "PURGE", 292 | "CHEST", 293 | "DEPOT", 294 | "EPOXY", 295 | "NYMPH", 296 | "FOUND", 297 | "SHALL", 298 | "HARRY", 299 | "STOVE", 300 | "LOWLY", 301 | "SNOUT", 302 | "TROPE", 303 | "FEWER", 304 | "SHAWL", 305 | "NATAL", 306 | "FIBRE", 307 | "COMMA", 308 | "FORAY", 309 | "SCARE", 310 | "STAIR", 311 | "BLACK", 312 | "SQUAD", 313 | "ROYAL", 314 | "CHUNK", 315 | "MINCE", 316 | "SLAVE", 317 | "SHAME", 318 | "CHEEK", 319 | "AMPLE", 320 | "FLAIR", 321 | "FOYER", 322 | "CARGO", 323 | "OXIDE", 324 | "PLANT", 325 | "OLIVE", 326 | "INERT", 327 | "ASKEW", 328 | "HEIST", 329 | "SHOWN", 330 | "ZESTY", 331 | "HASTY", 332 | "TRASH", 333 | "FELLA", 334 | "LARVA", 335 | "FORGO", 336 | "STORY", 337 | "HAIRY", 338 | "TRAIN", 339 | "HOMER", 340 | "BADGE", 341 | "MIDST", 342 | "CANNY", 343 | "FETUS", 344 | "BUTCH", 345 | "FARCE", 346 | "SLUNG", 347 | "TIPSY", 348 | "METAL", 349 | "YIELD", 350 | "DELVE", 351 | "BEING", 352 | "SCOUR", 353 | "GLASS", 354 | "GAMER", 355 | "SCRAP", 356 | "MONEY", 357 | "HINGE", 358 | "ALBUM", 359 | "VOUCH", 360 | "ASSET", 361 | "TIARA", 362 | "CREPT", 363 | "BAYOU", 364 | "ATOLL", 365 | "MANOR", 366 | "CREAK", 367 | "SHOWY", 368 | "PHASE", 369 | "FROTH", 370 | "DEPTH", 371 | "GLOOM", 372 | "FLOOD", 373 | "TRAIT", 374 | "GIRTH", 375 | "PIETY", 376 | "PAYER", 377 | "GOOSE", 378 | "FLOAT", 379 | "DONOR", 380 | "ATONE", 381 | "PRIMO", 382 | "APRON", 383 | "BLOWN", 384 | "CACAO", 385 | "LOSER", 386 | "INPUT", 387 | "GLOAT", 388 | "AWFUL", 389 | "BRINK", 390 | "SMITE", 391 | "BEADY", 392 | "RUSTY", 393 | "RETRO", 394 | "DROLL", 395 | "GAWKY", 396 | "HUTCH", 397 | "PINTO", 398 | "GAILY", 399 | "EGRET", 400 | "LILAC", 401 | "SEVER", 402 | "FIELD", 403 | "FLUFF", 404 | "HYDRO", 405 | "FLACK", 406 | "AGAPE", 407 | "WENCH", 408 | "VOICE", 409 | "STEAD", 410 | "STALK", 411 | "BERTH", 412 | "MADAM", 413 | "NIGHT", 414 | "BLAND", 415 | "LIVER", 416 | "WEDGE", 417 | "AUGUR", 418 | "ROOMY", 419 | "WACKY", 420 | "FLOCK", 421 | "ANGRY", 422 | "BOBBY", 423 | "TRITE", 424 | "APHID", 425 | "TRYST", 426 | "MIDGE", 427 | "POWER", 428 | "ELOPE", 429 | "CINCH", 430 | "MOTTO", 431 | "STOMP", 432 | "UPSET", 433 | "BLUFF", 434 | "CRAMP", 435 | "QUART", 436 | "COYLY", 437 | "YOUTH", 438 | "RHYME", 439 | "BUGGY", 440 | "ALIEN", 441 | "SMEAR", 442 | "UNFIT", 443 | "PATTY", 444 | "CLING", 445 | "GLEAN", 446 | "LABEL", 447 | "HUNKY", 448 | "KHAKI", 449 | "POKER", 450 | "GRUEL", 451 | "TWICE", 452 | "TWANG", 453 | "SHRUG", 454 | "TREAT", 455 | "UNLIT", 456 | "WASTE", 457 | "MERIT", 458 | "WOVEN", 459 | "OCTAL", 460 | "NEEDY", 461 | "CLOWN", 462 | "WIDOW", 463 | "IRONY", 464 | "RUDER", 465 | "GAUZE", 466 | "CHIEF", 467 | "ONSET", 468 | "PRIZE", 469 | "FUNGI", 470 | "CHARM", 471 | "GULLY", 472 | "INTER", 473 | "WHOOP", 474 | "TAUNT", 475 | "LEERY", 476 | "CLASS", 477 | "THEME", 478 | "LOFTY", 479 | "TIBIA", 480 | "BOOZE", 481 | "ALPHA", 482 | "THYME", 483 | "ECLAT", 484 | "DOUBT", 485 | "PARER", 486 | "CHUTE", 487 | "STICK", 488 | "TRICE", 489 | "ALIKE", 490 | "SOOTH", 491 | "RECAP", 492 | "SAINT", 493 | "LIEGE", 494 | "GLORY", 495 | "GRATE", 496 | "ADMIT", 497 | "BRISK", 498 | "SOGGY", 499 | "USURP", 500 | "SCALD", 501 | "SCORN", 502 | "LEAVE", 503 | "TWINE", 504 | "STING", 505 | "BOUGH", 506 | "MARSH", 507 | "SLOTH", 508 | "DANDY", 509 | "VIGOR", 510 | "HOWDY", 511 | "ENJOY", 512 | "VALID", 513 | "IONIC", 514 | "EQUAL", 515 | "UNSET", 516 | "FLOOR", 517 | "CATCH", 518 | "SPADE", 519 | "STEIN", 520 | "EXIST", 521 | "QUIRK", 522 | "DENIM", 523 | "GROVE", 524 | "SPIEL", 525 | "MUMMY", 526 | "FAULT", 527 | "FOGGY", 528 | "FLOUT", 529 | "CARRY", 530 | "SNEAK", 531 | "LIBEL", 532 | "WALTZ", 533 | "APTLY", 534 | "PINEY", 535 | "INEPT", 536 | "ALOUD", 537 | "PHOTO", 538 | "DREAM", 539 | "STALE", 540 | "VOMIT", 541 | "OMBRE", 542 | "FANNY", 543 | "UNITE", 544 | "SNARL", 545 | "BAKER", 546 | "THERE", 547 | "GLYPH", 548 | "POOCH", 549 | "HIPPY", 550 | "SPELL", 551 | "FOLLY", 552 | "LOUSE", 553 | "GULCH", 554 | "VAULT", 555 | "GODLY", 556 | "THREW", 557 | "FLEET", 558 | "GRAVE", 559 | "INANE", 560 | "SHOCK", 561 | "CRAVE", 562 | "SPITE", 563 | "VALVE", 564 | "SKIMP", 565 | "CLAIM", 566 | "RAINY", 567 | "MUSTY", 568 | "PIQUE", 569 | "DADDY", 570 | "QUASI", 571 | "ARISE", 572 | "AGING", 573 | "VALET", 574 | "OPIUM", 575 | "AVERT", 576 | "STUCK", 577 | "RECUT", 578 | "MULCH", 579 | "GENRE", 580 | "PLUME", 581 | "RIFLE", 582 | "COUNT", 583 | "INCUR", 584 | "TOTAL", 585 | "WREST", 586 | "MOCHA", 587 | "DETER", 588 | "STUDY", 589 | "LOVER", 590 | "SAFER", 591 | "RIVET", 592 | "FUNNY", 593 | "SMOKE", 594 | "MOUND", 595 | "UNDUE", 596 | "SEDAN", 597 | "PAGAN", 598 | "SWINE", 599 | "GUILE", 600 | "GUSTY", 601 | "EQUIP", 602 | "TOUGH", 603 | "CANOE", 604 | "CHAOS", 605 | "COVET", 606 | "HUMAN", 607 | "UDDER", 608 | "LUNCH", 609 | "BLAST", 610 | "STRAY", 611 | "MANGA", 612 | "MELEE", 613 | "LEFTY", 614 | "QUICK", 615 | "PASTE", 616 | "GIVEN", 617 | "OCTET", 618 | "RISEN", 619 | "GROAN", 620 | "LEAKY", 621 | "GRIND", 622 | "CARVE", 623 | "LOOSE", 624 | "SADLY", 625 | "SPILT", 626 | "APPLE", 627 | "SLACK", 628 | "HONEY", 629 | "FINAL", 630 | "SHEEN", 631 | "EERIE", 632 | "MINTY", 633 | "SLICK", 634 | "DERBY", 635 | "WHARF", 636 | "SPELT", 637 | "COACH", 638 | "ERUPT", 639 | "SINGE", 640 | "PRICE", 641 | "SPAWN", 642 | "FAIRY", 643 | "JIFFY", 644 | "FILMY", 645 | "STACK", 646 | "CHOSE", 647 | "SLEEP", 648 | "ARDOR", 649 | "NANNY", 650 | "NIECE", 651 | "WOOZY", 652 | "HANDY", 653 | "GRACE", 654 | "DITTO", 655 | "STANK", 656 | "CREAM", 657 | "USUAL", 658 | "DIODE", 659 | "VALOR", 660 | "ANGLE", 661 | "NINJA", 662 | "MUDDY", 663 | "CHASE", 664 | "REPLY", 665 | "PRONE", 666 | "SPOIL", 667 | "HEART", 668 | "SHADE", 669 | "DINER", 670 | "ARSON", 671 | "ONION", 672 | "SLEET", 673 | "DOWEL", 674 | "COUCH", 675 | "PALSY", 676 | "BOWEL", 677 | "SMILE", 678 | "EVOKE", 679 | "CREEK", 680 | "LANCE", 681 | "EAGLE", 682 | "IDIOT", 683 | "SIREN", 684 | "BUILT", 685 | "EMBED", 686 | "AWARD", 687 | "DROSS", 688 | "ANNUL", 689 | "GOODY", 690 | "FROWN", 691 | "PATIO", 692 | "LADEN", 693 | "HUMID", 694 | "ELITE", 695 | "LYMPH", 696 | "EDIFY", 697 | "MIGHT", 698 | "RESET", 699 | "VISIT", 700 | "GUSTO", 701 | "PURSE", 702 | "VAPOR", 703 | "CROCK", 704 | "WRITE", 705 | "SUNNY", 706 | "LOATH", 707 | "CHAFF", 708 | "SLIDE", 709 | "QUEER", 710 | "VENOM", 711 | "STAMP", 712 | "SORRY", 713 | "STILL", 714 | "ACORN", 715 | "APING", 716 | "PUSHY", 717 | "TAMER", 718 | "HATER", 719 | "MANIA", 720 | "AWOKE", 721 | "BRAWN", 722 | "SWIFT", 723 | "EXILE", 724 | "BIRCH", 725 | "LUCKY", 726 | "FREER", 727 | "RISKY", 728 | "GHOST", 729 | "PLIER", 730 | "LUNAR", 731 | "WINCH", 732 | "SNARE", 733 | "NURSE", 734 | "HOUSE", 735 | "BORAX", 736 | "NICER", 737 | "LURCH", 738 | "EXALT", 739 | "ABOUT", 740 | "SAVVY", 741 | "TOXIN", 742 | "TUNIC", 743 | "PRIED", 744 | "INLAY", 745 | "CHUMP", 746 | "LANKY", 747 | "CRESS", 748 | "EATER", 749 | "ELUDE", 750 | "CYCLE", 751 | "KITTY", 752 | "BOULE", 753 | "MORON", 754 | "TENET", 755 | "PLACE", 756 | "LOBBY", 757 | "PLUSH", 758 | "VIGIL", 759 | "INDEX", 760 | "BLINK", 761 | "CLUNG", 762 | "QUALM", 763 | "CROUP", 764 | "CLINK", 765 | "JUICY", 766 | "STAGE", 767 | "DECAY", 768 | "NERVE", 769 | "FLIER", 770 | "SHAFT", 771 | "CROOK", 772 | "CLEAN", 773 | "CHINA", 774 | "RIDGE", 775 | "VOWEL", 776 | "GNOME", 777 | "SNUCK", 778 | "ICING", 779 | "SPINY", 780 | "RIGOR", 781 | "SNAIL", 782 | "FLOWN", 783 | "RABID", 784 | "PROSE", 785 | "THANK", 786 | "POPPY", 787 | "BUDGE", 788 | "FIBER", 789 | "MOLDY", 790 | "DOWDY", 791 | "KNEEL", 792 | "TRACK", 793 | "CADDY", 794 | "QUELL", 795 | "DUMPY", 796 | "PALER", 797 | "SWORE", 798 | "REBAR", 799 | "SCUBA", 800 | "SPLAT", 801 | "FLYER", 802 | "HORNY", 803 | "MASON", 804 | "DOING", 805 | "OZONE", 806 | "AMPLY", 807 | "MOLAR", 808 | "OVARY", 809 | "BESET", 810 | "QUEUE", 811 | "CLIFF", 812 | "MAGIC", 813 | "TRUCE", 814 | "SPORT", 815 | "FRITZ", 816 | "EDICT", 817 | "TWIRL", 818 | "VERSE", 819 | "LLAMA", 820 | "EATEN", 821 | "RANGE", 822 | "WHISK", 823 | "HOVEL", 824 | "REHAB", 825 | "MACAW", 826 | "SIGMA", 827 | "SPOUT", 828 | "VERVE", 829 | "SUSHI", 830 | "DYING", 831 | "FETID", 832 | "BRAIN", 833 | "BUDDY", 834 | "THUMP", 835 | "SCION", 836 | "CANDY", 837 | "CHORD", 838 | "BASIN", 839 | "MARCH", 840 | "CROWD", 841 | "ARBOR", 842 | "GAYLY", 843 | "MUSKY", 844 | "STAIN", 845 | "DALLY", 846 | "BLESS", 847 | "BRAVO", 848 | "STUNG", 849 | "TITLE", 850 | "RULER", 851 | "KIOSK", 852 | "BLOND", 853 | "ENNUI", 854 | "LAYER", 855 | "FLUID", 856 | "TATTY", 857 | "SCORE", 858 | "CUTIE", 859 | "ZEBRA", 860 | "BARGE", 861 | "MATEY", 862 | "BLUER", 863 | "AIDER", 864 | "SHOOK", 865 | "RIVER", 866 | "PRIVY", 867 | "BETEL", 868 | "FRISK", 869 | "BONGO", 870 | "BEGUN", 871 | "AZURE", 872 | "WEAVE", 873 | "GENIE", 874 | "SOUND", 875 | "GLOVE", 876 | "BRAID", 877 | "SCOPE", 878 | "WRYLY", 879 | "ROVER", 880 | "ASSAY", 881 | "OCEAN", 882 | "BLOOM", 883 | "IRATE", 884 | "LATER", 885 | "WOKEN", 886 | "SILKY", 887 | "WRECK", 888 | "DWELT", 889 | "SLATE", 890 | "SMACK", 891 | "SOLID", 892 | "AMAZE", 893 | "HAZEL", 894 | "WRIST", 895 | "JOLLY", 896 | "GLOBE", 897 | "FLINT", 898 | "ROUSE", 899 | "CIVIL", 900 | "VISTA", 901 | "RELAX", 902 | "COVER", 903 | "ALIVE", 904 | "BEECH", 905 | "JETTY", 906 | "BLISS", 907 | "VOCAL", 908 | "OFTEN", 909 | "DOLLY", 910 | "EIGHT", 911 | "JOKER", 912 | "SINCE", 913 | "EVENT", 914 | "ENSUE", 915 | "SHUNT", 916 | "DIVER", 917 | "POSER", 918 | "WORST", 919 | "SWEEP", 920 | "ALLEY", 921 | "CREED", 922 | "ANIME", 923 | "LEAFY", 924 | "BOSOM", 925 | "DUNCE", 926 | "STARE", 927 | "PUDGY", 928 | "WAIVE", 929 | "CHOIR", 930 | "STOOD", 931 | "SPOKE", 932 | "OUTGO", 933 | "DELAY", 934 | "BILGE", 935 | "IDEAL", 936 | "CLASP", 937 | "SEIZE", 938 | "HOTLY", 939 | "LAUGH", 940 | "SIEVE", 941 | "BLOCK", 942 | "MEANT", 943 | "GRAPE", 944 | "NOOSE", 945 | "HARDY", 946 | "SHIED", 947 | "DRAWL", 948 | "DAISY", 949 | "PUTTY", 950 | "STRUT", 951 | "BURNT", 952 | "TULIP", 953 | "CRICK", 954 | "IDYLL", 955 | "VIXEN", 956 | "FUROR", 957 | "GEEKY", 958 | "COUGH", 959 | "NAIVE", 960 | "SHOAL", 961 | "STORK", 962 | "BATHE", 963 | "AUNTY", 964 | "CHECK", 965 | "PRIME", 966 | "BRASS", 967 | "OUTER", 968 | "FURRY", 969 | "RAZOR", 970 | "ELECT", 971 | "EVICT", 972 | "IMPLY", 973 | "DEMUR", 974 | "QUOTA", 975 | "HAVEN", 976 | "CAVIL", 977 | "SWEAR", 978 | "CRUMP", 979 | "DOUGH", 980 | "GAVEL", 981 | "WAGON", 982 | "SALON", 983 | "NUDGE", 984 | "HAREM", 985 | "PITCH", 986 | "SWORN", 987 | "PUPIL", 988 | "EXCEL", 989 | "STONY", 990 | "CABIN", 991 | "UNZIP", 992 | "QUEEN", 993 | "TROUT", 994 | "POLYP", 995 | "EARTH", 996 | "STORM", 997 | "UNTIL", 998 | "TAPER", 999 | "ENTER", 1000 | "CHILD", 1001 | "ADOPT", 1002 | "MINOR", 1003 | "FATTY", 1004 | "HUSKY", 1005 | "BRAVE", 1006 | "FILET", 1007 | "SLIME", 1008 | "GLINT", 1009 | "TREAD", 1010 | "STEAL", 1011 | "REGAL", 1012 | "GUEST", 1013 | "EVERY", 1014 | "MURKY", 1015 | "SHARE", 1016 | "SPORE", 1017 | "HOIST", 1018 | "BUXOM", 1019 | "INNER", 1020 | "OTTER", 1021 | "DIMLY", 1022 | "LEVEL", 1023 | "SUMAC", 1024 | "DONUT", 1025 | "STILT", 1026 | "ARENA", 1027 | "SHEET", 1028 | "SCRUB", 1029 | "FANCY", 1030 | "SLIMY", 1031 | "PEARL", 1032 | "SILLY", 1033 | "PORCH", 1034 | "DINGO", 1035 | "SEPIA", 1036 | "AMBLE", 1037 | "SHADY", 1038 | "BREAD", 1039 | "FRIAR", 1040 | "REIGN", 1041 | "DAIRY", 1042 | "QUILL", 1043 | "CROSS", 1044 | "BROOD", 1045 | "TUBER", 1046 | "SHEAR", 1047 | "POSIT", 1048 | "BLANK", 1049 | "VILLA", 1050 | "SHANK", 1051 | "PIGGY", 1052 | "FREAK", 1053 | "WHICH", 1054 | "AMONG", 1055 | "FECAL", 1056 | "SHELL", 1057 | "WOULD", 1058 | "ALGAE", 1059 | "LARGE", 1060 | "RABBI", 1061 | "AGONY", 1062 | "AMUSE", 1063 | "BUSHY", 1064 | "COPSE", 1065 | "SWOON", 1066 | "KNIFE", 1067 | "POUCH", 1068 | "ASCOT", 1069 | "PLANE", 1070 | "CROWN", 1071 | "URBAN", 1072 | "SNIDE", 1073 | "RELAY", 1074 | "ABIDE", 1075 | "VIOLA", 1076 | "RAJAH", 1077 | "STRAW", 1078 | "DILLY", 1079 | "CRASH", 1080 | "AMASS", 1081 | "THIRD", 1082 | "TRICK", 1083 | "TUTOR", 1084 | "WOODY", 1085 | "BLURB", 1086 | "GRIEF", 1087 | "DISCO", 1088 | "WHERE", 1089 | "SASSY", 1090 | "BEACH", 1091 | "SAUNA", 1092 | "COMIC", 1093 | "CLUED", 1094 | "CREEP", 1095 | "CASTE", 1096 | "GRAZE", 1097 | "SNUFF", 1098 | "FROCK", 1099 | "GONAD", 1100 | "DRUNK", 1101 | "PRONG", 1102 | "LURID", 1103 | "STEEL", 1104 | "HALVE", 1105 | "BUYER", 1106 | "VINYL", 1107 | "UTILE", 1108 | "SMELL", 1109 | "ADAGE", 1110 | "WORRY", 1111 | "TASTY", 1112 | "LOCAL", 1113 | "TRADE", 1114 | "FINCH", 1115 | "ASHEN", 1116 | "MODAL", 1117 | "GAUNT", 1118 | "CLOVE", 1119 | "ENACT", 1120 | "ADORN", 1121 | "ROAST", 1122 | "SPECK", 1123 | "SHEIK", 1124 | "MISSY", 1125 | "GRUNT", 1126 | "SNOOP", 1127 | "PARTY", 1128 | "TOUCH", 1129 | "MAFIA", 1130 | "EMCEE", 1131 | "ARRAY", 1132 | "SOUTH", 1133 | "VAPID", 1134 | "JELLY", 1135 | "SKULK", 1136 | "ANGST", 1137 | "TUBAL", 1138 | "LOWER", 1139 | "CREST", 1140 | "SWEAT", 1141 | "CYBER", 1142 | "ADORE", 1143 | "TARDY", 1144 | "SWAMI", 1145 | "NOTCH", 1146 | "GROOM", 1147 | "ROACH", 1148 | "HITCH", 1149 | "YOUNG", 1150 | "ALIGN", 1151 | "READY", 1152 | "FROND", 1153 | "STRAP", 1154 | "PUREE", 1155 | "REALM", 1156 | "VENUE", 1157 | "SWARM", 1158 | "OFFER", 1159 | "SEVEN", 1160 | "DRYER", 1161 | "DIARY", 1162 | "DRYLY", 1163 | "DRANK", 1164 | "ACRID", 1165 | "HEADY", 1166 | "THETA", 1167 | "JUNTO", 1168 | "PIXIE", 1169 | "QUOTH", 1170 | "BONUS", 1171 | "SHALT", 1172 | "PENNE", 1173 | "AMEND", 1174 | "DATUM", 1175 | "BUILD", 1176 | "PIANO", 1177 | "SHELF", 1178 | "LODGE", 1179 | "SUING", 1180 | "REARM", 1181 | "CORAL", 1182 | "RAMEN", 1183 | "WORTH", 1184 | "PSALM", 1185 | "INFER", 1186 | "OVERT", 1187 | "MAYOR", 1188 | "OVOID", 1189 | "GLIDE", 1190 | "USAGE", 1191 | "POISE", 1192 | "RANDY", 1193 | "CHUCK", 1194 | "PRANK", 1195 | "FISHY", 1196 | "TOOTH", 1197 | "ETHER", 1198 | "DROVE", 1199 | "IDLER", 1200 | "SWATH", 1201 | "STINT", 1202 | "WHILE", 1203 | "BEGAT", 1204 | "APPLY", 1205 | "SLANG", 1206 | "TAROT", 1207 | "RADAR", 1208 | "CREDO", 1209 | "AWARE", 1210 | "CANON", 1211 | "SHIFT", 1212 | "TIMER", 1213 | "BYLAW", 1214 | "SERUM", 1215 | "THREE", 1216 | "STEAK", 1217 | "ILIAC", 1218 | "SHIRK", 1219 | "BLUNT", 1220 | "PUPPY", 1221 | "PENAL", 1222 | "JOIST", 1223 | "BUNNY", 1224 | "SHAPE", 1225 | "BEGET", 1226 | "WHEEL", 1227 | "ADEPT", 1228 | "STUNT", 1229 | "STOLE", 1230 | "TOPAZ", 1231 | "CHORE", 1232 | "FLUKE", 1233 | "AFOOT", 1234 | "BLOAT", 1235 | "BULLY", 1236 | "DENSE", 1237 | "CAPER", 1238 | "SNEER", 1239 | "BOXER", 1240 | "JUMBO", 1241 | "LUNGE", 1242 | "SPACE", 1243 | "AVAIL", 1244 | "SHORT", 1245 | "SLURP", 1246 | "LOYAL", 1247 | "FLIRT", 1248 | "PIZZA", 1249 | "CONCH", 1250 | "TEMPO", 1251 | "DROOP", 1252 | "PLATE", 1253 | "BIBLE", 1254 | "PLUNK", 1255 | "AFOUL", 1256 | "SAVOY", 1257 | "STEEP", 1258 | "AGILE", 1259 | "STAKE", 1260 | "DWELL", 1261 | "KNAVE", 1262 | "BEARD", 1263 | "AROSE", 1264 | "MOTIF", 1265 | "SMASH", 1266 | "BROIL", 1267 | "GLARE", 1268 | "SHOVE", 1269 | "BAGGY", 1270 | "MAMMY", 1271 | "SWAMP", 1272 | "ALONG", 1273 | "RUGBY", 1274 | "WAGER", 1275 | "QUACK", 1276 | "SQUAT", 1277 | "SNAKY", 1278 | "DEBIT", 1279 | "MANGE", 1280 | "SKATE", 1281 | "NINTH", 1282 | "JOUST", 1283 | "TRAMP", 1284 | "SPURN", 1285 | "MEDAL", 1286 | "MICRO", 1287 | "REBEL", 1288 | "FLANK", 1289 | "LEARN", 1290 | "NADIR", 1291 | "MAPLE", 1292 | "COMFY", 1293 | "REMIT", 1294 | "GRUFF", 1295 | "ESTER", 1296 | "LEAST", 1297 | "MOGUL", 1298 | "FETCH", 1299 | "CAUSE", 1300 | "OAKEN", 1301 | "AGLOW", 1302 | "MEATY", 1303 | "GAFFE", 1304 | "SHYLY", 1305 | "RACER", 1306 | "PROWL", 1307 | "THIEF", 1308 | "STERN", 1309 | "POESY", 1310 | "ROCKY", 1311 | "TWEET", 1312 | "WAIST", 1313 | "SPIRE", 1314 | "GROPE", 1315 | "HAVOC", 1316 | "PATSY", 1317 | "TRULY", 1318 | "FORTY", 1319 | "DEITY", 1320 | "UNCLE", 1321 | "SWISH", 1322 | "GIVER", 1323 | "PREEN", 1324 | "BEVEL", 1325 | "LEMUR", 1326 | "DRAFT", 1327 | "SLOPE", 1328 | "ANNOY", 1329 | "LINGO", 1330 | "BLEAK", 1331 | "DITTY", 1332 | "CURLY", 1333 | "CEDAR", 1334 | "DIRGE", 1335 | "GROWN", 1336 | "HORDE", 1337 | "DROOL", 1338 | "SHUCK", 1339 | "CRYPT", 1340 | "CUMIN", 1341 | "STOCK", 1342 | "GRAVY", 1343 | "LOCUS", 1344 | "WIDER", 1345 | "BREED", 1346 | "QUITE", 1347 | "CHAFE", 1348 | "CACHE", 1349 | "BLIMP", 1350 | "DEIGN", 1351 | "FIEND", 1352 | "LOGIC", 1353 | "CHEAP", 1354 | "ELIDE", 1355 | "RIGID", 1356 | "FALSE", 1357 | "RENAL", 1358 | "PENCE", 1359 | "ROWDY", 1360 | "SHOOT", 1361 | "BLAZE", 1362 | "ENVOY", 1363 | "POSSE", 1364 | "BRIEF", 1365 | "NEVER", 1366 | "ABORT", 1367 | "MOUSE", 1368 | "MUCKY", 1369 | "SULKY", 1370 | "FIERY", 1371 | "MEDIA", 1372 | "TRUNK", 1373 | "YEAST", 1374 | "CLEAR", 1375 | "SKUNK", 1376 | "SCALP", 1377 | "BITTY", 1378 | "CIDER", 1379 | "KOALA", 1380 | "DUVET", 1381 | "SEGUE", 1382 | "CREME", 1383 | "SUPER", 1384 | "GRILL", 1385 | "AFTER", 1386 | "OWNER", 1387 | "EMBER", 1388 | "REACH", 1389 | "NOBLY", 1390 | "EMPTY", 1391 | "SPEED", 1392 | "GIPSY", 1393 | "RECUR", 1394 | "SMOCK", 1395 | "DREAD", 1396 | "MERGE", 1397 | "BURST", 1398 | "KAPPA", 1399 | "AMITY", 1400 | "SHAKY", 1401 | "HOVER", 1402 | "CAROL", 1403 | "SNORT", 1404 | "SYNOD", 1405 | "FAINT", 1406 | "HAUNT", 1407 | "FLOUR", 1408 | "CHAIR", 1409 | "DETOX", 1410 | "SHREW", 1411 | "TENSE", 1412 | "PLIED", 1413 | "QUARK", 1414 | "BURLY", 1415 | "NOVEL", 1416 | "WAXEN", 1417 | "STOIC", 1418 | "JERKY", 1419 | "BLITZ", 1420 | "BEEFY", 1421 | "LYRIC", 1422 | "HUSSY", 1423 | "TOWEL", 1424 | "QUILT", 1425 | "BELOW", 1426 | "BINGO", 1427 | "WISPY", 1428 | "BRASH", 1429 | "SCONE", 1430 | "TOAST", 1431 | "EASEL", 1432 | "SAUCY", 1433 | "VALUE", 1434 | "SPICE", 1435 | "HONOR", 1436 | "ROUTE", 1437 | "SHARP", 1438 | "BAWDY", 1439 | "RADII", 1440 | "SKULL", 1441 | "PHONY", 1442 | "ISSUE", 1443 | "LAGER", 1444 | "SWELL", 1445 | "URINE", 1446 | "GASSY", 1447 | "TRIAL", 1448 | "FLORA", 1449 | "UPPER", 1450 | "LATCH", 1451 | "WIGHT", 1452 | "BRICK", 1453 | "RETRY", 1454 | "HOLLY", 1455 | "DECAL", 1456 | "GRASS", 1457 | "SHACK", 1458 | "DOGMA", 1459 | "MOVER", 1460 | "DEFER", 1461 | "SOBER", 1462 | "OPTIC", 1463 | "CRIER", 1464 | "VYING", 1465 | "NOMAD", 1466 | "FLUTE", 1467 | "HIPPO", 1468 | "SHARK", 1469 | "DRIER", 1470 | "OBESE", 1471 | "BUGLE", 1472 | "TAWNY", 1473 | "CHALK", 1474 | "FEAST", 1475 | "RUDDY", 1476 | "PEDAL", 1477 | "SCARF", 1478 | "CRUEL", 1479 | "BLEAT", 1480 | "TIDAL", 1481 | "SLUSH", 1482 | "SEMEN", 1483 | "WINDY", 1484 | "DUSTY", 1485 | "SALLY", 1486 | "IGLOO", 1487 | "NERDY", 1488 | "JEWEL", 1489 | "SHONE", 1490 | "WHALE", 1491 | "HYMEN", 1492 | "ABUSE", 1493 | "FUGUE", 1494 | "ELBOW", 1495 | "CRUMB", 1496 | "PANSY", 1497 | "WELSH", 1498 | "SYRUP", 1499 | "TERSE", 1500 | "SUAVE", 1501 | "GAMUT", 1502 | "SWUNG", 1503 | "DRAKE", 1504 | "FREED", 1505 | "AFIRE", 1506 | "SHIRT", 1507 | "GROUT", 1508 | "ODDLY", 1509 | "TITHE", 1510 | "PLAID", 1511 | "DUMMY", 1512 | "BROOM", 1513 | "BLIND", 1514 | "TORCH", 1515 | "ENEMY", 1516 | "AGAIN", 1517 | "TYING", 1518 | "PESKY", 1519 | "ALTER", 1520 | "GAZER", 1521 | "NOBLE", 1522 | "ETHOS", 1523 | "BRIDE", 1524 | "EXTOL", 1525 | "DECOR", 1526 | "HOBBY", 1527 | "BEAST", 1528 | "IDIOM", 1529 | "UTTER", 1530 | "THESE", 1531 | "SIXTH", 1532 | "ALARM", 1533 | "ERASE", 1534 | "ELEGY", 1535 | "SPUNK", 1536 | "PIPER", 1537 | "SCALY", 1538 | "SCOLD", 1539 | "HEFTY", 1540 | "CHICK", 1541 | "SOOTY", 1542 | "CANAL", 1543 | "WHINY", 1544 | "SLASH", 1545 | "QUAKE", 1546 | "JOINT", 1547 | "SWEPT", 1548 | "PRUDE", 1549 | "HEAVY", 1550 | "WIELD", 1551 | "FEMME", 1552 | "LASSO", 1553 | "MAIZE", 1554 | "SHALE", 1555 | "SCREW", 1556 | "SPREE", 1557 | "SMOKY", 1558 | "WHIFF", 1559 | "SCENT", 1560 | "GLADE", 1561 | "SPENT", 1562 | "PRISM", 1563 | "STOKE", 1564 | "RIPER", 1565 | "ORBIT", 1566 | "COCOA", 1567 | "GUILT", 1568 | "HUMUS", 1569 | "SHUSH", 1570 | "TABLE", 1571 | "SMIRK", 1572 | "WRONG", 1573 | "NOISY", 1574 | "ALERT", 1575 | "SHINY", 1576 | "ELATE", 1577 | "RESIN", 1578 | "WHOLE", 1579 | "HUNCH", 1580 | "PIXEL", 1581 | "POLAR", 1582 | "HOTEL", 1583 | "SWORD", 1584 | "CLEAT", 1585 | "MANGO", 1586 | "RUMBA", 1587 | "PUFFY", 1588 | "FILLY", 1589 | "BILLY", 1590 | "LEASH", 1591 | "CLOUT", 1592 | "DANCE", 1593 | "OVATE", 1594 | "FACET", 1595 | "CHILI", 1596 | "PAINT", 1597 | "LINER", 1598 | "CURIO", 1599 | "SALTY", 1600 | "AUDIO", 1601 | "SNAKE", 1602 | "FABLE", 1603 | "CLOAK", 1604 | "NAVEL", 1605 | "SPURT", 1606 | "PESTO", 1607 | "BALMY", 1608 | "FLASH", 1609 | "UNWED", 1610 | "EARLY", 1611 | "CHURN", 1612 | "WEEDY", 1613 | "STUMP", 1614 | "LEASE", 1615 | "WITTY", 1616 | "WIMPY", 1617 | "SPOOF", 1618 | "SANER", 1619 | "BLEND", 1620 | "SALSA", 1621 | "THICK", 1622 | "WARTY", 1623 | "MANIC", 1624 | "BLARE", 1625 | "SQUIB", 1626 | "SPOON", 1627 | "PROBE", 1628 | "CREPE", 1629 | "KNACK", 1630 | "FORCE", 1631 | "DEBUT", 1632 | "ORDER", 1633 | "HASTE", 1634 | "TEETH", 1635 | "AGENT", 1636 | "WIDEN", 1637 | "ICILY", 1638 | "SLICE", 1639 | "INGOT", 1640 | "CLASH", 1641 | "JUROR", 1642 | "BLOOD", 1643 | "ABODE", 1644 | "THROW", 1645 | "UNITY", 1646 | "PIVOT", 1647 | "SLEPT", 1648 | "TROOP", 1649 | "SPARE", 1650 | "SEWER", 1651 | "PARSE", 1652 | "MORPH", 1653 | "CACTI", 1654 | "TACKY", 1655 | "SPOOL", 1656 | "DEMON", 1657 | "MOODY", 1658 | "ANNEX", 1659 | "BEGIN", 1660 | "FUZZY", 1661 | "PATCH", 1662 | "WATER", 1663 | "LUMPY", 1664 | "ADMIN", 1665 | "OMEGA", 1666 | "LIMIT", 1667 | "TABBY", 1668 | "MACHO", 1669 | "AISLE", 1670 | "SKIFF", 1671 | "BASIS", 1672 | "PLANK", 1673 | "VERGE", 1674 | "BOTCH", 1675 | "CRAWL", 1676 | "LOUSY", 1677 | "SLAIN", 1678 | "CUBIC", 1679 | "RAISE", 1680 | "WRACK", 1681 | "GUIDE", 1682 | "FOIST", 1683 | "CAMEO", 1684 | "UNDER", 1685 | "ACTOR", 1686 | "REVUE", 1687 | "FRAUD", 1688 | "HARPY", 1689 | "SCOOP", 1690 | "CLIMB", 1691 | "REFER", 1692 | "OLDEN", 1693 | "CLERK", 1694 | "DEBAR", 1695 | "TALLY", 1696 | "ETHIC", 1697 | "CAIRN", 1698 | "TULLE", 1699 | "GHOUL", 1700 | "HILLY", 1701 | "CRUDE", 1702 | "APART", 1703 | "SCALE", 1704 | "OLDER", 1705 | "PLAIN", 1706 | "SPERM", 1707 | "BRINY", 1708 | "ABBOT", 1709 | "RERUN", 1710 | "QUEST", 1711 | "CRISP", 1712 | "BOUND", 1713 | "BEFIT", 1714 | "DRAWN", 1715 | "SUITE", 1716 | "ITCHY", 1717 | "CHEER", 1718 | "BAGEL", 1719 | "GUESS", 1720 | "BROAD", 1721 | "AXIOM", 1722 | "CHARD", 1723 | "CAPUT", 1724 | "LEANT", 1725 | "HARSH", 1726 | "CURSE", 1727 | "PROUD", 1728 | "SWING", 1729 | "OPINE", 1730 | "TASTE", 1731 | "LUPUS", 1732 | "GUMBO", 1733 | "MINER", 1734 | "GREEN", 1735 | "CHASM", 1736 | "LIPID", 1737 | "TOPIC", 1738 | "ARMOR", 1739 | "BRUSH", 1740 | "CRANE", 1741 | "MURAL", 1742 | "ABLED", 1743 | "HABIT", 1744 | "BOSSY", 1745 | "MAKER", 1746 | "DUSKY", 1747 | "DIZZY", 1748 | "LITHE", 1749 | "BROOK", 1750 | "JAZZY", 1751 | "FIFTY", 1752 | "SENSE", 1753 | "GIANT", 1754 | "SURLY", 1755 | "LEGAL", 1756 | "FATAL", 1757 | "FLUNK", 1758 | "BEGAN", 1759 | "PRUNE", 1760 | "SMALL", 1761 | "SLANT", 1762 | "SCOFF", 1763 | "TORUS", 1764 | "NINNY", 1765 | "COVEY", 1766 | "VIPER", 1767 | "TAKEN", 1768 | "MORAL", 1769 | "VOGUE", 1770 | "OWING", 1771 | "TOKEN", 1772 | "ENTRY", 1773 | "BOOTH", 1774 | "VOTER", 1775 | "CHIDE", 1776 | "ELFIN", 1777 | "EBONY", 1778 | "NEIGH", 1779 | "MINIM", 1780 | "MELON", 1781 | "KNEED", 1782 | "DECOY", 1783 | "VOILA", 1784 | "ANKLE", 1785 | "ARROW", 1786 | "MUSHY", 1787 | "TRIBE", 1788 | "CEASE", 1789 | "EAGER", 1790 | "BIRTH", 1791 | "GRAPH", 1792 | "ODDER", 1793 | "TERRA", 1794 | "WEIRD", 1795 | "TRIED", 1796 | "CLACK", 1797 | "COLOR", 1798 | "ROUGH", 1799 | "WEIGH", 1800 | "UNCUT", 1801 | "LADLE", 1802 | "STRIP", 1803 | "CRAFT", 1804 | "MINUS", 1805 | "DICEY", 1806 | "TITAN", 1807 | "LUCID", 1808 | "VICAR", 1809 | "DRESS", 1810 | "DITCH", 1811 | "GYPSY", 1812 | "PASTA", 1813 | "TAFFY", 1814 | "FLAME", 1815 | "SWOOP", 1816 | "ALOOF", 1817 | "SIGHT", 1818 | "BROKE", 1819 | "TEARY", 1820 | "CHART", 1821 | "SIXTY", 1822 | "WORDY", 1823 | "SHEER", 1824 | "LEPER", 1825 | "NOSEY", 1826 | "BULGE", 1827 | "SAVOR", 1828 | "CLAMP", 1829 | "FUNKY", 1830 | "FOAMY", 1831 | "TOXIC", 1832 | "BRAND", 1833 | "PLUMB", 1834 | "DINGY", 1835 | "BUTTE", 1836 | "DRILL", 1837 | "TRIPE", 1838 | "BICEP", 1839 | "TENOR", 1840 | "KRILL", 1841 | "WORSE", 1842 | "DRAMA", 1843 | "HYENA", 1844 | "THINK", 1845 | "RATIO", 1846 | "COBRA", 1847 | "BASIL", 1848 | "SCRUM", 1849 | "BUSED", 1850 | "PHONE", 1851 | "COURT", 1852 | "CAMEL", 1853 | "PROOF", 1854 | "HEARD", 1855 | "ANGEL", 1856 | "PETAL", 1857 | "POUTY", 1858 | "THROB", 1859 | "MAYBE", 1860 | "FETAL", 1861 | "SPRIG", 1862 | "SPINE", 1863 | "SHOUT", 1864 | "CADET", 1865 | "MACRO", 1866 | "DODGY", 1867 | "SATYR", 1868 | "RARER", 1869 | "BINGE", 1870 | "TREND", 1871 | "NUTTY", 1872 | "LEAPT", 1873 | "AMISS", 1874 | "SPLIT", 1875 | "MYRRH", 1876 | "WIDTH", 1877 | "SONAR", 1878 | "TOWER", 1879 | "BARON", 1880 | "FEVER", 1881 | "WAVER", 1882 | "SPARK", 1883 | "BELIE", 1884 | "SLOOP", 1885 | "EXPEL", 1886 | "SMOTE", 1887 | "BALER", 1888 | "ABOVE", 1889 | "NORTH", 1890 | "WAFER", 1891 | "SCANT", 1892 | "FRILL", 1893 | "AWASH", 1894 | "SNACK", 1895 | "SCOWL", 1896 | "FRAIL", 1897 | "DRIFT", 1898 | "LIMBO", 1899 | "FENCE", 1900 | "MOTEL", 1901 | "OUNCE", 1902 | "WREAK", 1903 | "REVEL", 1904 | "TALON", 1905 | "PRIOR", 1906 | "KNELT", 1907 | "CELLO", 1908 | "FLAKE", 1909 | "DEBUG", 1910 | "ANODE", 1911 | "CRIME", 1912 | "SALVE", 1913 | "SCOUT", 1914 | "IMBUE", 1915 | "PINKY", 1916 | "STAVE", 1917 | "VAGUE", 1918 | "CHOCK", 1919 | "FIGHT", 1920 | "VIDEO", 1921 | "STONE", 1922 | "TEACH", 1923 | "CLEFT", 1924 | "FROST", 1925 | "PRAWN", 1926 | "BOOTY", 1927 | "TWIST", 1928 | "APNEA", 1929 | "STIFF", 1930 | "PLAZA", 1931 | "LEDGE", 1932 | "TWEAK", 1933 | "BOARD", 1934 | "GRANT", 1935 | "MEDIC", 1936 | "BACON", 1937 | "CABLE", 1938 | "BRAWL", 1939 | "SLUNK", 1940 | "RASPY", 1941 | "FORUM", 1942 | "DRONE", 1943 | "WOMEN", 1944 | "MUCUS", 1945 | "BOAST", 1946 | "TODDY", 1947 | "COVEN", 1948 | "TUMOR", 1949 | "TRUER", 1950 | "WRATH", 1951 | "STALL", 1952 | "STEAM", 1953 | "AXIAL", 1954 | "PURER", 1955 | "DAILY", 1956 | "TRAIL", 1957 | "NICHE", 1958 | "MEALY", 1959 | "JUICE", 1960 | "NYLON", 1961 | "PLUMP", 1962 | "MERRY", 1963 | "FLAIL", 1964 | "PAPAL", 1965 | "WHEAT", 1966 | "BERRY", 1967 | "COWER", 1968 | "ERECT", 1969 | "BRUTE", 1970 | "LEGGY", 1971 | "SNIPE", 1972 | "SINEW", 1973 | "SKIER", 1974 | "PENNY", 1975 | "JUMPY", 1976 | "RALLY", 1977 | "UMBRA", 1978 | "SCARY", 1979 | "MODEM", 1980 | "GROSS", 1981 | "AVIAN", 1982 | "GREED", 1983 | "SATIN", 1984 | "TONIC", 1985 | "PARKA", 1986 | "SNIFF", 1987 | "LIVID", 1988 | "STARK", 1989 | "TRUMP", 1990 | "GIDDY", 1991 | "REUSE", 1992 | "TABOO", 1993 | "AVOID", 1994 | "QUOTE", 1995 | "DEVIL", 1996 | "LIKEN", 1997 | "GLOSS", 1998 | "GAYER", 1999 | "BERET", 2000 | "NOISE", 2001 | "GLAND", 2002 | "DEALT", 2003 | "SLING", 2004 | "RUMOR", 2005 | "OPERA", 2006 | "THIGH", 2007 | "TONGA", 2008 | "FLARE", 2009 | "WOUND", 2010 | "WHITE", 2011 | "BULKY", 2012 | "ETUDE", 2013 | "HORSE", 2014 | "CIRCA", 2015 | "PADDY", 2016 | "INBOX", 2017 | "FIZZY", 2018 | "GRAIN", 2019 | "EXERT", 2020 | "SURGE", 2021 | "GLEAM", 2022 | "BELLE", 2023 | "SALVO", 2024 | "CRUSH", 2025 | "FRUIT", 2026 | "SAPPY", 2027 | "TAKER", 2028 | "TRACT", 2029 | "OVINE", 2030 | "SPIKY", 2031 | "FRANK", 2032 | "REEDY", 2033 | "FILTH", 2034 | "SPASM", 2035 | "HEAVE", 2036 | "MAMBO", 2037 | "RIGHT", 2038 | "CLANK", 2039 | "TRUST", 2040 | "LUMEN", 2041 | "BORNE", 2042 | "SPOOK", 2043 | "SAUCE", 2044 | "AMBER", 2045 | "LATHE", 2046 | "CARAT", 2047 | "CORER", 2048 | "DIRTY", 2049 | "SLYLY", 2050 | "AFFIX", 2051 | "ALLOY", 2052 | "TAINT", 2053 | "SHEEP", 2054 | "KINKY", 2055 | "WOOLY", 2056 | "MAUVE", 2057 | "FLUNG", 2058 | "YACHT", 2059 | "FRIED", 2060 | "QUAIL", 2061 | "BRUNT", 2062 | "GRIMY", 2063 | "CURVY", 2064 | "CAGEY", 2065 | "RINSE", 2066 | "DEUCE", 2067 | "STATE", 2068 | "GRASP", 2069 | "MILKY", 2070 | "BISON", 2071 | "GRAFT", 2072 | "SANDY", 2073 | "BASTE", 2074 | "FLASK", 2075 | "HEDGE", 2076 | "GIRLY", 2077 | "SWASH", 2078 | "BONEY", 2079 | "COUPE", 2080 | "ENDOW", 2081 | "ABHOR", 2082 | "WELCH", 2083 | "BLADE", 2084 | "TIGHT", 2085 | "GEESE", 2086 | "MISER", 2087 | "MIRTH", 2088 | "CLOUD", 2089 | "CABAL", 2090 | "LEECH", 2091 | "CLOSE", 2092 | "TENTH", 2093 | "PECAN", 2094 | "DROIT", 2095 | "GRAIL", 2096 | "CLONE", 2097 | "GUISE", 2098 | "RALPH", 2099 | "TANGO", 2100 | "BIDDY", 2101 | "SMITH", 2102 | "MOWER", 2103 | "PAYEE", 2104 | "SERIF", 2105 | "DRAPE", 2106 | "FIFTH", 2107 | "SPANK", 2108 | "GLAZE", 2109 | "ALLOT", 2110 | "TRUCK", 2111 | "KAYAK", 2112 | "VIRUS", 2113 | "TESTY", 2114 | "TEPEE", 2115 | "FULLY", 2116 | "ZONAL", 2117 | "METRO", 2118 | "CURRY", 2119 | "GRAND", 2120 | "BANJO", 2121 | "AXION", 2122 | "BEZEL", 2123 | "OCCUR", 2124 | "CHAIN", 2125 | "NASAL", 2126 | "GOOEY", 2127 | "FILER", 2128 | "BRACE", 2129 | "ALLAY", 2130 | "PUBIC", 2131 | "RAVEN", 2132 | "PLEAD", 2133 | "GNASH", 2134 | "FLAKY", 2135 | "MUNCH", 2136 | "DULLY", 2137 | "EKING", 2138 | "THING", 2139 | "SLINK", 2140 | "HURRY", 2141 | "THEFT", 2142 | "SHORN", 2143 | "PYGMY", 2144 | "RANCH", 2145 | "WRING", 2146 | "LEMON", 2147 | "SHORE", 2148 | "MAMMA", 2149 | "FROZE", 2150 | "NEWER", 2151 | "STYLE", 2152 | "MOOSE", 2153 | "ANTIC", 2154 | "DROWN", 2155 | "VEGAN", 2156 | "CHESS", 2157 | "GUPPY", 2158 | "UNION", 2159 | "LEVER", 2160 | "LORRY", 2161 | "IMAGE", 2162 | "CABBY", 2163 | "DRUID", 2164 | "EXACT", 2165 | "TRUTH", 2166 | "DOPEY", 2167 | "SPEAR", 2168 | "CRIED", 2169 | "CHIME", 2170 | "CRONY", 2171 | "STUNK", 2172 | "TIMID", 2173 | "BATCH", 2174 | "GAUGE", 2175 | "ROTOR", 2176 | "CRACK", 2177 | "CURVE", 2178 | "LATTE", 2179 | "WITCH", 2180 | "BUNCH", 2181 | "REPEL", 2182 | "ANVIL", 2183 | "SOAPY", 2184 | "METER", 2185 | "BROTH", 2186 | "MADLY", 2187 | "DRIED", 2188 | "SCENE", 2189 | "KNOWN", 2190 | "MAGMA", 2191 | "ROOST", 2192 | "WOMAN", 2193 | "THONG", 2194 | "PUNCH", 2195 | "PASTY", 2196 | "DOWNY", 2197 | "KNEAD", 2198 | "WHIRL", 2199 | "RAPID", 2200 | "CLANG", 2201 | "ANGER", 2202 | "DRIVE", 2203 | "GOOFY", 2204 | "EMAIL", 2205 | "MUSIC", 2206 | "STUFF", 2207 | "BLEEP", 2208 | "RIDER", 2209 | "MECCA", 2210 | "FOLIO", 2211 | "SETUP", 2212 | "VERSO", 2213 | "QUASH", 2214 | "FAUNA", 2215 | "GUMMY", 2216 | "HAPPY", 2217 | "NEWLY", 2218 | "FUSSY", 2219 | "RELIC", 2220 | "GUAVA", 2221 | "RATTY", 2222 | "FUDGE", 2223 | "FEMUR", 2224 | "CHIRP", 2225 | "FORTE", 2226 | "ALIBI", 2227 | "WHINE", 2228 | "PETTY", 2229 | "GOLLY", 2230 | "PLAIT", 2231 | "FLECK", 2232 | "FELON", 2233 | "GOURD", 2234 | "BROWN", 2235 | "THRUM", 2236 | "FICUS", 2237 | "STASH", 2238 | "DECRY", 2239 | "WISER", 2240 | "JUNTA", 2241 | "VISOR", 2242 | "DAUNT", 2243 | "SCREE", 2244 | "IMPEL", 2245 | "AWAIT", 2246 | "PRESS", 2247 | "WHOSE", 2248 | "TURBO", 2249 | "STOOP", 2250 | "SPEAK", 2251 | "MANGY", 2252 | "EYING", 2253 | "INLET", 2254 | "CRONE", 2255 | "PULSE", 2256 | "MOSSY", 2257 | "STAID", 2258 | "HENCE", 2259 | "PINCH", 2260 | "TEDDY", 2261 | "SULLY", 2262 | "SNORE", 2263 | "RIPEN", 2264 | "SNOWY", 2265 | "ATTIC", 2266 | "GOING", 2267 | "LEACH", 2268 | "MOUTH", 2269 | "HOUND", 2270 | "CLUMP", 2271 | "TONAL", 2272 | "BIGOT", 2273 | "PERIL", 2274 | "PIECE", 2275 | "BLAME", 2276 | "HAUTE", 2277 | "SPIED", 2278 | "UNDID", 2279 | "INTRO", 2280 | "BASAL", 2281 | "SHINE", 2282 | "GECKO", 2283 | "RODEO", 2284 | "GUARD", 2285 | "STEER", 2286 | "LOAMY", 2287 | "SCAMP", 2288 | "SCRAM", 2289 | "MANLY", 2290 | "HELLO", 2291 | "VAUNT", 2292 | "ORGAN", 2293 | "FERAL", 2294 | "KNOCK", 2295 | "EXTRA", 2296 | "CONDO", 2297 | "ADAPT", 2298 | "WILLY", 2299 | "POLKA", 2300 | "RAYON", 2301 | "SKIRT", 2302 | "FAITH", 2303 | "TORSO", 2304 | "MATCH", 2305 | "MERCY", 2306 | "TEPID", 2307 | "SLEEK", 2308 | "RISER", 2309 | "TWIXT", 2310 | "PEACE", 2311 | "FLUSH", 2312 | "CATTY", 2313 | "LOGIN", 2314 | "EJECT", 2315 | "ROGER", 2316 | "RIVAL", 2317 | "UNTIE", 2318 | "REFIT", 2319 | "AORTA", 2320 | "ADULT", 2321 | "JUDGE", 2322 | "ROWER", 2323 | "ARTSY", 2324 | "RURAL", 2325 | "SHAVE", 2326 | #else 2327 | "CIGAR", 2328 | "REBUT", 2329 | "SISSY", 2330 | "HUMPH", 2331 | "AWAKE", 2332 | "BLUSH", 2333 | "FOCAL", 2334 | "EVADE", 2335 | "NAVAL", 2336 | "SERVE", 2337 | "HEATH", 2338 | "DWARF", 2339 | "MODEL", 2340 | "KARMA", 2341 | "STINK", 2342 | "GRADE", 2343 | "QUIET", 2344 | "BENCH", 2345 | "ABATE", 2346 | "FEIGN", 2347 | "MAJOR", 2348 | "DEATH", 2349 | "FRESH", 2350 | "CRUST", 2351 | "STOOL", 2352 | "COLON", 2353 | "ABASE", 2354 | "MARRY", 2355 | "REACT", 2356 | "BATTY", 2357 | "PRIDE", 2358 | "FLOSS", 2359 | "HELIX", 2360 | "CROAK", 2361 | "STAFF", 2362 | "PAPER", 2363 | "UNFED", 2364 | "WHELP", 2365 | "TRAWL", 2366 | "OUTDO", 2367 | "ADOBE", 2368 | "CRAZY", 2369 | "SOWER", 2370 | "REPAY", 2371 | "DIGIT", 2372 | "CRATE", 2373 | "CLUCK", 2374 | "SPIKE", 2375 | "MIMIC", 2376 | "POUND", 2377 | "MAXIM", 2378 | "LINEN", 2379 | "UNMET", 2380 | "FLESH", 2381 | "BOOBY", 2382 | "FORTH", 2383 | "FIRST", 2384 | "STAND", 2385 | "BELLY", 2386 | "IVORY", 2387 | "SEEDY", 2388 | "PRINT", 2389 | "YEARN", 2390 | "DRAIN", 2391 | "BRIBE", 2392 | "STOUT", 2393 | "PANEL", 2394 | "CRASS", 2395 | "FLUME", 2396 | "OFFAL", 2397 | "AGREE", 2398 | "ERROR", 2399 | "SWIRL", 2400 | "ARGUE", 2401 | "BLEED", 2402 | "DELTA", 2403 | "FLICK", 2404 | "TOTEM", 2405 | "WOOER", 2406 | "FRONT", 2407 | "SHRUB", 2408 | "PARRY", 2409 | "BIOME", 2410 | "LAPEL", 2411 | "START", 2412 | "GREET", 2413 | "GONER", 2414 | "GOLEM", 2415 | "LUSTY", 2416 | "LOOPY", 2417 | "ROUND", 2418 | "AUDIT", 2419 | "LYING", 2420 | "GAMMA", 2421 | "LABOR", 2422 | "ISLET", 2423 | "CIVIC", 2424 | "FORGE", 2425 | "CORNY", 2426 | "MOULT", 2427 | "BASIC", 2428 | "SALAD", 2429 | "AGATE", 2430 | "SPICY", 2431 | "SPRAY", 2432 | "ESSAY", 2433 | "FJORD", 2434 | "SPEND", 2435 | "KEBAB", 2436 | "GUILD", 2437 | "ABACK", 2438 | "MOTOR", 2439 | "ALONE", 2440 | "HATCH", 2441 | "HYPER", 2442 | "THUMB", 2443 | "DOWRY", 2444 | "OUGHT", 2445 | "BELCH", 2446 | "DUTCH", 2447 | "PILOT", 2448 | "TWEED", 2449 | "COMET", 2450 | "JAUNT", 2451 | "ENEMA", 2452 | "STEED", 2453 | "ABYSS", 2454 | "GROWL", 2455 | "FLING", 2456 | "DOZEN", 2457 | "BOOZY", 2458 | "ERODE", 2459 | "WORLD", 2460 | "GOUGE", 2461 | "CLICK", 2462 | "BRIAR", 2463 | "GREAT", 2464 | "ALTAR", 2465 | "PULPY", 2466 | "BLURT", 2467 | "COAST", 2468 | "DUCHY", 2469 | "GROIN", 2470 | "FIXER", 2471 | "GROUP", 2472 | "ROGUE", 2473 | "BADLY", 2474 | "SMART", 2475 | "PITHY", 2476 | "GAUDY", 2477 | "CHILL", 2478 | "HERON", 2479 | "VODKA", 2480 | "FINER", 2481 | "SURER", 2482 | "RADIO", 2483 | "ROUGE", 2484 | "PERCH", 2485 | "RETCH", 2486 | "WROTE", 2487 | "CLOCK", 2488 | "TILDE", 2489 | "STORE", 2490 | "PROVE", 2491 | "BRING", 2492 | "SOLVE", 2493 | "CHEAT", 2494 | "GRIME", 2495 | "EXULT", 2496 | "USHER", 2497 | "EPOCH", 2498 | "TRIAD", 2499 | "BREAK", 2500 | "RHINO", 2501 | "VIRAL", 2502 | "CONIC", 2503 | "MASSE", 2504 | "SONIC", 2505 | "VITAL", 2506 | "TRACE", 2507 | "USING", 2508 | "PEACH", 2509 | "CHAMP", 2510 | "BATON", 2511 | "BRAKE", 2512 | "PLUCK", 2513 | "CRAZE", 2514 | "GRIPE", 2515 | "WEARY", 2516 | "PICKY", 2517 | "ACUTE", 2518 | "FERRY", 2519 | "ASIDE", 2520 | "TAPIR", 2521 | "TROLL", 2522 | "UNIFY", 2523 | "REBUS", 2524 | "BOOST", 2525 | "TRUSS", 2526 | "SIEGE", 2527 | "TIGER", 2528 | "BANAL", 2529 | "SLUMP", 2530 | "CRANK", 2531 | "GORGE", 2532 | "QUERY", 2533 | "DRINK", 2534 | "FAVOR", 2535 | "ABBEY", 2536 | "TANGY", 2537 | "PANIC", 2538 | "SOLAR", 2539 | "SHIRE", 2540 | "PROXY", 2541 | "POINT", 2542 | "ROBOT", 2543 | "PRICK", 2544 | "WINCE", 2545 | "CRIMP", 2546 | "KNOLL", 2547 | "SUGAR", 2548 | "WHACK", 2549 | "MOUNT", 2550 | "PERKY", 2551 | "COULD", 2552 | "WRUNG", 2553 | "LIGHT", 2554 | "THOSE", 2555 | "MOIST", 2556 | "SHARD", 2557 | "PLEAT", 2558 | "ALOFT", 2559 | "SKILL", 2560 | "ELDER", 2561 | "FRAME", 2562 | "HUMOR", 2563 | "PAUSE", 2564 | "ULCER", 2565 | "ULTRA", 2566 | "ROBIN", 2567 | "CYNIC", 2568 | "AROMA", 2569 | "CAULK", 2570 | "SHAKE", 2571 | "DODGE", 2572 | "SWILL", 2573 | "TACIT", 2574 | "OTHER", 2575 | "THORN", 2576 | "TROVE", 2577 | "BLOKE", 2578 | "VIVID", 2579 | "SPILL", 2580 | "CHANT", 2581 | "CHOKE", 2582 | "RUPEE", 2583 | "NASTY", 2584 | "MOURN", 2585 | "AHEAD", 2586 | "BRINE", 2587 | "CLOTH", 2588 | "HOARD", 2589 | "SWEET", 2590 | "MONTH", 2591 | "LAPSE", 2592 | "WATCH", 2593 | "TODAY", 2594 | "FOCUS", 2595 | "SMELT", 2596 | "TEASE", 2597 | "CATER", 2598 | "MOVIE", 2599 | "SAUTE", 2600 | "ALLOW", 2601 | "RENEW", 2602 | "THEIR", 2603 | "SLOSH", 2604 | "PURGE", 2605 | "CHEST", 2606 | "DEPOT", 2607 | "EPOXY", 2608 | "NYMPH", 2609 | "FOUND", 2610 | "SHALL", 2611 | "STOVE", 2612 | "LOWLY", 2613 | "SNOUT", 2614 | "TROPE", 2615 | "FEWER", 2616 | "SHAWL", 2617 | "NATAL", 2618 | "COMMA", 2619 | "FORAY", 2620 | "SCARE", 2621 | "STAIR", 2622 | "BLACK", 2623 | "SQUAD", 2624 | "ROYAL", 2625 | "CHUNK", 2626 | "MINCE", 2627 | "SHAME", 2628 | "CHEEK", 2629 | "AMPLE", 2630 | "FLAIR", 2631 | "FOYER", 2632 | "CARGO", 2633 | "OXIDE", 2634 | "PLANT", 2635 | "OLIVE", 2636 | "INERT", 2637 | "ASKEW", 2638 | "HEIST", 2639 | "SHOWN", 2640 | "ZESTY", 2641 | "TRASH", 2642 | "LARVA", 2643 | "FORGO", 2644 | "STORY", 2645 | "HAIRY", 2646 | "TRAIN", 2647 | "HOMER", 2648 | "BADGE", 2649 | "MIDST", 2650 | "CANNY", 2651 | "FETUS", 2652 | "BUTCH", 2653 | "FARCE", 2654 | "SLUNG", 2655 | "TIPSY", 2656 | "METAL", 2657 | "YIELD", 2658 | "DELVE", 2659 | "BEING", 2660 | "SCOUR", 2661 | "GLASS", 2662 | "GAMER", 2663 | "SCRAP", 2664 | "MONEY", 2665 | "HINGE", 2666 | "ALBUM", 2667 | "VOUCH", 2668 | "ASSET", 2669 | "TIARA", 2670 | "CREPT", 2671 | "BAYOU", 2672 | "ATOLL", 2673 | "MANOR", 2674 | "CREAK", 2675 | "SHOWY", 2676 | "PHASE", 2677 | "FROTH", 2678 | "DEPTH", 2679 | "GLOOM", 2680 | "FLOOD", 2681 | "TRAIT", 2682 | "GIRTH", 2683 | "PIETY", 2684 | "GOOSE", 2685 | "FLOAT", 2686 | "DONOR", 2687 | "ATONE", 2688 | "PRIMO", 2689 | "APRON", 2690 | "BLOWN", 2691 | "CACAO", 2692 | "LOSER", 2693 | "INPUT", 2694 | "GLOAT", 2695 | "AWFUL", 2696 | "BRINK", 2697 | "SMITE", 2698 | "BEADY", 2699 | "RUSTY", 2700 | "RETRO", 2701 | "DROLL", 2702 | "GAWKY", 2703 | "HUTCH", 2704 | "PINTO", 2705 | "EGRET", 2706 | "LILAC", 2707 | "SEVER", 2708 | "FIELD", 2709 | "FLUFF", 2710 | "FLACK", 2711 | "AGAPE", 2712 | "VOICE", 2713 | "STEAD", 2714 | "STALK", 2715 | "BERTH", 2716 | "MADAM", 2717 | "NIGHT", 2718 | "BLAND", 2719 | "LIVER", 2720 | "WEDGE", 2721 | "AUGUR", 2722 | "ROOMY", 2723 | "WACKY", 2724 | "FLOCK", 2725 | "ANGRY", 2726 | "TRITE", 2727 | "APHID", 2728 | "TRYST", 2729 | "MIDGE", 2730 | "POWER", 2731 | "ELOPE", 2732 | "CINCH", 2733 | "MOTTO", 2734 | "STOMP", 2735 | "UPSET", 2736 | "BLUFF", 2737 | "CRAMP", 2738 | "QUART", 2739 | "COYLY", 2740 | "YOUTH", 2741 | "RHYME", 2742 | "BUGGY", 2743 | "ALIEN", 2744 | "SMEAR", 2745 | "UNFIT", 2746 | "PATTY", 2747 | "CLING", 2748 | "GLEAN", 2749 | "LABEL", 2750 | "HUNKY", 2751 | "KHAKI", 2752 | "POKER", 2753 | "GRUEL", 2754 | "TWICE", 2755 | "TWANG", 2756 | "SHRUG", 2757 | "TREAT", 2758 | "WASTE", 2759 | "MERIT", 2760 | "WOVEN", 2761 | "NEEDY", 2762 | "CLOWN", 2763 | "WIDOW", 2764 | "IRONY", 2765 | "RUDER", 2766 | "GAUZE", 2767 | "CHIEF", 2768 | "ONSET", 2769 | "PRIZE", 2770 | "FUNGI", 2771 | "CHARM", 2772 | "GULLY", 2773 | "INTER", 2774 | "WHOOP", 2775 | "TAUNT", 2776 | "LEERY", 2777 | "CLASS", 2778 | "THEME", 2779 | "LOFTY", 2780 | "TIBIA", 2781 | "BOOZE", 2782 | "ALPHA", 2783 | "THYME", 2784 | "DOUBT", 2785 | "PARER", 2786 | "CHUTE", 2787 | "STICK", 2788 | "TRICE", 2789 | "ALIKE", 2790 | "RECAP", 2791 | "SAINT", 2792 | "GLORY", 2793 | "GRATE", 2794 | "ADMIT", 2795 | "BRISK", 2796 | "SOGGY", 2797 | "USURP", 2798 | "SCALD", 2799 | "SCORN", 2800 | "LEAVE", 2801 | "TWINE", 2802 | "STING", 2803 | "BOUGH", 2804 | "MARSH", 2805 | "SLOTH", 2806 | "DANDY", 2807 | "VIGOR", 2808 | "HOWDY", 2809 | "ENJOY", 2810 | "VALID", 2811 | "IONIC", 2812 | "EQUAL", 2813 | "FLOOR", 2814 | "CATCH", 2815 | "SPADE", 2816 | "STEIN", 2817 | "EXIST", 2818 | "QUIRK", 2819 | "DENIM", 2820 | "GROVE", 2821 | "SPIEL", 2822 | "MUMMY", 2823 | "FAULT", 2824 | "FOGGY", 2825 | "FLOUT", 2826 | "CARRY", 2827 | "SNEAK", 2828 | "LIBEL", 2829 | "WALTZ", 2830 | "APTLY", 2831 | "PINEY", 2832 | "INEPT", 2833 | "ALOUD", 2834 | "PHOTO", 2835 | "DREAM", 2836 | "STALE", 2837 | "UNITE", 2838 | "SNARL", 2839 | "BAKER", 2840 | "THERE", 2841 | "GLYPH", 2842 | "POOCH", 2843 | "HIPPY", 2844 | "SPELL", 2845 | "FOLLY", 2846 | "LOUSE", 2847 | "GULCH", 2848 | "VAULT", 2849 | "GODLY", 2850 | "THREW", 2851 | "FLEET", 2852 | "GRAVE", 2853 | "INANE", 2854 | "SHOCK", 2855 | "CRAVE", 2856 | "SPITE", 2857 | "VALVE", 2858 | "SKIMP", 2859 | "CLAIM", 2860 | "RAINY", 2861 | "MUSTY", 2862 | "PIQUE", 2863 | "DADDY", 2864 | "QUASI", 2865 | "ARISE", 2866 | "AGING", 2867 | "VALET", 2868 | "OPIUM", 2869 | "AVERT", 2870 | "STUCK", 2871 | "RECUT", 2872 | "MULCH", 2873 | "GENRE", 2874 | "PLUME", 2875 | "RIFLE", 2876 | "COUNT", 2877 | "INCUR", 2878 | "TOTAL", 2879 | "WREST", 2880 | "MOCHA", 2881 | "DETER", 2882 | "STUDY", 2883 | "LOVER", 2884 | "SAFER", 2885 | "RIVET", 2886 | "FUNNY", 2887 | "SMOKE", 2888 | "MOUND", 2889 | "UNDUE", 2890 | "SEDAN", 2891 | "PAGAN", 2892 | "SWINE", 2893 | "GUILE", 2894 | "GUSTY", 2895 | "EQUIP", 2896 | "TOUGH", 2897 | "CANOE", 2898 | "CHAOS", 2899 | "COVET", 2900 | "HUMAN", 2901 | "UDDER", 2902 | "LUNCH", 2903 | "BLAST", 2904 | "STRAY", 2905 | "MANGA", 2906 | "MELEE", 2907 | "LEFTY", 2908 | "QUICK", 2909 | "PASTE", 2910 | "GIVEN", 2911 | "OCTET", 2912 | "RISEN", 2913 | "GROAN", 2914 | "LEAKY", 2915 | "GRIND", 2916 | "CARVE", 2917 | "LOOSE", 2918 | "SADLY", 2919 | "SPILT", 2920 | "APPLE", 2921 | "SLACK", 2922 | "HONEY", 2923 | "FINAL", 2924 | "SHEEN", 2925 | "EERIE", 2926 | "MINTY", 2927 | "SLICK", 2928 | "DERBY", 2929 | "WHARF", 2930 | "SPELT", 2931 | "COACH", 2932 | "ERUPT", 2933 | "SINGE", 2934 | "PRICE", 2935 | "SPAWN", 2936 | "FAIRY", 2937 | "JIFFY", 2938 | "FILMY", 2939 | "STACK", 2940 | "CHOSE", 2941 | "SLEEP", 2942 | "ARDOR", 2943 | "NANNY", 2944 | "NIECE", 2945 | "WOOZY", 2946 | "HANDY", 2947 | "GRACE", 2948 | "DITTO", 2949 | "STANK", 2950 | "CREAM", 2951 | "USUAL", 2952 | "DIODE", 2953 | "VALOR", 2954 | "ANGLE", 2955 | "NINJA", 2956 | "MUDDY", 2957 | "CHASE", 2958 | "REPLY", 2959 | "PRONE", 2960 | "SPOIL", 2961 | "HEART", 2962 | "SHADE", 2963 | "DINER", 2964 | "ARSON", 2965 | "ONION", 2966 | "SLEET", 2967 | "DOWEL", 2968 | "COUCH", 2969 | "PALSY", 2970 | "BOWEL", 2971 | "SMILE", 2972 | "EVOKE", 2973 | "CREEK", 2974 | "LANCE", 2975 | "EAGLE", 2976 | "IDIOT", 2977 | "SIREN", 2978 | "BUILT", 2979 | "EMBED", 2980 | "AWARD", 2981 | "DROSS", 2982 | "ANNUL", 2983 | "GOODY", 2984 | "FROWN", 2985 | "PATIO", 2986 | "LADEN", 2987 | "HUMID", 2988 | "ELITE", 2989 | "LYMPH", 2990 | "EDIFY", 2991 | "MIGHT", 2992 | "RESET", 2993 | "VISIT", 2994 | "GUSTO", 2995 | "PURSE", 2996 | "VAPOR", 2997 | "CROCK", 2998 | "WRITE", 2999 | "SUNNY", 3000 | "LOATH", 3001 | "CHAFF", 3002 | "SLIDE", 3003 | "QUEER", 3004 | "VENOM", 3005 | "STAMP", 3006 | "SORRY", 3007 | "STILL", 3008 | "ACORN", 3009 | "APING", 3010 | "PUSHY", 3011 | "TAMER", 3012 | "HATER", 3013 | "MANIA", 3014 | "AWOKE", 3015 | "BRAWN", 3016 | "SWIFT", 3017 | "EXILE", 3018 | "BIRCH", 3019 | "LUCKY", 3020 | "FREER", 3021 | "RISKY", 3022 | "GHOST", 3023 | "PLIER", 3024 | "LUNAR", 3025 | "WINCH", 3026 | "SNARE", 3027 | "NURSE", 3028 | "HOUSE", 3029 | "BORAX", 3030 | "NICER", 3031 | "LURCH", 3032 | "EXALT", 3033 | "ABOUT", 3034 | "SAVVY", 3035 | "TOXIN", 3036 | "TUNIC", 3037 | "PRIED", 3038 | "INLAY", 3039 | "CHUMP", 3040 | "LANKY", 3041 | "CRESS", 3042 | "EATER", 3043 | "ELUDE", 3044 | "CYCLE", 3045 | "KITTY", 3046 | "BOULE", 3047 | "MORON", 3048 | "TENET", 3049 | "PLACE", 3050 | "LOBBY", 3051 | "PLUSH", 3052 | "VIGIL", 3053 | "INDEX", 3054 | "BLINK", 3055 | "CLUNG", 3056 | "QUALM", 3057 | "CROUP", 3058 | "CLINK", 3059 | "JUICY", 3060 | "STAGE", 3061 | "DECAY", 3062 | "NERVE", 3063 | "FLIER", 3064 | "SHAFT", 3065 | "CROOK", 3066 | "CLEAN", 3067 | "CHINA", 3068 | "RIDGE", 3069 | "BLEEP", 3070 | "MOSSY", 3071 | "HOTEL", 3072 | "IRATE", 3073 | "VENOM", 3074 | "WINDY", 3075 | "DONUT", 3076 | "COWER", 3077 | "ENTER", 3078 | "FOLLY", 3079 | "EARTH", 3080 | "WHIRL", 3081 | "BARGE", 3082 | "FIEND", 3083 | "CRONE", 3084 | "TOPAZ", 3085 | "DROOP", 3086 | "FLYER", 3087 | "TONIC", 3088 | "FLANK", 3089 | "BURLY", 3090 | "FROZE", 3091 | "WHALE", 3092 | "HOBBY", 3093 | "WHEEL", 3094 | "HEART", 3095 | "DISCO", 3096 | "ETHOS", 3097 | "CURLY", 3098 | "BATHE", 3099 | "STYLE", 3100 | "TENTH", 3101 | "BEGET", 3102 | "PARTY", 3103 | "CHART", 3104 | "ANODE", 3105 | "POLYP", 3106 | "BROOK", 3107 | "BULLY", 3108 | "LOVER", 3109 | "EMPTY", 3110 | "HELLO", 3111 | "QUICK", 3112 | "WRATH", 3113 | "SNAKY", 3114 | "INDEX", 3115 | "SCRUB", 3116 | "AMISS", 3117 | "EXACT", 3118 | "MAGMA", 3119 | "QUEST", 3120 | "BEACH", 3121 | "SPICE", 3122 | "VERVE", 3123 | "WORDY", 3124 | "OCEAN", 3125 | "CHOIR", 3126 | "BRAIN", 3127 | "BUDDY", 3128 | "THUMP", 3129 | "SCION", 3130 | "CANDY", 3131 | "CHORD", 3132 | "BASIN", 3133 | "MARCH", 3134 | "CROWD", 3135 | "ARBOR", 3136 | "GAYLY", 3137 | "MUSKY", 3138 | "STAIN", 3139 | "DALLY", 3140 | "BLESS", 3141 | "BRAVO", 3142 | "STUNG", 3143 | "TITLE", 3144 | "RULER", 3145 | "KIOSK", 3146 | "BLOND", 3147 | "ENNUI", 3148 | "LAYER", 3149 | "FLUID", 3150 | "TATTY", 3151 | "SCORE", 3152 | "CUTIE", 3153 | "ZEBRA", 3154 | "BARGE", 3155 | "MATEY", 3156 | "BLUER", 3157 | "AIDER", 3158 | "SHOOK", 3159 | "RIVER", 3160 | "PRIVY", 3161 | "BETEL", 3162 | "FRISK", 3163 | "BONGO", 3164 | "BEGUN", 3165 | "AZURE", 3166 | "WEAVE", 3167 | "GENIE", 3168 | "SOUND", 3169 | "GLOVE", 3170 | "BRAID", 3171 | "SCOPE", 3172 | "WRYLY", 3173 | "ROVER", 3174 | "ASSAY", 3175 | "OCEAN", 3176 | "BLOOM", 3177 | "IRATE", 3178 | "LATER", 3179 | "WOKEN", 3180 | "SILKY", 3181 | "WRECK", 3182 | "DWELT", 3183 | "SLATE", 3184 | "SMACK", 3185 | "SOLID", 3186 | "AMAZE", 3187 | "HAZEL", 3188 | "WRIST", 3189 | "JOLLY", 3190 | "GLOBE", 3191 | "FLINT", 3192 | "ROUSE", 3193 | "CIVIL", 3194 | "VISTA", 3195 | "RELAX", 3196 | "COVER", 3197 | "ALIVE", 3198 | "BEECH", 3199 | "JETTY", 3200 | "BLISS", 3201 | "VOCAL", 3202 | "OFTEN", 3203 | "DOLLY", 3204 | "EIGHT", 3205 | "JOKER", 3206 | "SINCE", 3207 | "EVENT", 3208 | "ENSUE", 3209 | "SHUNT", 3210 | "DIVER", 3211 | "POSER", 3212 | "WORST", 3213 | "SWEEP", 3214 | "ALLEY", 3215 | "CREED", 3216 | "ANIME", 3217 | "LEAFY", 3218 | "BOSOM", 3219 | "DUNCE", 3220 | "STARE", 3221 | "PUDGY", 3222 | "WAIVE", 3223 | "CHOIR", 3224 | "STOOD", 3225 | "SPOKE", 3226 | "OUTGO", 3227 | "DELAY", 3228 | "BILGE", 3229 | "IDEAL", 3230 | "CLASP", 3231 | "SEIZE", 3232 | "HOTLY", 3233 | "LAUGH", 3234 | "SIEVE", 3235 | "BLOCK", 3236 | "MEANT", 3237 | "GRAPE", 3238 | "NOOSE", 3239 | "HARDY", 3240 | "SHIED", 3241 | "DRAWL", 3242 | "DAISY", 3243 | "PUTTY", 3244 | "STRUT", 3245 | "BURNT", 3246 | "TULIP", 3247 | "CRICK", 3248 | "IDYLL", 3249 | "VIXEN", 3250 | "FUROR", 3251 | "GEEKY", 3252 | "COUGH", 3253 | "NAIVE", 3254 | "SHOAL", 3255 | "STORK", 3256 | "BATHE", 3257 | "AUNTY", 3258 | "CHECK", 3259 | "PRIME", 3260 | "BRASS", 3261 | "OUTER", 3262 | "FURRY", 3263 | "RAZOR", 3264 | "ELECT", 3265 | "EVICT", 3266 | "IMPLY", 3267 | "DEMUR", 3268 | "QUOTA", 3269 | "HAVEN", 3270 | "CAVIL", 3271 | "SWEAR", 3272 | "CRUMP", 3273 | "DOUGH", 3274 | "GAVEL", 3275 | "WAGON", 3276 | "SALON", 3277 | "NUDGE", 3278 | "HAREM", 3279 | "PITCH", 3280 | "SWORN", 3281 | "PUPIL", 3282 | "EXCEL", 3283 | "STONY", 3284 | "CABIN", 3285 | "UNZIP", 3286 | "QUEEN", 3287 | "TROUT", 3288 | "POLYP", 3289 | "EARTH", 3290 | "STORM", 3291 | "UNTIL", 3292 | "TAPER", 3293 | "ENTER", 3294 | "CHILD", 3295 | "ADOPT", 3296 | "MINOR", 3297 | "FATTY", 3298 | "HUSKY", 3299 | "BRAVE", 3300 | "FILET", 3301 | "SLIME", 3302 | "GLINT", 3303 | "TREAD", 3304 | "STEAL", 3305 | "REGAL", 3306 | "GUEST", 3307 | "EVERY", 3308 | "MURKY", 3309 | "SHARE", 3310 | "SPORE", 3311 | "HOIST", 3312 | "BUXOM", 3313 | "INNER", 3314 | "OTTER", 3315 | "DIMLY", 3316 | "LEVEL", 3317 | "SUMAC", 3318 | "DONUT", 3319 | "STILT", 3320 | "ARENA", 3321 | "SHEET", 3322 | "SCRUB", 3323 | "FANCY", 3324 | "SLIMY", 3325 | "PEARL", 3326 | "SILLY", 3327 | "PORCH", 3328 | "DINGO", 3329 | "SEPIA", 3330 | "AMBLE", 3331 | "SHADY", 3332 | "BREAD", 3333 | "FRIAR", 3334 | "REIGN", 3335 | "DAIRY", 3336 | "QUILL", 3337 | "CROSS", 3338 | "BROOD", 3339 | "TUBER", 3340 | "SHEAR", 3341 | "POSIT", 3342 | "BLANK", 3343 | "VILLA", 3344 | "SHANK", 3345 | "PIGGY", 3346 | "FREAK", 3347 | "WHICH", 3348 | "AMONG", 3349 | "FECAL", 3350 | "SHELL", 3351 | "WOULD", 3352 | "ALGAE", 3353 | "LARGE", 3354 | "RABBI", 3355 | "AGONY", 3356 | "AMUSE", 3357 | "BUSHY", 3358 | "COPSE", 3359 | "SWOON", 3360 | "KNIFE", 3361 | "POUCH", 3362 | "ASCOT", 3363 | "PLANE", 3364 | "CROWN", 3365 | "URBAN", 3366 | "SNIDE", 3367 | "RELAY", 3368 | "ABIDE", 3369 | "VIOLA", 3370 | "RAJAH", 3371 | "STRAW", 3372 | "DILLY", 3373 | "CRASH", 3374 | "AMASS", 3375 | "THIRD", 3376 | "TRICK", 3377 | "TUTOR", 3378 | "WOODY", 3379 | "BLURB", 3380 | "GRIEF", 3381 | "DISCO", 3382 | "WHERE", 3383 | "SASSY", 3384 | "BEACH", 3385 | "SAUNA", 3386 | "COMIC", 3387 | "CLUED", 3388 | "CREEP", 3389 | "CASTE", 3390 | "GRAZE", 3391 | "SNUFF", 3392 | "FROCK", 3393 | "GONAD", 3394 | "DRUNK", 3395 | "PRONG", 3396 | "LURID", 3397 | "STEEL", 3398 | "HALVE", 3399 | "BUYER", 3400 | "VINYL", 3401 | "UTILE", 3402 | "SMELL", 3403 | "ADAGE", 3404 | "WORRY", 3405 | "TASTY", 3406 | "LOCAL", 3407 | "TRADE", 3408 | "FINCH", 3409 | "ASHEN", 3410 | "MODAL", 3411 | "GAUNT", 3412 | "CLOVE", 3413 | "ENACT", 3414 | "ADORN", 3415 | "ROAST", 3416 | "SPECK", 3417 | "SHEIK", 3418 | "MISSY", 3419 | "GRUNT", 3420 | "SNOOP", 3421 | "PARTY", 3422 | "TOUCH", 3423 | "MAFIA", 3424 | "EMCEE", 3425 | "ARRAY", 3426 | "SOUTH", 3427 | "VAPID", 3428 | "JELLY", 3429 | "SKULK", 3430 | "ANGST", 3431 | "TUBAL", 3432 | "LOWER", 3433 | "CREST", 3434 | "SWEAT", 3435 | "CYBER", 3436 | "ADORE", 3437 | "TARDY", 3438 | "SWAMI", 3439 | "NOTCH", 3440 | "GROOM", 3441 | "ROACH", 3442 | "HITCH", 3443 | "YOUNG", 3444 | "ALIGN", 3445 | "READY", 3446 | "FROND", 3447 | "STRAP", 3448 | "PUREE", 3449 | "REALM", 3450 | "VENUE", 3451 | "SWARM", 3452 | "OFFER", 3453 | "SEVEN", 3454 | "DRYER", 3455 | "DIARY", 3456 | "DRYLY", 3457 | "DRANK", 3458 | "ACRID", 3459 | "HEADY", 3460 | "THETA", 3461 | "JUNTO", 3462 | "PIXIE", 3463 | "QUOTH", 3464 | "BONUS", 3465 | "SHALT", 3466 | "PENNE", 3467 | "AMEND", 3468 | "DATUM", 3469 | "BUILD", 3470 | "PIANO", 3471 | "SHELF", 3472 | "LODGE", 3473 | "SUING", 3474 | "REARM", 3475 | "CORAL", 3476 | "RAMEN", 3477 | "WORTH", 3478 | "PSALM", 3479 | "INFER", 3480 | "OVERT", 3481 | "MAYOR", 3482 | "OVOID", 3483 | "GLIDE", 3484 | "USAGE", 3485 | "POISE", 3486 | "RANDY", 3487 | "CHUCK", 3488 | "PRANK", 3489 | "FISHY", 3490 | "TOOTH", 3491 | "ETHER", 3492 | "DROVE", 3493 | "IDLER", 3494 | "SWATH", 3495 | "STINT", 3496 | "WHILE", 3497 | "BEGAT", 3498 | "APPLY", 3499 | "SLANG", 3500 | "TAROT", 3501 | "RADAR", 3502 | "CREDO", 3503 | "AWARE", 3504 | "CANON", 3505 | "SHIFT", 3506 | "TIMER", 3507 | "BYLAW", 3508 | "SERUM", 3509 | "THREE", 3510 | "STEAK", 3511 | "ILIAC", 3512 | "SHIRK", 3513 | "BLUNT", 3514 | "PUPPY", 3515 | "PENAL", 3516 | "JOIST", 3517 | "BUNNY", 3518 | "SHAPE", 3519 | "BEGET", 3520 | "WHEEL", 3521 | "ADEPT", 3522 | "STUNT", 3523 | "STOLE", 3524 | "TOPAZ", 3525 | "CHORE", 3526 | "FLUKE", 3527 | "AFOOT", 3528 | "BLOAT", 3529 | "BULLY", 3530 | "DENSE", 3531 | "CAPER", 3532 | "SNEER", 3533 | "BOXER", 3534 | "JUMBO", 3535 | "LUNGE", 3536 | "SPACE", 3537 | "AVAIL", 3538 | "SHORT", 3539 | "SLURP", 3540 | "LOYAL", 3541 | "FLIRT", 3542 | "PIZZA", 3543 | "CONCH", 3544 | "TEMPO", 3545 | "DROOP", 3546 | "PLATE", 3547 | "BIBLE", 3548 | "PLUNK", 3549 | "AFOUL", 3550 | "SAVOY", 3551 | "STEEP", 3552 | "AGILE", 3553 | "STAKE", 3554 | "DWELL", 3555 | "KNAVE", 3556 | "BEARD", 3557 | "AROSE", 3558 | "MOTIF", 3559 | "SMASH", 3560 | "BROIL", 3561 | "GLARE", 3562 | "SHOVE", 3563 | "BAGGY", 3564 | "MAMMY", 3565 | "SWAMP", 3566 | "ALONG", 3567 | "RUGBY", 3568 | "WAGER", 3569 | "QUACK", 3570 | "SQUAT", 3571 | "SNAKY", 3572 | "DEBIT", 3573 | "MANGE", 3574 | "SKATE", 3575 | "NINTH", 3576 | "JOUST", 3577 | "TRAMP", 3578 | "SPURN", 3579 | "MEDAL", 3580 | "MICRO", 3581 | "REBEL", 3582 | "FLANK", 3583 | "LEARN", 3584 | "NADIR", 3585 | "MAPLE", 3586 | "COMFY", 3587 | "REMIT", 3588 | "GRUFF", 3589 | "ESTER", 3590 | "LEAST", 3591 | "MOGUL", 3592 | "FETCH", 3593 | "CAUSE", 3594 | "OAKEN", 3595 | "AGLOW", 3596 | "MEATY", 3597 | "GAFFE", 3598 | "SHYLY", 3599 | "RACER", 3600 | "PROWL", 3601 | "THIEF", 3602 | "STERN", 3603 | "POESY", 3604 | "ROCKY", 3605 | "TWEET", 3606 | "WAIST", 3607 | "SPIRE", 3608 | "GROPE", 3609 | "HAVOC", 3610 | "PATSY", 3611 | "TRULY", 3612 | "FORTY", 3613 | "DEITY", 3614 | "UNCLE", 3615 | "SWISH", 3616 | "GIVER", 3617 | "PREEN", 3618 | "BEVEL", 3619 | "LEMUR", 3620 | "DRAFT", 3621 | "SLOPE", 3622 | "ANNOY", 3623 | "LINGO", 3624 | "BLEAK", 3625 | "DITTY", 3626 | "CURLY", 3627 | "CEDAR", 3628 | "DIRGE", 3629 | "GROWN", 3630 | "HORDE", 3631 | "DROOL", 3632 | "SHUCK", 3633 | "CRYPT", 3634 | "CUMIN", 3635 | "STOCK", 3636 | "GRAVY", 3637 | "LOCUS", 3638 | "WIDER", 3639 | "BREED", 3640 | "QUITE", 3641 | "CHAFE", 3642 | "CACHE", 3643 | "BLIMP", 3644 | "DEIGN", 3645 | "FIEND", 3646 | "LOGIC", 3647 | "CHEAP", 3648 | "ELIDE", 3649 | "RIGID", 3650 | "FALSE", 3651 | "RENAL", 3652 | "PENCE", 3653 | "ROWDY", 3654 | "SHOOT", 3655 | "BLAZE", 3656 | "ENVOY", 3657 | "POSSE", 3658 | "BRIEF", 3659 | "NEVER", 3660 | "ABORT", 3661 | "MOUSE", 3662 | "MUCKY", 3663 | "SULKY", 3664 | "FIERY", 3665 | "MEDIA", 3666 | "TRUNK", 3667 | "YEAST", 3668 | "CLEAR", 3669 | "SKUNK", 3670 | "SCALP", 3671 | "BITTY", 3672 | "CIDER", 3673 | "KOALA", 3674 | "DUVET", 3675 | "SEGUE", 3676 | "CREME", 3677 | "SUPER", 3678 | "GRILL", 3679 | "AFTER", 3680 | "OWNER", 3681 | "EMBER", 3682 | "REACH", 3683 | "NOBLY", 3684 | "EMPTY", 3685 | "SPEED", 3686 | "GIPSY", 3687 | "RECUR", 3688 | "SMOCK", 3689 | "DREAD", 3690 | "MERGE", 3691 | "BURST", 3692 | "KAPPA", 3693 | "AMITY", 3694 | "SHAKY", 3695 | "HOVER", 3696 | "CAROL", 3697 | "SNORT", 3698 | "SYNOD", 3699 | "FAINT", 3700 | "HAUNT", 3701 | "FLOUR", 3702 | "CHAIR", 3703 | "DETOX", 3704 | "SHREW", 3705 | "TENSE", 3706 | "PLIED", 3707 | "QUARK", 3708 | "BURLY", 3709 | "NOVEL", 3710 | "WAXEN", 3711 | "STOIC", 3712 | "JERKY", 3713 | "BLITZ", 3714 | "BEEFY", 3715 | "LYRIC", 3716 | "HUSSY", 3717 | "TOWEL", 3718 | "QUILT", 3719 | "BELOW", 3720 | "BINGO", 3721 | "WISPY", 3722 | "BRASH", 3723 | "SCONE", 3724 | "TOAST", 3725 | "EASEL", 3726 | "SAUCY", 3727 | "VALUE", 3728 | "SPICE", 3729 | "HONOR", 3730 | "ROUTE", 3731 | "SHARP", 3732 | "BAWDY", 3733 | "RADII", 3734 | "SKULL", 3735 | "PHONY", 3736 | "ISSUE", 3737 | "LAGER", 3738 | "SWELL", 3739 | "URINE", 3740 | "GASSY", 3741 | "TRIAL", 3742 | "FLORA", 3743 | "UPPER", 3744 | "LATCH", 3745 | "WIGHT", 3746 | "BRICK", 3747 | "RETRY", 3748 | "HOLLY", 3749 | "DECAL", 3750 | "GRASS", 3751 | "SHACK", 3752 | "DOGMA", 3753 | "MOVER", 3754 | "DEFER", 3755 | "SOBER", 3756 | "OPTIC", 3757 | "CRIER", 3758 | "VYING", 3759 | "NOMAD", 3760 | "FLUTE", 3761 | "HIPPO", 3762 | "SHARK", 3763 | "DRIER", 3764 | "OBESE", 3765 | "BUGLE", 3766 | "TAWNY", 3767 | "CHALK", 3768 | "FEAST", 3769 | "RUDDY", 3770 | "PEDAL", 3771 | "SCARF", 3772 | "CRUEL", 3773 | "BLEAT", 3774 | "TIDAL", 3775 | "SLUSH", 3776 | "SEMEN", 3777 | "WINDY", 3778 | "DUSTY", 3779 | "SALLY", 3780 | "IGLOO", 3781 | "NERDY", 3782 | "JEWEL", 3783 | "SHONE", 3784 | "WHALE", 3785 | "HYMEN", 3786 | "ABUSE", 3787 | "FUGUE", 3788 | "ELBOW", 3789 | "CRUMB", 3790 | "PANSY", 3791 | "WELSH", 3792 | "SYRUP", 3793 | "TERSE", 3794 | "SUAVE", 3795 | "GAMUT", 3796 | "SWUNG", 3797 | "DRAKE", 3798 | "FREED", 3799 | "AFIRE", 3800 | "SHIRT", 3801 | "GROUT", 3802 | "ODDLY", 3803 | "TITHE", 3804 | "PLAID", 3805 | "DUMMY", 3806 | "BROOM", 3807 | "BLIND", 3808 | "TORCH", 3809 | "ENEMY", 3810 | "AGAIN", 3811 | "TYING", 3812 | "PESKY", 3813 | "ALTER", 3814 | "GAZER", 3815 | "NOBLE", 3816 | "ETHOS", 3817 | "BRIDE", 3818 | "EXTOL", 3819 | "DECOR", 3820 | "HOBBY", 3821 | "BEAST", 3822 | "IDIOM", 3823 | "UTTER", 3824 | "THESE", 3825 | "SIXTH", 3826 | "ALARM", 3827 | "ERASE", 3828 | "ELEGY", 3829 | "SPUNK", 3830 | "PIPER", 3831 | "SCALY", 3832 | "SCOLD", 3833 | "HEFTY", 3834 | "CHICK", 3835 | "SOOTY", 3836 | "CANAL", 3837 | "WHINY", 3838 | "SLASH", 3839 | "QUAKE", 3840 | "JOINT", 3841 | "SWEPT", 3842 | "PRUDE", 3843 | "HEAVY", 3844 | "WIELD", 3845 | "FEMME", 3846 | "LASSO", 3847 | "MAIZE", 3848 | "SHALE", 3849 | "SCREW", 3850 | "SPREE", 3851 | "SMOKY", 3852 | "WHIFF", 3853 | "SCENT", 3854 | "GLADE", 3855 | "SPENT", 3856 | "PRISM", 3857 | "STOKE", 3858 | "RIPER", 3859 | "ORBIT", 3860 | "COCOA", 3861 | "GUILT", 3862 | "HUMUS", 3863 | "SHUSH", 3864 | "TABLE", 3865 | "SMIRK", 3866 | "WRONG", 3867 | "NOISY", 3868 | "ALERT", 3869 | "SHINY", 3870 | "ELATE", 3871 | "RESIN", 3872 | "WHOLE", 3873 | "HUNCH", 3874 | "PIXEL", 3875 | "POLAR", 3876 | "HOTEL", 3877 | "SWORD", 3878 | "CLEAT", 3879 | "MANGO", 3880 | "RUMBA", 3881 | "PUFFY", 3882 | "FILLY", 3883 | "BILLY", 3884 | "LEASH", 3885 | "CLOUT", 3886 | "DANCE", 3887 | "OVATE", 3888 | "FACET", 3889 | "CHILI", 3890 | "PAINT", 3891 | "LINER", 3892 | "CURIO", 3893 | "SALTY", 3894 | "AUDIO", 3895 | "SNAKE", 3896 | "FABLE", 3897 | "CLOAK", 3898 | "NAVEL", 3899 | "SPURT", 3900 | "PESTO", 3901 | "BALMY", 3902 | "FLASH", 3903 | "UNWED", 3904 | "EARLY", 3905 | "CHURN", 3906 | "WEEDY", 3907 | "STUMP", 3908 | "LEASE", 3909 | "WITTY", 3910 | "WIMPY", 3911 | "SPOOF", 3912 | "SANER", 3913 | "BLEND", 3914 | "SALSA", 3915 | "THICK", 3916 | "WARTY", 3917 | "MANIC", 3918 | "BLARE", 3919 | "SQUIB", 3920 | "SPOON", 3921 | "PROBE", 3922 | "CREPE", 3923 | "KNACK", 3924 | "FORCE", 3925 | "DEBUT", 3926 | "ORDER", 3927 | "HASTE", 3928 | "TEETH", 3929 | "AGENT", 3930 | "WIDEN", 3931 | "ICILY", 3932 | "SLICE", 3933 | "INGOT", 3934 | "CLASH", 3935 | "JUROR", 3936 | "BLOOD", 3937 | "ABODE", 3938 | "THROW", 3939 | "UNITY", 3940 | "PIVOT", 3941 | "SLEPT", 3942 | "TROOP", 3943 | "SPARE", 3944 | "SEWER", 3945 | "PARSE", 3946 | "MORPH", 3947 | "CACTI", 3948 | "TACKY", 3949 | "SPOOL", 3950 | "DEMON", 3951 | "MOODY", 3952 | "ANNEX", 3953 | "BEGIN", 3954 | "FUZZY", 3955 | "PATCH", 3956 | "WATER", 3957 | "LUMPY", 3958 | "ADMIN", 3959 | "OMEGA", 3960 | "LIMIT", 3961 | "TABBY", 3962 | "MACHO", 3963 | "AISLE", 3964 | "SKIFF", 3965 | "BASIS", 3966 | "PLANK", 3967 | "VERGE", 3968 | "BOTCH", 3969 | "CRAWL", 3970 | "LOUSY", 3971 | "SLAIN", 3972 | "CUBIC", 3973 | "RAISE", 3974 | "WRACK", 3975 | "GUIDE", 3976 | "FOIST", 3977 | "CAMEO", 3978 | "UNDER", 3979 | "ACTOR", 3980 | "REVUE", 3981 | "FRAUD", 3982 | "HARPY", 3983 | "SCOOP", 3984 | "CLIMB", 3985 | "REFER", 3986 | "OLDEN", 3987 | "CLERK", 3988 | "DEBAR", 3989 | "TALLY", 3990 | "ETHIC", 3991 | "CAIRN", 3992 | "TULLE", 3993 | "GHOUL", 3994 | "HILLY", 3995 | "CRUDE", 3996 | "APART", 3997 | "SCALE", 3998 | "OLDER", 3999 | "PLAIN", 4000 | "SPERM", 4001 | "BRINY", 4002 | "ABBOT", 4003 | "RERUN", 4004 | "QUEST", 4005 | "CRISP", 4006 | "BOUND", 4007 | "BEFIT", 4008 | "DRAWN", 4009 | "SUITE", 4010 | "ITCHY", 4011 | "CHEER", 4012 | "BAGEL", 4013 | "GUESS", 4014 | "BROAD", 4015 | "AXIOM", 4016 | "CHARD", 4017 | "CAPUT", 4018 | "LEANT", 4019 | "HARSH", 4020 | "CURSE", 4021 | "PROUD", 4022 | "SWING", 4023 | "OPINE", 4024 | "TASTE", 4025 | "LUPUS", 4026 | "GUMBO", 4027 | "MINER", 4028 | "GREEN", 4029 | "CHASM", 4030 | "LIPID", 4031 | "TOPIC", 4032 | "ARMOR", 4033 | "BRUSH", 4034 | "CRANE", 4035 | "MURAL", 4036 | "ABLED", 4037 | "HABIT", 4038 | "BOSSY", 4039 | "MAKER", 4040 | "DUSKY", 4041 | "DIZZY", 4042 | "LITHE", 4043 | "BROOK", 4044 | "JAZZY", 4045 | "FIFTY", 4046 | "SENSE", 4047 | "GIANT", 4048 | "SURLY", 4049 | "LEGAL", 4050 | "FATAL", 4051 | "FLUNK", 4052 | "BEGAN", 4053 | "PRUNE", 4054 | "SMALL", 4055 | "SLANT", 4056 | "SCOFF", 4057 | "TORUS", 4058 | "NINNY", 4059 | "COVEY", 4060 | "VIPER", 4061 | "TAKEN", 4062 | "MORAL", 4063 | "VOGUE", 4064 | "OWING", 4065 | "TOKEN", 4066 | "ENTRY", 4067 | "BOOTH", 4068 | "VOTER", 4069 | "CHIDE", 4070 | "ELFIN", 4071 | "EBONY", 4072 | "NEIGH", 4073 | "MINIM", 4074 | "MELON", 4075 | "KNEED", 4076 | "DECOY", 4077 | "VOILA", 4078 | "ANKLE", 4079 | "ARROW", 4080 | "MUSHY", 4081 | "TRIBE", 4082 | "CEASE", 4083 | "EAGER", 4084 | "BIRTH", 4085 | "GRAPH", 4086 | "ODDER", 4087 | "TERRA", 4088 | "WEIRD", 4089 | "TRIED", 4090 | "CLACK", 4091 | "COLOR", 4092 | "ROUGH", 4093 | "WEIGH", 4094 | "UNCUT", 4095 | "LADLE", 4096 | "STRIP", 4097 | "CRAFT", 4098 | "MINUS", 4099 | "DICEY", 4100 | "TITAN", 4101 | "LUCID", 4102 | "VICAR", 4103 | "DRESS", 4104 | "DITCH", 4105 | "GYPSY", 4106 | "PASTA", 4107 | "TAFFY", 4108 | "FLAME", 4109 | "SWOOP", 4110 | "ALOOF", 4111 | "SIGHT", 4112 | "BROKE", 4113 | "TEARY", 4114 | "CHART", 4115 | "SIXTY", 4116 | "WORDY", 4117 | "SHEER", 4118 | "LEPER", 4119 | "NOSEY", 4120 | "BULGE", 4121 | "SAVOR", 4122 | "CLAMP", 4123 | "FUNKY", 4124 | "FOAMY", 4125 | "TOXIC", 4126 | "BRAND", 4127 | "PLUMB", 4128 | "DINGY", 4129 | "BUTTE", 4130 | "DRILL", 4131 | "TRIPE", 4132 | "BICEP", 4133 | "TENOR", 4134 | "KRILL", 4135 | "WORSE", 4136 | "DRAMA", 4137 | "HYENA", 4138 | "THINK", 4139 | "RATIO", 4140 | "COBRA", 4141 | "BASIL", 4142 | "SCRUM", 4143 | "BUSED", 4144 | "PHONE", 4145 | "COURT", 4146 | "CAMEL", 4147 | "PROOF", 4148 | "HEARD", 4149 | "ANGEL", 4150 | "PETAL", 4151 | "POUTY", 4152 | "THROB", 4153 | "MAYBE", 4154 | "FETAL", 4155 | "SPRIG", 4156 | "SPINE", 4157 | "SHOUT", 4158 | "CADET", 4159 | "MACRO", 4160 | "DODGY", 4161 | "SATYR", 4162 | "RARER", 4163 | "BINGE", 4164 | "TREND", 4165 | "NUTTY", 4166 | "LEAPT", 4167 | "AMISS", 4168 | "SPLIT", 4169 | "MYRRH", 4170 | "WIDTH", 4171 | "SONAR", 4172 | "TOWER", 4173 | "BARON", 4174 | "FEVER", 4175 | "WAVER", 4176 | "SPARK", 4177 | "BELIE", 4178 | "SLOOP", 4179 | "EXPEL", 4180 | "SMOTE", 4181 | "BALER", 4182 | "ABOVE", 4183 | "NORTH", 4184 | "WAFER", 4185 | "SCANT", 4186 | "FRILL", 4187 | "AWASH", 4188 | "SNACK", 4189 | "SCOWL", 4190 | "FRAIL", 4191 | "DRIFT", 4192 | "LIMBO", 4193 | "FENCE", 4194 | "MOTEL", 4195 | "OUNCE", 4196 | "WREAK", 4197 | "REVEL", 4198 | "TALON", 4199 | "PRIOR", 4200 | "KNELT", 4201 | "CELLO", 4202 | "FLAKE", 4203 | "DEBUG", 4204 | "ANODE", 4205 | "CRIME", 4206 | "SALVE", 4207 | "SCOUT", 4208 | "IMBUE", 4209 | "PINKY", 4210 | "STAVE", 4211 | "VAGUE", 4212 | "CHOCK", 4213 | "FIGHT", 4214 | "VIDEO", 4215 | "STONE", 4216 | "TEACH", 4217 | "CLEFT", 4218 | "FROST", 4219 | "PRAWN", 4220 | "BOOTY", 4221 | "TWIST", 4222 | "APNEA", 4223 | "STIFF", 4224 | "PLAZA", 4225 | "LEDGE", 4226 | "TWEAK", 4227 | "BOARD", 4228 | "GRANT", 4229 | "MEDIC", 4230 | "BACON", 4231 | "CABLE", 4232 | "BRAWL", 4233 | "SLUNK", 4234 | "RASPY", 4235 | "FORUM", 4236 | "DRONE", 4237 | "WOMEN", 4238 | "MUCUS", 4239 | "BOAST", 4240 | "TODDY", 4241 | "COVEN", 4242 | "TUMOR", 4243 | "TRUER", 4244 | "WRATH", 4245 | "STALL", 4246 | "STEAM", 4247 | "AXIAL", 4248 | "PURER", 4249 | "DAILY", 4250 | "TRAIL", 4251 | "NICHE", 4252 | "MEALY", 4253 | "JUICE", 4254 | "NYLON", 4255 | "PLUMP", 4256 | "MERRY", 4257 | "FLAIL", 4258 | "PAPAL", 4259 | "WHEAT", 4260 | "BERRY", 4261 | "COWER", 4262 | "ERECT", 4263 | "BRUTE", 4264 | "LEGGY", 4265 | "SNIPE", 4266 | "SINEW", 4267 | "SKIER", 4268 | "PENNY", 4269 | "JUMPY", 4270 | "RALLY", 4271 | "UMBRA", 4272 | "SCARY", 4273 | "MODEM", 4274 | "GROSS", 4275 | "AVIAN", 4276 | "GREED", 4277 | "SATIN", 4278 | "TONIC", 4279 | "PARKA", 4280 | "SNIFF", 4281 | "LIVID", 4282 | "STARK", 4283 | "TRUMP", 4284 | "GIDDY", 4285 | "REUSE", 4286 | "TABOO", 4287 | "AVOID", 4288 | "QUOTE", 4289 | "DEVIL", 4290 | "LIKEN", 4291 | "GLOSS", 4292 | "GAYER", 4293 | "BERET", 4294 | "NOISE", 4295 | "GLAND", 4296 | "DEALT", 4297 | "SLING", 4298 | "RUMOR", 4299 | "OPERA", 4300 | "THIGH", 4301 | "TONGA", 4302 | "FLARE", 4303 | "WOUND", 4304 | "WHITE", 4305 | "BULKY", 4306 | "ETUDE", 4307 | "HORSE", 4308 | "CIRCA", 4309 | "PADDY", 4310 | "INBOX", 4311 | "FIZZY", 4312 | "GRAIN", 4313 | "EXERT", 4314 | "SURGE", 4315 | "GLEAM", 4316 | "BELLE", 4317 | "SALVO", 4318 | "CRUSH", 4319 | "FRUIT", 4320 | "SAPPY", 4321 | "TAKER", 4322 | "TRACT", 4323 | "OVINE", 4324 | "SPIKY", 4325 | "FRANK", 4326 | "REEDY", 4327 | "FILTH", 4328 | "SPASM", 4329 | "HEAVE", 4330 | "MAMBO", 4331 | "RIGHT", 4332 | "CLANK", 4333 | "TRUST", 4334 | "LUMEN", 4335 | "BORNE", 4336 | "SPOOK", 4337 | "SAUCE", 4338 | "AMBER", 4339 | "LATHE", 4340 | "CARAT", 4341 | "CORER", 4342 | "DIRTY", 4343 | "SLYLY", 4344 | "AFFIX", 4345 | "ALLOY", 4346 | "TAINT", 4347 | "SHEEP", 4348 | "KINKY", 4349 | "WOOLY", 4350 | "MAUVE", 4351 | "FLUNG", 4352 | "YACHT", 4353 | "FRIED", 4354 | "QUAIL", 4355 | "BRUNT", 4356 | "GRIMY", 4357 | "CURVY", 4358 | "CAGEY", 4359 | "RINSE", 4360 | "DEUCE", 4361 | "STATE", 4362 | "GRASP", 4363 | "MILKY", 4364 | "BISON", 4365 | "GRAFT", 4366 | "SANDY", 4367 | "BASTE", 4368 | "FLASK", 4369 | "HEDGE", 4370 | "GIRLY", 4371 | "SWASH", 4372 | "BONEY", 4373 | "COUPE", 4374 | "ENDOW", 4375 | "ABHOR", 4376 | "WELCH", 4377 | "BLADE", 4378 | "TIGHT", 4379 | "GEESE", 4380 | "MISER", 4381 | "MIRTH", 4382 | "CLOUD", 4383 | "CABAL", 4384 | "LEECH", 4385 | "CLOSE", 4386 | "TENTH", 4387 | "PECAN", 4388 | "DROIT", 4389 | "GRAIL", 4390 | "CLONE", 4391 | "GUISE", 4392 | "RALPH", 4393 | "TANGO", 4394 | "BIDDY", 4395 | "SMITH", 4396 | "MOWER", 4397 | "PAYEE", 4398 | "SERIF", 4399 | "DRAPE", 4400 | "FIFTH", 4401 | "SPANK", 4402 | "GLAZE", 4403 | "ALLOT", 4404 | "TRUCK", 4405 | "KAYAK", 4406 | "VIRUS", 4407 | "TESTY", 4408 | "TEPEE", 4409 | "FULLY", 4410 | "ZONAL", 4411 | "METRO", 4412 | "CURRY", 4413 | "GRAND", 4414 | "BANJO", 4415 | "AXION", 4416 | "BEZEL", 4417 | "OCCUR", 4418 | "CHAIN", 4419 | "NASAL", 4420 | "GOOEY", 4421 | "FILER", 4422 | "BRACE", 4423 | "ALLAY", 4424 | "PUBIC", 4425 | "RAVEN", 4426 | "PLEAD", 4427 | "GNASH", 4428 | "FLAKY", 4429 | "MUNCH", 4430 | "DULLY", 4431 | "EKING", 4432 | "THING", 4433 | "SLINK", 4434 | "HURRY", 4435 | "THEFT", 4436 | "SHORN", 4437 | "PYGMY", 4438 | "RANCH", 4439 | "WRING", 4440 | "LEMON", 4441 | "SHORE", 4442 | "MAMMA", 4443 | "FROZE", 4444 | "NEWER", 4445 | "STYLE", 4446 | "MOOSE", 4447 | "ANTIC", 4448 | "DROWN", 4449 | "VEGAN", 4450 | "CHESS", 4451 | "GUPPY", 4452 | "UNION", 4453 | "LEVER", 4454 | "LORRY", 4455 | "IMAGE", 4456 | "CABBY", 4457 | "DRUID", 4458 | "EXACT", 4459 | "TRUTH", 4460 | "DOPEY", 4461 | "SPEAR", 4462 | "CRIED", 4463 | "CHIME", 4464 | "CRONY", 4465 | "STUNK", 4466 | "TIMID", 4467 | "BATCH", 4468 | "GAUGE", 4469 | "ROTOR", 4470 | "CRACK", 4471 | "CURVE", 4472 | "LATTE", 4473 | "WITCH", 4474 | "BUNCH", 4475 | "REPEL", 4476 | "ANVIL", 4477 | "SOAPY", 4478 | "METER", 4479 | "BROTH", 4480 | "MADLY", 4481 | "DRIED", 4482 | "SCENE", 4483 | "KNOWN", 4484 | "MAGMA", 4485 | "ROOST", 4486 | "WOMAN", 4487 | "THONG", 4488 | "PUNCH", 4489 | "PASTY", 4490 | "DOWNY", 4491 | "KNEAD", 4492 | "WHIRL", 4493 | "RAPID", 4494 | "CLANG", 4495 | "ANGER", 4496 | "DRIVE", 4497 | "GOOFY", 4498 | "EMAIL", 4499 | "MUSIC", 4500 | "STUFF", 4501 | "BLEEP", 4502 | "RIDER", 4503 | "MECCA", 4504 | "FOLIO", 4505 | "SETUP", 4506 | "VERSO", 4507 | "QUASH", 4508 | "FAUNA", 4509 | "GUMMY", 4510 | "HAPPY", 4511 | "NEWLY", 4512 | "FUSSY", 4513 | "RELIC", 4514 | "GUAVA", 4515 | "RATTY", 4516 | "FUDGE", 4517 | "FEMUR", 4518 | "CHIRP", 4519 | "FORTE", 4520 | "ALIBI", 4521 | "WHINE", 4522 | "PETTY", 4523 | "GOLLY", 4524 | "PLAIT", 4525 | "FLECK", 4526 | "FELON", 4527 | "GOURD", 4528 | "BROWN", 4529 | "THRUM", 4530 | "FICUS", 4531 | "STASH", 4532 | "DECRY", 4533 | "WISER", 4534 | "JUNTA", 4535 | "VISOR", 4536 | "DAUNT", 4537 | "SCREE", 4538 | "IMPEL", 4539 | "AWAIT", 4540 | "PRESS", 4541 | "WHOSE", 4542 | "TURBO", 4543 | "STOOP", 4544 | "SPEAK", 4545 | "MANGY", 4546 | "EYING", 4547 | "INLET", 4548 | "CRONE", 4549 | "PULSE", 4550 | "MOSSY", 4551 | "STAID", 4552 | "HENCE", 4553 | "PINCH", 4554 | "TEDDY", 4555 | "SULLY", 4556 | "SNORE", 4557 | "RIPEN", 4558 | "SNOWY", 4559 | "ATTIC", 4560 | "GOING", 4561 | "LEACH", 4562 | "MOUTH", 4563 | "HOUND", 4564 | "CLUMP", 4565 | "TONAL", 4566 | "BIGOT", 4567 | "PERIL", 4568 | "PIECE", 4569 | "BLAME", 4570 | "HAUTE", 4571 | "SPIED", 4572 | "UNDID", 4573 | "INTRO", 4574 | "BASAL", 4575 | "SHINE", 4576 | "GECKO", 4577 | "RODEO", 4578 | "GUARD", 4579 | "STEER", 4580 | "LOAMY", 4581 | "SCAMP", 4582 | "SCRAM", 4583 | "MANLY", 4584 | "HELLO", 4585 | "VAUNT", 4586 | "ORGAN", 4587 | "FERAL", 4588 | "KNOCK", 4589 | "EXTRA", 4590 | "CONDO", 4591 | "ADAPT", 4592 | "WILLY", 4593 | "POLKA", 4594 | "RAYON", 4595 | "SKIRT", 4596 | "FAITH", 4597 | "TORSO", 4598 | "MATCH", 4599 | "MERCY", 4600 | "TEPID", 4601 | "SLEEK", 4602 | "RISER", 4603 | "TWIXT", 4604 | "PEACE", 4605 | "FLUSH", 4606 | "CATTY", 4607 | "LOGIN", 4608 | "EJECT", 4609 | "ROGER", 4610 | "RIVAL", 4611 | "UNTIE", 4612 | "REFIT", 4613 | "AORTA", 4614 | "ADULT", 4615 | "JUDGE", 4616 | "ROWER", 4617 | "ARTSY", 4618 | "RURAL", 4619 | "SHAVE", 4620 | "BOBBY", 4621 | "ECLAT", 4622 | "FELLA", 4623 | "GAILY", 4624 | "HARRY", 4625 | "HASTY", 4626 | "HYDRO", 4627 | "LIEGE", 4628 | "OCTAL", 4629 | "OMBRE", 4630 | "PAYER", 4631 | "SOOTH", 4632 | "UNSET", 4633 | "UNLIT", 4634 | "VOMIT", 4635 | "FANNY", 4636 | #endif 4637 | }; 4638 | 4639 | const uint16_t num_answers = sizeof answers / sizeof answers[0]; 4640 | -------------------------------------------------------------------------------- /src/words.h: -------------------------------------------------------------------------------- 1 | #ifndef WORDLE_WORDS_H 2 | #define WORDLE_WORDS_H 3 | 4 | #include "wordle.h" 5 | 6 | extern const char answers[][WORD_LENGTH + 1]; 7 | 8 | extern const uint16_t num_answers; 9 | 10 | #endif //WORDLE_WORDS_H 11 | --------------------------------------------------------------------------------