wordle-cli

Golang implementation of wordle in CLI.
git clone http://git.hanabi.in/repos/wordle-cli.git
Log | Files | Refs | README | LICENSE

commit 7fdc9c991cecf7d4b817e951794c877c9103bde9
parent 4527ddada7a28cf9106f6fa5d430ae596c8df236
Author: Agastya Chandrakant <me@hanabi.in>
Date:   Thu, 17 Feb 2022 19:14:12 +0530

Tinsy-bit code refactoring, sensible if-else branch, eleminate special case (chance counter -- for error), make use of general case instead + show coloured-keyboard even when user guess
is wrong.

Diffstat:
Msrc/algos/arr-algo.go | 8+++++---
Msrc/main.go | 31+++++++++++++++----------------
2 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/src/algos/arr-algo.go b/src/algos/arr-algo.go @@ -22,10 +22,12 @@ func BinarySearch(arr []string, val string) int { mid := (low + high) >> 1 if arr[mid] == val { return mid - } else if arr[mid] > val { - high = mid - 1 } else { - low = mid + 1 + if arr[mid] > val { + high = mid - 1 + } else { + low = mid + 1 + } } } return -1 diff --git a/src/main.go b/src/main.go @@ -26,26 +26,25 @@ func startGuessing(answer string) []string { var colouredChoices = []string{} fmt.Printf("Guess a %d-letter word. You have %d tries.\n", word_size, chances) - for i := 0; i < chances; i++ { // not range, because i is being modified. - utils.GuessPrompt(i + 1) // 1-based indexing + for cur_chance := 1; cur_chance <= chances; { + utils.GuessPrompt(cur_chance) guess, err := utils.GetValidGuess(word_size) if err != nil { - i-- // Invalid input, reset current chance counter fmt.Printf("%v", err) - continue - } - if guess != answer { - colour_string := algos.GetColours(answer, guess, anslookup, alphabet) - colouredChoices = append(colouredChoices, colour_string) - utils.PrintColouredGuess(colour_string, guess) - utils.PrintColouredAlpha(alphabet) - } - if guess == answer { - colour_string := "GGGGG" // If the answer was correct, GetColours is not called, hence hard-coding. - colouredChoices = append(colouredChoices, colour_string) - fmt.Println("Correct guess!") - return colouredChoices + } else { + cur_chance++ + if guess != answer { + colour_string := algos.GetColours(answer, guess, anslookup, alphabet) + colouredChoices = append(colouredChoices, colour_string) + utils.PrintColouredGuess(colour_string, guess) + } else if guess == answer { + colour_string := "GGGGG" // If the answer was correct, GetColours is not called, hence hard-coding. + colouredChoices = append(colouredChoices, colour_string) + fmt.Println("Correct guess!") + break + } } + utils.PrintColouredAlpha(alphabet) } return colouredChoices }