Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions src/adv.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
from room import Room
from player import Player
from os import system, name

# Declare all the rooms

Expand Down Expand Up @@ -33,10 +35,53 @@
room['narrow'].n_to = room['treasure']
room['treasure'].s_to = room['narrow']


def clear_screen():
_ = system('cls' if name == 'nt' else 'clear')


#
# Main
#

def adventure_game():
clear_screen()

print(f'\nWelcome!')

player = Player(input(f'\nWhat is your name?'), room['outside'])
print(f'\nWelcome {player.name}!\n')
print(f'You are currently at the {player.current_room.name}\n')

cmd = ''

while cmd != 'q':
# Dict for movement
room_movement = {
'n': player.current_room.n_to,
's': player.current_room.s_to,
'e': player.current_room.e_to,
'w': player.current_room.w_to
}

cmd = input('\nWhat would you like to do?'
'\nType n, s, e or w to move and q to quit\n')

if cmd in room_movement.keys():
clear_screen()
if room_movement[cmd]:
player.move(room_movement[cmd])
player.current_room.room_description()
else:
print(f'\nYou can not go there!')
elif cmd != 'q':
clear_screen()
print(f'\nThat is not a valid command!')

clear_screen()
print('Bye bye!')


# Make a new player object that is currently in the 'outside' room.

# Write a loop that:
Expand All @@ -49,3 +94,6 @@
# Print an error message if the movement isn't allowed.
#
# If the user enters "q", quit the game.

if __name__ == '__main__':
adventure_game()
9 changes: 9 additions & 0 deletions src/player.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,11 @@
# Write a class to hold player information, e.g. what room they are in
# currently.

class Player:
def __init__(self, name, current_room):
self.name = name
self.current_room = current_room

def move(self, direction):
self.current_room = direction
print(f'\nMoving to the {self.current_room.name}\n')
15 changes: 14 additions & 1 deletion src/room.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,15 @@
# Implement a class to hold room information. This should have name and
# description attributes.
# description attributes.

class Room:
def __init__(self, name, description):
self.name = name
self.description = description
self.n_to = None
self.s_to = None
self.e_to = None
self.w_to = None

def room_description(self):
print(f'\nYou are in the ' + self.name
+ f"\n{'*'*30}\n" + self.description)