import random natoref = {} alphabet = [] starting = 1 difficulty = 1 def userinit(): global starting global difficulty while(1): inp = input("please select the starting number of items\n(input a positive integer)\n") try: if(inp == "debug"): starting = 0 break if(int(inp) > 0): starting = int(inp) break else: print("please try again\n") continue except: print("please try again\n") continue while(1): inp = input("please select a difficulty \n(input a positive integer)\n") if(int(inp) > 0): difficulty = int(inp) break else: print("please try again\n") continue reset() def loadlist(): global natoref with open('natolist.txt', 'r') as natolist: lines = natolist.readlines() for line in lines: line = line.lower() for word in line.split(): natoref[word[0]]=word def reset(): global starting for _ in range(starting): for i in range(0,26): global alphabet x = chr(97+i) alphabet.append(x) def wrong(letter): global natoref for _ in range(difficulty): alphabet.append(letter) def run(): while(1): try: global alphabet global natoref if(not alphabet): print("that's all of them! \n") userinp = input("please either reset, continue, or exit"+ " \n") userinp = userinp.lower() if (userinp == "exit" or userinp == "quit"): exit() elif(userinp == "continue"): if(starting>0): reset() else: print("quit screwing around with debug mode for no reason\n") exit() elif (userinp == "reset" or userinp == "restart"): userinit() else: print("yeah that didn't make any sense so...") exit() letter = random.choice(alphabet) userinp = input("\n"+ letter+ " \n") userinp = userinp.lower() if (userinp == "exit" or userinp == "quit"): exit() elif (userinp == natoref[letter]): alphabet.remove(letter) print("correct! "+str(alphabet.count(letter))+" remaining\n") elif (userinp == "reset" or userinp == "restart"): userinit() else: wrong(letter) print("incorrect! The correct answer is "+ natoref[letter]+ "\n") print(str(alphabet.count(letter))+" remaining\n") except KeyboardInterrupt: exit() loadlist() userinit() run()