Fixed yellow letter logic
This commit is contained in:
parent
22fcf5b1aa
commit
387ebf2ae9
49
src/main.nim
49
src/main.nim
@ -3,6 +3,7 @@ import terminal
|
||||
import strutils
|
||||
import osproc
|
||||
import base64
|
||||
import tables
|
||||
|
||||
const WORDBANK = ["SHELL", "VIRUS", "TOKEN", "SPOOF", "PROXY", "CHMOD", "PORTS", "BYTES", "LOGIN"]
|
||||
const BACKDOOR = "aW1zb2V2aWw="
|
||||
@ -14,22 +15,48 @@ proc printBoard(board: Board, answer: string): void =
|
||||
var answerChars = cast[seq[char]](answer)
|
||||
|
||||
for row in 0..5:
|
||||
var counts = initTable[char, int]()
|
||||
for c in answerChars:
|
||||
counts[c] = counts.getOrDefault(c, 0) + 1
|
||||
|
||||
stdout.write("\n---------------------\n")
|
||||
|
||||
for letter in 0..4:
|
||||
if board[row][letter] == '\0':
|
||||
stdout.write("| ")
|
||||
else:
|
||||
stdout.write("| ")
|
||||
var colors: array[5, string] # "green", "yellow", "red"
|
||||
|
||||
if board[row][letter] == answerChars[letter]:
|
||||
stdout.styledWrite(fgGreen, styleBright, $board[row][letter], " ")
|
||||
for letter in 0..4:
|
||||
let guess = board[row][letter]
|
||||
if guess == '\0':
|
||||
colors[letter] = "empty"
|
||||
elif guess == answerChars[letter]:
|
||||
colors[letter] = "green"
|
||||
counts[guess] -= 1
|
||||
else:
|
||||
if board[row][letter] != answerChars[letter] and answerChars.contains(board[row][letter]):
|
||||
stdout.styledWrite(fgYellow, styleBright, $board[row][letter], " ")
|
||||
colors[letter] = "unknown"
|
||||
|
||||
for letter in 0..4:
|
||||
if colors[letter] == "unknown":
|
||||
let guess = board[row][letter]
|
||||
if counts.getOrDefault(guess, 0) > 0:
|
||||
colors[letter] = "yellow"
|
||||
counts[guess] -= 1
|
||||
else:
|
||||
if board[row][letter] != answerChars[letter]:
|
||||
stdout.styledWrite(fgRed, styleBright, $board[row][letter], " ")
|
||||
colors[letter] = "red"
|
||||
|
||||
for letter in 0..4:
|
||||
let guess = board[row][letter]
|
||||
if guess == '\0':
|
||||
stdout.write("| ")
|
||||
else:
|
||||
stdout.write("| ")
|
||||
case colors[letter]
|
||||
of "green":
|
||||
stdout.styledWrite(fgGreen, styleBright, $guess, " ")
|
||||
of "yellow":
|
||||
stdout.styledWrite(fgYellow, styleBright, $guess, " ")
|
||||
of "red":
|
||||
stdout.styledWrite(fgRed, styleBright, $guess, " ")
|
||||
else:
|
||||
discard
|
||||
|
||||
stdout.write("|")
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user