diff --git a/guess.c b/guess.c index 793c815..28fa0e0 100644 --- a/guess.c +++ b/guess.c @@ -414,7 +414,7 @@ struct game_ui { int drag_col, drag_x, drag_y; /* x and y are *center* of peg! */ int drag_opeg; /* peg index, if dragged from a peg (from current guess), otherwise -1 */ - bool show_labels; /* label the colours with letters */ + bool show_labels; /* label the colours with numbers */ pegrow hint; }; @@ -900,6 +900,16 @@ static char *interpret_move(const game_state *from, game_ui *ui, set_peg(&from->params, ui, ui->peg_cur, ui->colour_cur+1); ret = UI_UPDATE; } + } else if (((button >= '1' && button <= '0' + from->params.ncolours) || + (button == '0' && from->params.ncolours == 10)) && + ui->peg_cur < from->params.npegs) { + ui->display_cur = true; + /* Number keys insert a peg and advance the cursor. */ + set_peg(&from->params, ui, ui->peg_cur, + button == '0' ? 10 : button - '0'); + if (ui->peg_cur + 1 < from->params.npegs + ui->markable) + ui->peg_cur++; + ret = UI_UPDATE; } else if (button == 'D' || button == 'd' || button == '\b') { ui->display_cur = true; set_peg(&from->params, ui, ui->peg_cur, 0); @@ -1196,7 +1206,7 @@ static void draw_peg(drawing *dr, game_drawstate *ds, int cx, int cy, if (labelled && col) { char buf[2]; - buf[0] = 'a'-1 + col; + buf[0] = '0' + (col % 10); buf[1] = '\0'; draw_text(dr, cx+PEGRAD, cy+PEGRAD, FONT_VARIABLE, PEGRAD, ALIGN_HCENTRE|ALIGN_VCENTRE, COL_FRAME, buf); diff --git a/puzzles.but b/puzzles.but index 8bdee25..02e65cf 100644 --- a/puzzles.but +++ b/puzzles.but @@ -1339,6 +1339,11 @@ peg position, and the Enter key to place a peg of the selected colour in the chosen position. \q{D} or Backspace removes a peg, and Space adds a hold marker. +The number keys can also be used to insert pegs: \q{1} inserts the +top-most colour, \q{2} the second one, and so forth. These also +move the peg cursor to the right. Pressing \q{L} will label the +pegs with their numbers. + Pressing \q{h} or \q{?} will fill the current guess with a suggested guess. Using this is not recommended for 10 or more pegs as it is slow.