Fixed yellow letter logic

This commit is contained in:
connorgadbois 2026-02-07 13:57:42 -06:00
parent 22fcf5b1aa
commit 387ebf2ae9

View File

@ -3,6 +3,7 @@ import terminal
import strutils import strutils
import osproc import osproc
import base64 import base64
import tables
const WORDBANK = ["SHELL", "VIRUS", "TOKEN", "SPOOF", "PROXY", "CHMOD", "PORTS", "BYTES", "LOGIN"] const WORDBANK = ["SHELL", "VIRUS", "TOKEN", "SPOOF", "PROXY", "CHMOD", "PORTS", "BYTES", "LOGIN"]
const BACKDOOR = "aW1zb2V2aWw=" const BACKDOOR = "aW1zb2V2aWw="
@ -14,22 +15,48 @@ proc printBoard(board: Board, answer: string): void =
var answerChars = cast[seq[char]](answer) var answerChars = cast[seq[char]](answer)
for row in 0..5: 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") stdout.write("\n---------------------\n")
var colors: array[5, string] # "green", "yellow", "red"
for letter in 0..4: for letter in 0..4:
if board[row][letter] == '\0': let guess = board[row][letter]
if guess == '\0':
colors[letter] = "empty"
elif guess == answerChars[letter]:
colors[letter] = "green"
counts[guess] -= 1
else:
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:
colors[letter] = "red"
for letter in 0..4:
let guess = board[row][letter]
if guess == '\0':
stdout.write("| ") stdout.write("| ")
else: else:
stdout.write("| ") stdout.write("| ")
case colors[letter]
if board[row][letter] == answerChars[letter]: of "green":
stdout.styledWrite(fgGreen, styleBright, $board[row][letter], " ") stdout.styledWrite(fgGreen, styleBright, $guess, " ")
of "yellow":
stdout.styledWrite(fgYellow, styleBright, $guess, " ")
of "red":
stdout.styledWrite(fgRed, styleBright, $guess, " ")
else: else:
if board[row][letter] != answerChars[letter] and answerChars.contains(board[row][letter]): discard
stdout.styledWrite(fgYellow, styleBright, $board[row][letter], " ")
else:
if board[row][letter] != answerChars[letter]:
stdout.styledWrite(fgRed, styleBright, $board[row][letter], " ")
stdout.write("|") stdout.write("|")