Skip to content

Commit

Permalink
Use Player based game loop and remove toggle
Browse files Browse the repository at this point in the history
  • Loading branch information
franiglesias committed Nov 27, 2022
1 parent cf7d885 commit efdee38
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 65 deletions.
24 changes: 9 additions & 15 deletions dungeon/app/application.py
@@ -1,5 +1,4 @@
from dungeon.app.command.action_result import ActionResult
from dungeon.app.domain.game import Game
from dungeon.app.domain.player import Player


class Application:
Expand All @@ -10,23 +9,18 @@ def __init__(self, obtain_user_command, show_output, factory, toggles):
self._factory = factory

def run(self, dungeon='game'):
if not self._toggles.is_active('with_player'):
self.run_with_game(dungeon)
else:
self.run_with_game(dungeon)
self.run_with_player(dungeon)

def run_with_game(self, dungeon):
def run_with_player(self, dungeon_name):
self._show_message("Welcome to the Dungeon")
game = self._prepare_game_with_dungeon(dungeon)
action_result = ActionResult.player_acted("")
while not action_result.is_finished():
dungeon = self._build_dungeon(dungeon_name)
player = Player()

while player.is_alive() and not player.has_won():
command = self._obtain_command()
action_result = game.do_command(command)
player.do(command, dungeon)
self._show_message(str(command))
self._show_message(action_result.message())

def _prepare_game_with_dungeon(self, dungeon):
return Game(self._build_dungeon(dungeon))
self._show_message(player.said())

def _obtain_command(self):
return self._obtain_user_command.command()
Expand Down
6 changes: 0 additions & 6 deletions dungeon/app/domain/game.py

This file was deleted.

1 change: 0 additions & 1 deletion dungeon/tests/test_application.py
Expand Up @@ -33,7 +33,6 @@ def setUp(self) -> None:
self.obtain_user_command = FixedObtainUserCommand("go north")
self.show_output = TestShowOutput()
self.toggles = Toggles()
self.toggles.activate('with_player')

self.application = Application(self.obtain_user_command, self.show_output, DungeonFactory(), self.toggles)

Expand Down
43 changes: 0 additions & 43 deletions dungeon/tests/test_minimum_game.py

This file was deleted.

0 comments on commit efdee38

Please sign in to comment.