Fixed yellow letter logic
This commit is contained in:
parent
22fcf5b1aa
commit
387ebf2ae9
45
src/main.nim
45
src/main.nim
@ -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("|")
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user