reformat to smaller function, better quiz prints
This commit is contained in:
		
							parent
							
								
									2a2557f3c6
								
							
						
					
					
						commit
						cd5890d10a
					
				
							
								
								
									
										95
									
								
								assistant.py
									
									
									
									
									
								
							
							
						
						
									
										95
									
								
								assistant.py
									
									
									
									
									
								
							| @ -120,8 +120,6 @@ def give_hint(game, hint_giver): | ||||
|         print("Invalid input, no hint taken.") | ||||
| 
 | ||||
| def starting_quiz(level_selector): | ||||
|     print("Before the game starts, a little quiz:") | ||||
|     print("to better know your skills.") | ||||
|     print("Please answer 'yes' if you have ever used a tool or skill before,") | ||||
|     print("or 'no' if you haven't.") | ||||
|     for tool in level_selector.tool_list: | ||||
| @ -160,6 +158,46 @@ def start_game(game, level_selector): | ||||
|         print("Game was not started, it's already in progress!") | ||||
|         print("To start over, please run `abort` first.") | ||||
| 
 | ||||
| def abort_game(game, hint_giver): | ||||
|     try: | ||||
|         if os.path.isdir("logs"): | ||||
|             write_log("logs/aborted_game" + str(time.time()), game, hint_giver) | ||||
|     except OSError as err: | ||||
|         # print("Failed to save game log.") | ||||
|         # print("Error number: {}, Error text: {}".format(err.errno, err.strerror)) | ||||
|         pass     | ||||
|     print("Aborting game, deleting all VMs.") | ||||
|     game.abort_game() | ||||
|     hint_giver.restart_game() | ||||
|     print("Game aborted, progress reset, VMs deleted.") | ||||
| 
 | ||||
| def write_log(game, hint_giver): | ||||
|     if os.path.exists("logs/game_log.yml"): | ||||
|         print("It appears that there is already a saved game log.") | ||||
|         print("Write 'yes' to overwrite it.") | ||||
|         confirmation = input() | ||||
|         confirmation = confirmation.lower() | ||||
|         if (confirmation == "yes"): | ||||
|             print("Overwriting file...") | ||||
|             with open("logs/game_log.yml", 'w'):  | ||||
|                 pass | ||||
|             write_log("logs/game_log.yml", game, hint_giver) | ||||
|         else: | ||||
|             print("File not overwritten.") | ||||
|     else: | ||||
|         print("Writing file...") | ||||
|         write_log("logs/game_log.yml", game, hint_giver) | ||||
| 
 | ||||
| def finish_game(game): | ||||
|     if game.finish_game(): | ||||
|         print("Game finished, total time saved!") | ||||
|     elif (not game.game_in_progress and not game.game_finished): | ||||
|         print("Can't finish game, game was not started yet.") | ||||
|     elif (not game.game_in_progress and game.game_finished): | ||||
|         print("Can't finish game, game was already finished earlier.") | ||||
|     else: | ||||
|         print("Could not finish game.") | ||||
|         print("Make sure you are on the last level!") | ||||
| 
 | ||||
| def game_loop(): | ||||
|     """Interactively assist the player with playing the game. | ||||
| @ -223,20 +261,9 @@ def game_loop(): | ||||
|         command = input() | ||||
|         command = command.lower() | ||||
|         if command in ("a", "abort"): | ||||
|             try: | ||||
|                 if os.path.isdir("logs"): | ||||
|                     write_log("logs/aborted_game" + str(time.time()), game, hint_giver) | ||||
|             except OSError as err: | ||||
|                 # print("Failed to save game log.") | ||||
|                 # print("Error number: {}, Error text: {}".format(err.errno, err.strerror)) | ||||
|                 pass     | ||||
|             print("Aborting game, deleting all VMs.") | ||||
|             game.abort_game() | ||||
|             hint_giver.restart_game() | ||||
|             print("Game aborted, progress reset, VMs deleted.") | ||||
|             abort_game(game, hint_giver) | ||||
|         elif command in ("e", "exit"): | ||||
|             print("Going to exit assistant, abort game and delete VMs.") | ||||
|             game.abort_game() | ||||
|             abort_game(game, hint_giver) | ||||
|             print("Exiting...") | ||||
|             return | ||||
|         elif command in ("s", "start"): | ||||
| @ -248,14 +275,10 @@ def game_loop(): | ||||
|                 elif game.next_level_exists(): | ||||
|                     print("Going to set up level {}".format(game.level + 1)) | ||||
|                     if game.next_level_is_forked(): | ||||
|                         print("Next level is forked.") | ||||
|                         print("Recommended next level: {}".format( | ||||
|                                 level_selector.next_level(game.level, game.running_time()))) | ||||
|                         game.print_next_level_fork_names() | ||||
|                         print("Choose level's branch:") | ||||
|                         branch = input() | ||||
|                         branch = branch.lower() | ||||
|                         game.next_level(branch) | ||||
|                         # print("Next level is forked.") | ||||
|                         next_level = level_selector.next_level(game.level, game.running_time()) | ||||
|                         print("Setting up next level: {}".format(next_level)) | ||||
|                         game.next_level(next_level) | ||||
|                     else: | ||||
|                         game.next_level() | ||||
|                     print("Level deployed.") | ||||
| @ -268,15 +291,7 @@ def game_loop(): | ||||
|             except NoLevelFoundError as err: | ||||
|                 print("Error encountered: {}".format(err)) | ||||
|         elif command in ("f", "finish"): | ||||
|             if game.finish_game(): | ||||
|                 print("Game finished, total time saved!") | ||||
|             elif (not game.game_in_progress and not game.game_finished): | ||||
|                 print("Can't finish game, game was not started yet.") | ||||
|             elif (not game.game_in_progress and game.game_finished): | ||||
|                 print("Can't finish game, game was already finished earlier.") | ||||
|             else: | ||||
|                 print("Could not finish game.") | ||||
|                 print("Make sure you are on the last level!") | ||||
|             finish_game(game) | ||||
|         elif command in ("i", "info", "information"): | ||||
|             game.print_info() | ||||
|         elif command in ("h", "help"): | ||||
| @ -284,21 +299,7 @@ def game_loop(): | ||||
|         elif command in ("c", "check"): | ||||
|             check_prerequisites() | ||||
|         elif command in ("l", "log"): | ||||
|             if os.path.exists("logs/game_log.yml"): | ||||
|                 print("It appears that there is already a saved game log.") | ||||
|                 print("Write 'yes' to overwrite it.") | ||||
|                 confirmation = input() | ||||
|                 confirmation = confirmation.lower() | ||||
|                 if (confirmation == "yes"): | ||||
|                     print("Overwriting file...") | ||||
|                     with open("logs/game_log.yml", 'w'):  | ||||
|                         pass | ||||
|                     write_log("logs/game_log.yml", game, hint_giver) | ||||
|                 else: | ||||
|                     print("File not overwritten.") | ||||
|             else: | ||||
|                 print("Writing file...") | ||||
|                 write_log("logs/game_log.yml", game, hint_giver) | ||||
|             write_log(game, hint_giver) | ||||
|         elif command in ("t", "hint"): | ||||
|             give_hint(game, hint_giver) | ||||
|         else: | ||||
|  | ||||
		Reference in New Issue
	
	Block a user