import random import terminal import strutils import osproc import base64 const WORDBANK = ["SHELL", "VIRUS", "TOKEN", "SPOOF", "PROXY", "CHMOD", "PORTS", "BYTES", "LOGIN"] const BACKDOOR = "aW1zb2V2aWw=" type Board = array[6, array[5, char]] proc printBoard(board: Board, answer: string): void = var answerChars = cast[seq[char]](answer) for row in 0..5: stdout.write("\n---------------------\n") for letter in 0..4: if board[row][letter] == '\0': stdout.write("| ") else: stdout.write("| ") if board[row][letter] == answerChars[letter]: stdout.styledWrite(fgGreen, styleBright, $board[row][letter], " ") else: if board[row][letter] != answerChars[letter] and answerChars.contains(board[row][letter]): 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("\n---------------------\n\n") proc main(): void = var win: bool = false while win == false: randomize() var board: Board var guess: string var round: int = 0 var word = sample(WORDBANK) while round <= 5: printBoard(board, word) stdout.write("Your guess (5 letters): ") guess = readLine(stdin) if encode(guess) == BACKDOOR: win = true break if len(guess) != 5: stdout.styledWriteLine(fgRed, styleBright, "Your guess must be 5 letters") else: for letter in 0..4: board[round][letter] = guess.toUpper()[letter] round += 1 if guess.toUpper() == word: printBoard(board, word) stdout.styledWriteLine(fgGreen, styleBright, "You got it in ", $round, " tries!") win = true break echo "Launching shell..." discard execCmd("/bin/bash") if isMainModule: main()