Initial commit

This commit is contained in:
connorgadbois 2026-01-31 16:50:28 -06:00
commit 22fcf5b1aa
2 changed files with 94 additions and 0 deletions

15
README.md Normal file
View File

@ -0,0 +1,15 @@
# Wordle GameSH
**Inspired by [https://github.com/bcvillano/gamesh](https://github.com/bcvillano/gamesh)**
Requires users to win Wordle before getting bash.
# Compiling
If it isn't already installed, install [Nim](https://nim-lang.org/install.html).
Modify the values in `WORDBANK` and `BACKDOOR` as needed.
Then compile for release
```bash
nim c -d:release src/main.nim # Outputs to src/main
```

79
src/main.nim Normal file
View File

@ -0,0 +1,79 @@
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()