add logging of level branch, better print_info
This commit is contained in:
parent
4af2581762
commit
c73679bff3
|
@ -44,6 +44,7 @@ class Game:
|
||||||
self.read_mapping(mapping_file)
|
self.read_mapping(mapping_file)
|
||||||
self.load_times = []
|
self.load_times = []
|
||||||
self.solving_times = []
|
self.solving_times = []
|
||||||
|
self.level_log = []
|
||||||
self.level_start_time = 0
|
self.level_start_time = 0
|
||||||
self.level = level_number
|
self.level = level_number
|
||||||
self.branch = ''
|
self.branch = ''
|
||||||
|
@ -56,10 +57,10 @@ class Game:
|
||||||
|
|
||||||
def start_game(self):
|
def start_game(self):
|
||||||
"""Start a new game, if there isn't one already in progress."""
|
"""Start a new game, if there isn't one already in progress."""
|
||||||
|
|
||||||
if (self.level != 0):
|
if (self.level != 0):
|
||||||
return False
|
return False
|
||||||
self.level = 1
|
self.level = 1
|
||||||
|
self.level_log.append("level1") #add level 1
|
||||||
start_time = time.time()
|
start_time = time.time()
|
||||||
subprocess.run(["vagrant", "up"], cwd=self.game_directory,
|
subprocess.run(["vagrant", "up"], cwd=self.game_directory,
|
||||||
env=dict(os.environ, ANSIBLE_ARGS='--tags \"setup\"'))
|
env=dict(os.environ, ANSIBLE_ARGS='--tags \"setup\"'))
|
||||||
|
@ -89,7 +90,7 @@ class Game:
|
||||||
|
|
||||||
`input_text` can be a full level name, partial level name or just
|
`input_text` can be a full level name, partial level name or just
|
||||||
a branch letter ex. "level4a", "4a" and "a" are all fine."""
|
a branch letter ex. "level4a", "4a" and "a" are all fine."""
|
||||||
|
next_level = "level" + str(self.level + 1)
|
||||||
if "level" + str(self.level + 1) + input_text in self.level_mapping[next_level]:
|
if "level" + str(self.level + 1) + input_text in self.level_mapping[next_level]:
|
||||||
return input_text
|
return input_text
|
||||||
if "level" + input_text in self.level_mapping[next_level]:
|
if "level" + input_text in self.level_mapping[next_level]:
|
||||||
|
@ -98,15 +99,15 @@ class Game:
|
||||||
return input_text[6:]
|
return input_text[6:]
|
||||||
raise NoLevelFoundError("No branch called {} found.".format(input_text))
|
raise NoLevelFoundError("No branch called {} found.".format(input_text))
|
||||||
|
|
||||||
def next_level(self, next_branch_input=''):
|
def next_level(self, next_branch_input=""):
|
||||||
"""Advance the game to next level with branch `next_branch_input`.
|
"""Advance the game to next level with branch `next_branch_input`.
|
||||||
Because `next_branch_input` can be supplied by user, perform check
|
Because `next_branch_input` can be supplied by user, perform check
|
||||||
if it is real first.
|
if it is real first.
|
||||||
|
|
||||||
Throws NoLevelFoundError if there is no such level present.
|
Throws NoLevelFoundError if there is no such level present.
|
||||||
next_branch == '' is understood as no branch selected, a level
|
next_branch_input == '' is understood as no branch selected, a level
|
||||||
without possible branching."""
|
without possible branching."""
|
||||||
|
next_branch = ""
|
||||||
if (self.level == 0):
|
if (self.level == 0):
|
||||||
raise NoLevelFoundError("Can't continue, (S)tart the game first!")
|
raise NoLevelFoundError("Can't continue, (S)tart the game first!")
|
||||||
if (not self.next_level_exists()):
|
if (not self.next_level_exists()):
|
||||||
|
@ -114,12 +115,13 @@ class Game:
|
||||||
if (self.next_level_is_forked()):
|
if (self.next_level_is_forked()):
|
||||||
next_branch = self.next_level_branch_check(next_branch_input)
|
next_branch = self.next_level_branch_check(next_branch_input)
|
||||||
# throws NoLevelFoundError
|
# throws NoLevelFoundError
|
||||||
elif (next_branch != ''):
|
elif (next_branch_input != ""):
|
||||||
raise NoLevelFoundError("Next level has no branch, but branch was given.")
|
raise NoLevelFoundError("Next level has no branch, but branch was given.")
|
||||||
self.solving_times.append(int(time.time() - self.level_start_time))
|
self.solving_times.append(int(time.time() - self.level_start_time))
|
||||||
self.level += 1
|
self.level += 1
|
||||||
self.branch = next_branch
|
self.branch = next_branch
|
||||||
self.levelname = "level" + str(self.level) + self.branch
|
self.levelname = "level" + str(self.level) + self.branch
|
||||||
|
self.level_log.append(self.levelname)
|
||||||
self.boxes = self.level_mapping["level" + str(self.level)][self.levelname]
|
self.boxes = self.level_mapping["level" + str(self.level)][self.levelname]
|
||||||
start_time = time.time()
|
start_time = time.time()
|
||||||
subprocess.run(["vagrant", "up"] + self.boxes + ["--provision"],
|
subprocess.run(["vagrant", "up"] + self.boxes + ["--provision"],
|
||||||
|
@ -176,18 +178,22 @@ class Game:
|
||||||
print("Game is not in progress.")
|
print("Game is not in progress.")
|
||||||
else:
|
else:
|
||||||
print("Game in progress. Level:{} Branch:{}".format(self.level, self.branch))
|
print("Game in progress. Level:{} Branch:{}".format(self.level, self.branch))
|
||||||
|
if self.level_log:
|
||||||
|
print("Levels traversed so far:")
|
||||||
|
for level in self.level_log:
|
||||||
|
print("{} ".format(level), end="")
|
||||||
|
print("")
|
||||||
print("Setup times:")
|
print("Setup times:")
|
||||||
i = 1
|
for i in range(len(self.load_times)):
|
||||||
for load_time in self.load_times:
|
if (i == 0):
|
||||||
print("Level {} : ".format(i), end="")
|
print("Setup + ", end="")
|
||||||
self.print_time(load_time, True)
|
print("{} : ".format(self.level_log[i]), end="")
|
||||||
i += 1
|
self.print_time(self.load_times[i], True)
|
||||||
i = 1
|
if self.solving_times:
|
||||||
print("Solving times:")
|
print("Solving times:")
|
||||||
for solving_time in self.solving_times:
|
for i in range(len(self.solving_times)):
|
||||||
print("Level {} : ".format(i), end="")
|
print("{} : ".format(self.level_log[i]), end="")
|
||||||
self.print_time(solving_time, True)
|
self.print_time(self.solving_times[i], True)
|
||||||
i += 1
|
|
||||||
|
|
||||||
|
|
||||||
def print_help():
|
def print_help():
|
||||||
|
|
Reference in New Issue