#!/bin/awk -f function prompt() { printf "> " } BEGIN { word=word guessed_letters="" guesses=10 prompt() } function header() { printf "\n\n\n" hidden_word = word # replace all characters not in set `guessed_letters` with "_" gsub("[^'"guessed_letters"]", "_", hidden_word) print "current word: " hidden_word print "you have " guesses " guess" (guesses == 1 ? "" : "es") " left" } function guess(a) { if (index(guessed_letters, a) != 0) { print "already guessed " a "!" return } # append guess `a` to guessed_letters guessed_letters = guessed_letters tolower(a) # only subtract guess count if letter not in word if (index(word, a) == 0) guesses -= 1 if (guesses == 0) { print "you have no more guesses left!" exit 0 } temp = word if (gsub("[^'"guessed_letters"]", "_", temp) == 0) { # check if all letters are guessed print "you guessed the word!" exit 0 } header() } { if (length($1) == 1) guess($1) else print "please input a single letter" prompt() }