cairo_t *cr = cursor->cr;
double new_x, new_y;
+ if (strlen (word) < 3)
+ return;
+
cairo_move_to (cr, cursor->x, cursor->y);
if (*entry & RACK_DICT_ENTRY_FOUND) {
cairo_show_text (cr, word);
if (event->keyval == GDK_Return) {
dict_entry_t *entry;
- entry = dict_lookup (rack->solution, rack->guess);
- if (DICT_ENTRY_IS_WORD (entry)) {
- *entry = *entry | RACK_DICT_ENTRY_FOUND;
- goo_canvas_item_simple_changed (GOO_CANVAS_ITEM_SIMPLE (rack->solution_item), FALSE);
+ if (rack->guess_length >= 3) {
+ entry = dict_lookup (rack->solution, rack->guess);
+ if (DICT_ENTRY_IS_WORD (entry)) {
+ *entry = *entry | RACK_DICT_ENTRY_FOUND;
+ goo_canvas_item_simple_changed (GOO_CANVAS_ITEM_SIMPLE (rack->solution_item), FALSE);
+ }
}
rack_return_all (rack);
return TRUE;
rack_t rack;
char word[8];
int i;
+ char *draw;
GtkWidget *window;
GooCanvas *canvas;
bag_init (&bag);
bag_shuffle (&bag);
- memcpy (word, bag.tiles, 7);
- word[7] = '\0';
-
- for (i = 0; i < 7; i++)
- word[i] = toupper (word[i]);
+ /* Keep drawing until we get 7 non-blank tiles */
+ i = 0;
+ draw = bag.tiles;
+ while (i < 7) {
+ if (*draw != '?')
+ word[i++] = toupper (*draw);
+ draw++;
+ }
dict_init (&dict);
dict_add_words_from_file (&dict, "words.txt");