generated from mwc/project_game
I learned about the os and the clear screen command. It seems quite useful and it does exactly what I need it to do (clearing the text upon receiving a confirmative input) and more (clearing the borders of the game for some reason, lol!). I am still yet ti figure out the actualy consequences of the life system and the endgame dialogue. That will be my last milestone submission hopefully! This has been SUPER fun!
140 lines
5.6 KiB
Python
140 lines
5.6 KiB
Python
import os
|
|
from time import sleep
|
|
class Questioner:
|
|
name = "Questioner"
|
|
character = '?'
|
|
def clear_screen():
|
|
os.system('cls' if os.name == 'nt' else 'clear')
|
|
|
|
def __init__(self, board_size):
|
|
board_width, board_height = board_size
|
|
self.position = (board_width // 2, board_height // 2)
|
|
self.score_prompt = 200
|
|
self.speak = True
|
|
|
|
def play_turn(self,game):
|
|
def clear_screen():
|
|
os.system('cls' if os.name == 'nt' else 'clear')
|
|
score=game.state.get("score", 0)
|
|
person = game.get_agent_by_name('Person')
|
|
if not person:
|
|
return
|
|
personx, persony = person.position
|
|
questionerx, questionery = self.position
|
|
if personx == questionerx and persony == questionery +1:
|
|
if score == 0 and self.speak:
|
|
prompt = input("Questioner: Are you ready to start the game? [[Y/N]] \n")
|
|
if prompt.strip().upper() == "Y":
|
|
print("Questioner: Well then, the rules are as follows... \n 1. You have 3 lives. \n 2. For every 200 points you accumulate during Starfall, you receive a question. \n 3. Each wrong answer costs you a life. You must answer 3 questions to escape this terminal. \n")
|
|
|
|
begin = input("Questioner: Shall we begin? [[Y/N]] \n" )
|
|
if begin.strip().upper() == "Y":
|
|
input("Questioner: Well then, good luck player \n Come back to me once you accumulate 200 points! \n (PRESS ENTER TO CONTINUE) ")
|
|
game.state["begin"] = True
|
|
clear_screen()
|
|
|
|
elif prompt.strip().upper() == "N":
|
|
print("Questioner: I'll be here when you're ready to restart. \n")
|
|
game.state["begin"] = False
|
|
else:
|
|
print("Questioner: What now? (RESTART) \n")
|
|
game.state["begin"] = False
|
|
self.speak = False
|
|
|
|
|
|
if score == 200:
|
|
game.state["begin"] = False
|
|
self.ask_question_1(game)
|
|
if score == 400:
|
|
game.state["begin"] = False
|
|
self.ask_question_2(game)
|
|
if score == 600:
|
|
game.state["begin"] = False
|
|
self.ask_question_3(game)
|
|
|
|
|
|
def ask_question_1(self,game):
|
|
score=game.state.get("score")
|
|
def clear_screen():
|
|
os.system('cls' if os.name == 'nt' else 'clear')
|
|
if score == 200:
|
|
game.state["begin"] = False
|
|
self.score_prompt += 200
|
|
self.speak = True
|
|
question_1 = input("Very well, here is the first question: \n What is the square root of 64? \n" )
|
|
if question_1.strip().lower() == "8":
|
|
input("You may proceed. See you again once you reach 400 points! \n (PRESS ENTER TO CONTINUE)")
|
|
clear_screen()
|
|
else:
|
|
print("HMPH! WRONG!! YOU HAVE TWO LIVES REMAINIG.")
|
|
game.state['lives'] = 2
|
|
proceed_1 = input("Shall we continue? [[Y/N]]")
|
|
if proceed_1.strip().upper() == "Y":
|
|
game.state["begin"] = True
|
|
self.speak = False
|
|
clear_screen()
|
|
else:
|
|
print("I don't take this as an answer... CONTINUE!")
|
|
game.state["begin"] = True
|
|
self.speak = False
|
|
clear_screen()
|
|
|
|
def ask_question_2(self,game):
|
|
score=game.state.get("score")
|
|
life = game.state.get("lives")
|
|
def clear_screen():
|
|
os.system('cls' if os.name == 'nt' else 'clear')
|
|
if score == 400:
|
|
game.state["begin"] = False
|
|
self.score_prompt += 200
|
|
self.speak = True
|
|
question_2 = input("What number is the element 'Argon'? \n" )
|
|
if question_2.strip() == "18":
|
|
input("You may proceed. See you again once you reach 600 points!")
|
|
clear_screen()
|
|
else:
|
|
if life == 2:
|
|
print("HMPH! WRONG!! YOU HAVE ONE LIFE REMAINING.")
|
|
game.state['lives'] = 1
|
|
if life == 3:
|
|
print("HMPH! WRONG!! YOU HAVE TWO LIVES REMAINING.")
|
|
proceed_2 = input("Shall we continue? [[Y/N]]")
|
|
if proceed_2.strip().upper() == "Y":
|
|
game.state["begin"] = True
|
|
self.speak = False
|
|
clear_screen()
|
|
else:
|
|
print("I don't take this as an answer... CONTINUE!")
|
|
game.state["begin"] = True
|
|
self.speak = False
|
|
clear_screen()
|
|
|
|
def ask_question_3(self,game):
|
|
score=game.state.get("score")
|
|
life = game.state.get("lives")
|
|
def clear_screen():
|
|
os.system('cls' if os.name == 'nt' else 'clear')
|
|
if score == 600:
|
|
game.state["begin"] = False
|
|
self.score_prompt += 200
|
|
self.speak = True
|
|
question_3 = input("How many states make up the USA? \n" )
|
|
if question_3.strip() == "50":
|
|
print("Correct!")
|
|
else:
|
|
if life == 1:
|
|
print("HAHAHAHA WRONG ANSWER! YOU ARE OUT OF LIVES! \n")
|
|
print("YOU LOST THE GAME!")
|
|
if life == 2:
|
|
print("HMPH! WRONG!! BUT YOU SURVIVE WITH ONE LIFE REMAINING.")
|
|
game.state["lives"] = 1
|
|
if life ==3:
|
|
print("HMPH! WRONG!! BUT YOU SURVIVE WITH TWO LIVES REMAINING.")
|
|
game.state['lives'] = 2
|
|
self.speak = False
|
|
|
|
|
|
|
|
|
|
|