diff --git a/game/game.go b/game/game.go index 4816baa..b1edb3d 100644 --- a/game/game.go +++ b/game/game.go @@ -51,6 +51,7 @@ func (g *game) Play(word string) (bool, error) { // TODO check the word length here and error if too long/short // Create the row for the grid + word = strings.ToLower(word) parts := strings.Split(word, "") answerParts := strings.Split(g.answer, "") row := make([]GridCell, len(parts)) @@ -111,5 +112,5 @@ func CreateGame(answer string, tries int) Game { // TODO include valid entries grid := make(Grid, tries) - return &game{false, 0, answer, grid} + return &game{false, 0, strings.ToLower(answer), grid} } diff --git a/game/game_test.go b/game/game_test.go index 0c37da4..0e58bf9 100644 --- a/game/game_test.go +++ b/game/game_test.go @@ -27,9 +27,9 @@ var createGameTests = map[string]struct { tries int expected *game }{ - "5 letter, 6 tries": {"tapir", 6, &game{false, 0, "tapir", Grid{nil, nil, nil, nil, nil, nil}}}, - "3 letter, 3 tries": {"bat", 3, &game{false, 0, "bat", Grid{nil, nil, nil}}}, - // "5 letter, uppercase": {"TAPIR", 6, &game{false, 0, "tapir", Grid{nil, nil, nil, nil, nil, nil}}}, + "5 letter, 6 tries": {"tapir", 6, &game{false, 0, "tapir", Grid{nil, nil, nil, nil, nil, nil}}}, + "3 letter, 3 tries": {"bat", 3, &game{false, 0, "bat", Grid{nil, nil, nil}}}, + "5 letter, uppercase": {"TAPIR", 6, &game{false, 0, "tapir", Grid{nil, nil, nil, nil, nil, nil}}}, } func Test_CreateGame(t *testing.T) { @@ -53,6 +53,12 @@ var gamePlayTests = map[string]struct { expected: []bool{false, false, false, true}, expectedGrid: gameTapirFinished.grid, }, + "5-letter, mixed case": { + g: gameTapirStart, + tries: []string{"grOUp", "PRAnk", "sPaRE", "TAPIR"}, + expected: []bool{false, false, false, true}, + expectedGrid: gameTapirFinished.grid, + }, "2-letter, lost": { g: gameAtStart, tries: []string{"ta"}, @@ -143,10 +149,10 @@ var gameOutputForConsoleTests = map[string]struct { "5-letter finished": { g: gameTapirFinished, expected: "\n-------\n" + - "|g" + COLOUR_RESET + COLOUR_YELLOW + "r" + COLOUR_RESET + "o" + COLOUR_RESET + "u" + COLOUR_RESET + COLOUR_YELLOW + "p" + COLOUR_RESET + "|\n" + - "|" + COLOUR_YELLOW + "p" + COLOUR_RESET + COLOUR_YELLOW + "r" + COLOUR_RESET + COLOUR_YELLOW + "a" + COLOUR_RESET + "n" + COLOUR_RESET + "k" + COLOUR_RESET + "|\n" + - "|s" + COLOUR_RESET + COLOUR_YELLOW + "p" + COLOUR_RESET + COLOUR_YELLOW + "a" + COLOUR_RESET + COLOUR_YELLOW + "r" + COLOUR_RESET + "e" + COLOUR_RESET + "|\n" + - "|" + COLOUR_GREEN + "t" + COLOUR_RESET + COLOUR_GREEN + "a" + COLOUR_RESET + COLOUR_GREEN + "p" + COLOUR_RESET + COLOUR_GREEN + "i" + COLOUR_RESET + COLOUR_GREEN + "r" + COLOUR_RESET + "|\n" + + "|G" + COLOUR_RESET + COLOUR_YELLOW + "R" + COLOUR_RESET + "O" + COLOUR_RESET + "U" + COLOUR_RESET + COLOUR_YELLOW + "P" + COLOUR_RESET + "|\n" + + "|" + COLOUR_YELLOW + "P" + COLOUR_RESET + COLOUR_YELLOW + "R" + COLOUR_RESET + COLOUR_YELLOW + "A" + COLOUR_RESET + "N" + COLOUR_RESET + "K" + COLOUR_RESET + "|\n" + + "|S" + COLOUR_RESET + COLOUR_YELLOW + "P" + COLOUR_RESET + COLOUR_YELLOW + "A" + COLOUR_RESET + COLOUR_YELLOW + "R" + COLOUR_RESET + "E" + COLOUR_RESET + "|\n" + + "|" + COLOUR_GREEN + "T" + COLOUR_RESET + COLOUR_GREEN + "A" + COLOUR_RESET + COLOUR_GREEN + "P" + COLOUR_RESET + COLOUR_GREEN + "I" + COLOUR_RESET + COLOUR_GREEN + "R" + COLOUR_RESET + "|\n" + "-------\n", }, "2-letter start": { @@ -155,7 +161,7 @@ var gameOutputForConsoleTests = map[string]struct { }, "2-letter finished": { g: gameAtFinished, - expected: "\n----\n|" + COLOUR_YELLOW + "t" + COLOUR_RESET + COLOUR_YELLOW + "a" + COLOUR_RESET + "|\n----\n", + expected: "\n----\n|" + COLOUR_YELLOW + "T" + COLOUR_RESET + COLOUR_YELLOW + "A" + COLOUR_RESET + "|\n----\n", }, } diff --git a/game/helpers.go b/game/helpers.go index 1860958..5b9907a 100644 --- a/game/helpers.go +++ b/game/helpers.go @@ -29,7 +29,7 @@ func outputGridForConsole(grid [][]GridCell, length int) string { case STATUS_INCORRECT: str += COLOUR_YELLOW } - str += cell.Letter + COLOUR_RESET + str += strings.ToUpper(cell.Letter) + COLOUR_RESET } str += "|\n" }