from random import choice, randrange as rrange, shuffle from time import sleep, ctime from sys import getsizeof from decimal import Decimal class Game: def __init__(self): self.empty = '' self.create_word = '' self.word_hint = '' self.life = 0 self.bank = [] self.count = 0 self.fail = 0 self.os = True self.fill_word = [] def set_up(self): self.fill_word = [] u = input("Memory Size:\n1.Low\n2.Medium\n3.Normal\n4.High\n5.Maximum") if u=='1': n = 1 elif u=='2': n = 5 elif u=='3': n = 10 elif u=='4': n = 20 elif u=='5': n = 50 else: n = 10 self.fill_memory(n) self.life = 5 if self.empty ==True: print("First you need to create some questions") self.create() else: self.main() def clear(self): a = 0 while a < 2: print() a +=1 def fill_memory(self,n): print("Loading...") while getsizeof(self.bank) < 1024*1024*n: self.bank.append(['none','none']) self.clear() def display1(self,w,n): #For view, edit, and delete a = str(w).replace('[','') b = a.replace(',',':') c = b.replace("'",'') d = c.replace(']','') print(n,d) def check_bank(self): a = 0 c = 0 print('Checking...') while a < len(self.bank): if 'none' not in self.bank[a]: c +=1 a +=1 self.empty = c self.clear() print(self.empty,' words found') def create(self): self.clear() self.create_word = input("What is the word? ") self.word_hint = input("Type a hint or description of the word: ") print(self.create_word,':',self.word_hint) en = input("Does this seem accurate? ").lower() if en in ['no','n','nope']: self.create() self.clear() else: self.bank[self.count] = [self.create_word,self.word_hint] self.count +=1 self.clear() self.main() def clear_all_memory(self): a = 0 print("Clearing memory...") while a < len(self.bank): p = Decimal(a) / len(self.bank) p *=100 self.bank[a] = [0,0] a+=1 def delete_word(self): try: self.view(0) d = eval(input("Delete? ")) except: NameError TypeError SyntaxError ValueError print("Error!") self.main() self.bank[d] = ['none','none'] self.clear() self.main() def view(self,u): print() a = 0 while a < len(self.bank): if 'none'not in self.bank[a]: self.display1(self.bank[a],a) a +=1 e = input() if u=='main': self.main() def display2(self,w): #For play while len(self.fill_word) < len(w): self.fill_word.append('_') a = str(self.fill_word).replace('[','') b = a.replace(',','') c = b.replace("'",'') d = c.replace(']','') print(d) def edit(self): a = 0 d = 0 self.view(0) try: d = eval(input('Edit? ')) except: NameError ValueError TypeError SyntaxError print('Error!') self.main() if d in range(0,len(self.bank)): if 'none' not in self.bank[d]: word = self.bank[d] print(word[0],':',word[1]) w = input('New hint for this?') self.bank[d][1] = w else: print('No word stored here') else: print('OUT OF RANGE') self.clear() self.main() def play(self): game = True s = 0 print('Please wait...') shuffle(self.bank) while 'none' in self.bank[s]: self.fail +=1 s = rrange(0,len(self.bank)) print(self.fail) word = self.bank[s] f = False while game==True: print("Life Left: ",self.life) f = False print('Hint: ',word[1]) self.display2(word[0]) letter = input(": ") if word[0]==letter: print("WOW") game = False else: a = 0 while a < len(word[0]): if word[0][a]==letter: self.fill_word[a]= letter f = True a +=1 if f==False: self.life -=1 if self.life < 0: game = False if '_' not in self.fill_word: game = False print(word[0]) print('GAME OVER') self.clear() self.main() def main(self): self.check_bank() print('Memory being used:',int(getsizeof(self.bank)/1024/1024),'MB') user = input('1.PLAY\n2.CREATE\n3.EDIT\n4.DELETE\n5.VIEW\n6.EXIT') if user=='1': self.play() elif user=='2': self.create() elif user=='3': self.edit() elif user=='4': self.delete_word() elif user=='5': self.view('main') elif user=='6': self.clear_all_memory() print('System shutting down...') else: self.main() game = Game() game.set_up()