From 1499521d8673b9b5bb52ad15c6cbf7fbd868c549 Mon Sep 17 00:00:00 2001
From: Ahmed Yusuf <yusufa7@cardiff.ac.uk>
Date: Tue, 18 Oct 2022 19:32:48 +0100
Subject: [PATCH] doctests removed

---
 Group_game/game.py       | 206 +--------------------------------------
 Group_game/gameparser.py |  50 ----------
 2 files changed, 2 insertions(+), 254 deletions(-)

diff --git a/Group_game/game.py b/Group_game/game.py
index 27be0ff..37971b8 100644
--- a/Group_game/game.py
+++ b/Group_game/game.py
@@ -6,24 +6,7 @@ from items import *
 from gameparser import *
 
 
-
 def list_of_items(items):
-    """This function takes a list of items (see items.py for the definition) and
-    returns a comma-separated list of item names (as a string). For example:
-
-    >>> list_of_items([item_pen, item_handbook])
-    'a pen, a student handbook'
-
-    >>> list_of_items([item_id])
-    'id card'
-
-    >>> list_of_items([])
-    ''
-
-    >>> list_of_items([item_money, item_handbook, item_laptop])
-    'money, a student handbook, laptop'
-
-    """
     new_list = ""
     for number in range(len(items)):
         if number == len(items) - 1:
@@ -35,93 +18,16 @@ def list_of_items(items):
 
 
 def print_room_items(room):
-    """This function takes a room as an input and nicely displays a list of items
-    found in this room (followed by a blank line). If there are no items in
-    the room, nothing is printed. See map.py for the definition of a room, and
-    items.py for the definition of an item. This function uses list_of_items()
-    to produce a comma-separated list of item names. For example:
-
-    >>> print_room_items(rooms["Reception"])
-    There is a pack of biscuits, a student handbook here.
-    <BLANKLINE>
-
-    >>> print_room_items(rooms["Office"])
-    There is a pen here.
-    <BLANKLINE>
-
-    >>> print_room_items(rooms["Admins"])
-
-    (no output)
-
-    Note: <BLANKLINE> here means that doctest should expect a blank line.
-
-    """
-
     if room["items"]:
         print("There is", list_of_items(room["items"]), "here." + "\n")
 
 
-
 def print_inventory_items(items):
-    """This function takes a list of inventory items and displays it nicely, in a
-    manner similar to print_room_items(). The only difference is in formatting:
-    print "You have ..." instead of "There is ... here.". For example:
-
-    >>> print_inventory_items(inventory)
-    You have id card, laptop, money.
-    <BLANKLINE>
-
-    """
     if items:
         print("You have", list_of_items(items) + "." + "\n")
 
 
 def print_room(room):
-    """This function takes a room as an input and nicely displays its name
-    and description. The room argument is a dictionary with entries "name",
-    "description" etc. (see map.py for the definition). The name of the room
-    is printed in all capitals and framed by blank lines. Then follows the
-    description of the room and a blank line again. If there are any items
-    in the room, the list of items is printed next followed by a blank line
-    (use print_room_items() for this). For example:
-
-    >>> print_room(rooms["Office"])
-    <BLANKLINE>
-    THE GENERAL OFFICE
-    <BLANKLINE>
-    You are standing next to the cashier's till at
-    30-36 Newport Road. The cashier looks at you with hope
-    in their eyes. If you go west you can return to the
-    Queen's Buildings.
-    <BLANKLINE>
-    There is a pen here.
-    <BLANKLINE>
-
-    >>> print_room(rooms["Reception"])
-    <BLANKLINE>
-    RECEPTION
-    <BLANKLINE>
-    You are in a maze of twisty little passages, all alike.
-    Next to you is the School of Computer Science and
-    Informatics reception. The receptionist, Matt Strangis,
-    seems to be playing an old school text-based adventure
-    game on his computer. There are corridors leading to the
-    south and east. The exit is to the west.
-    <BLANKLINE>
-    There is a pack of biscuits, a student handbook here.
-    <BLANKLINE>
-
-    >>> print_room(rooms["Admins"])
-    <BLANKLINE>
-    MJ AND SIMON'S ROOM
-    <BLANKLINE>
-    You are leaning agains the door of the systems managers'
-    room. Inside you notice Matt "MJ" John and Simon Jones. They
-    ignore you. To the north is the reception.
-    <BLANKLINE>
-
-    Note: <BLANKLINE> here means that doctest should expect a blank line.
-    """
     # Display room name
     print()
     print(room["name"].upper())
@@ -135,67 +41,16 @@ def print_room(room):
     # COMPLETE ME!
     #
 
+
 def exit_leads_to(exits, direction):
-    """This function takes a dictionary of exits and a direction (a particular
-    exit taken from this dictionary). It returns the name of the room into which
-    this exit leads. For example:
-
-    >>> exit_leads_to(rooms["Reception"]["exits"], "south")
-    "MJ and Simon's room"
-    >>> exit_leads_to(rooms["Reception"]["exits"], "east")
-    "your personal tutor's office"
-    >>> exit_leads_to(rooms["Tutor"]["exits"], "west")
-    'Reception'
-    """
     return rooms[exits[direction]]["name"]
 
 
 def print_exit(direction, leads_to):
-    """This function prints a line of a menu of exits. It takes a direction (the
-    name of an exit) and the name of the room into which it leads (leads_to),
-    and should print a menu line in the following format:
-
-    GO <EXIT NAME UPPERCASE> to <where it leads>.
-
-    For example:
-    >>> print_exit("east", "you personal tutor's office")
-    GO EAST to you personal tutor's office.
-    >>> print_exit("south", "MJ and Simon's room")
-    GO SOUTH to MJ and Simon's room.
-    """
     print("GO " + direction.upper() + " to " + leads_to + ".")
 
 
 def print_menu(exits, room_items, inv_items):
-    """This function displays the menu of available actions to the player. The
-    argument exits is a dictionary of exits as exemplified in map.py. The
-    arguments room_items and inv_items are the items lying around in the room
-    and carried by the player respectively. The menu should, for each exit,
-    call the function print_exit() to print the information about each exit in
-    the appropriate format. The room into which an exit leads is obtained
-    using the function exit_leads_to(). Then, it should print a list of commands
-    related to items: for each item in the room print
-
-    "TAKE <ITEM ID> to take <item name>."
-
-    and for each item in the inventory print
-
-    "DROP <ITEM ID> to drop <item name>."
-
-    For example, the menu of actions available at the Reception may look like this:
-
-    You can:
-    GO EAST to your personal tutor's office.
-    GO WEST to the parking lot.
-    GO SOUTH to MJ and Simon's room.
-    TAKE BISCUITS to take a pack of biscuits.
-    TAKE HANDBOOK to take a student handbook.
-    DROP ID to drop your id card.
-    DROP LAPTOP to drop your laptop.
-    DROP MONEY to drop your money.
-    What do you want to do?
-
-    """
     print("You can:")
     # Iterate over available exits
     for direction in exits:
@@ -209,35 +64,15 @@ def print_menu(exits, room_items, inv_items):
     #
     # COMPLETE ME!
     #
-    
+
     print("What do you want to do?")
 
 
 def is_valid_exit(exits, chosen_exit):
-    """This function checks, given a dictionary "exits" (see map.py) and
-    a players's choice "chosen_exit" whether the player has chosen a valid exit.
-    It returns True if the exit is valid, and False otherwise. Assume that
-    the name of the exit has been normalised by the function normalise_input().
-    For example:
-
-    >>> is_valid_exit(rooms["Reception"]["exits"], "south")
-    True
-    >>> is_valid_exit(rooms["Reception"]["exits"], "up")
-    False
-    >>> is_valid_exit(rooms["Parking"]["exits"], "west")
-    False
-    >>> is_valid_exit(rooms["Parking"]["exits"], "east")
-    True
-    """
     return chosen_exit in exits
 
 
 def execute_go(direction):
-    """This function, given the direction (e.g. "south") updates the current room
-    to reflect the movement of the player if the direction is a valid exit
-    (and prints the name of the room into which the player is
-    moving). Otherwise, it prints "You cannot go there."
-    """
     global current_room
     if is_valid_exit(current_room["exits"], direction):
         new_room = move(current_room["exits"],direction)
@@ -248,11 +83,6 @@ def execute_go(direction):
 
 
 def execute_take(item_id):
-    """This function takes an item_id as an argument and moves this item from the
-    list of items in the current room to the player's inventory. However, if
-    there is no such item in the room, this function prints
-    "You cannot take that."
-    """
     found = False
     for items in current_room["items"]:
         if item_id == items["id"]:
@@ -266,10 +96,6 @@ def execute_take(item_id):
     
 
 def execute_drop(item_id):
-    """This function takes an item_id as an argument and moves this item from the
-    player's inventory to list of items in the current room. However, if there is
-    no such item in the inventory, this function prints "You cannot drop that."
-    """
     found = False
     for items in inventory:
         if items["id"] == item_id:
@@ -283,13 +109,6 @@ def execute_drop(item_id):
     
 
 def execute_command(command):
-    """This function takes a command (a list of words as returned by
-    normalise_input) and, depending on the type of action (the first word of
-    the command: "go", "take", or "drop"), executes either execute_go,
-    execute_take, or execute_drop, supplying the second word as the argument.
-
-    """
-
     if 0 == len(command):
         return
 
@@ -316,14 +135,6 @@ def execute_command(command):
 
 
 def menu(exits, room_items, inv_items):
-    """This function, given a dictionary of possible exits from a room, and a list
-    of items found in the room and carried by the player, prints the menu of
-    actions using print_menu() function. It then prompts the player to type an
-    action. The players's input is normalised using the normalise_input()
-    function before being returned.
-
-    """
-
     # Display menu
     print_menu(exits, room_items, inv_items)
 
@@ -337,18 +148,6 @@ def menu(exits, room_items, inv_items):
 
 
 def move(exits, direction):
-    """This function returns the room into which the player will move if, from a
-    dictionary "exits" of avaiable exits, they choose to move towards the exit
-    with the name given by "direction". For example:
-
-    >>> move(rooms["Reception"]["exits"], "south") == rooms["Admins"]
-    True
-    >>> move(rooms["Reception"]["exits"], "east") == rooms["Tutor"]
-    True
-    >>> move(rooms["Reception"]["exits"], "west") == rooms["Office"]
-    False
-    """
-
     # Next room to go to
     return rooms[exits[direction]]
 
@@ -369,7 +168,6 @@ def main():
         execute_command(command)
 
 
-
 # Are we being run as a script? If so, run main().
 # '__main__' is the name of the scope in which top-level code executes.
 # See https://docs.python.org/3.4/library/__main__.html for explanation
diff --git a/Group_game/gameparser.py b/Group_game/gameparser.py
index 9336887..3c9e0a7 100644
--- a/Group_game/gameparser.py
+++ b/Group_game/gameparser.py
@@ -13,20 +13,6 @@ skip_words = ['a', 'about', 'all', 'an', 'another', 'any', 'around', 'at',
 
 
 def filter_words(words, skip_words):
-    """This function takes a list of words and returns a copy of the list from
-    which all words provided in the list skip_words have been removed.
-    For example:
-
-    >>> filter_words(["help", "me", "please"], ["me", "please"])
-    ['help']
-
-    >>> filter_words(["go", "south"], skip_words)
-    ['go', 'south']
-
-    >>> filter_words(['how', 'about', 'i', 'go', 'through', 'that', 'little', 'passage', 'to', 'the', 'south'], skip_words)
-    ['go', 'passage', 'south']
-
-    """
     new_list = []
 
     for elements in words:
@@ -41,18 +27,6 @@ def filter_words(words, skip_words):
 
     
 def remove_punct(text):
-    """This function is used to remove all punctuation
-    marks from a string. Spaces do not count as punctuation and should
-    not be removed. The funcion takes a string and returns a new string
-    which does not contain any puctuation. For example:
-
-    >>> remove_punct("Hello, World!")
-    'Hello World'
-    >>> remove_punct("-- ...Hey! -- Yes?!...")
-    ' Hey  Yes'
-    >>> remove_punct(",go!So.?uTh")
-    'goSouTh'
-    """
     no_punct = ""
     for char in text:
         if not (char in string.punctuation):
@@ -62,30 +36,6 @@ def remove_punct(text):
 
 
 def normalise_input(user_input):
-    """This function removes all punctuation from the string and converts it to
-    lower case. It then splits the string into a list of words (also removing
-    any extra spaces between words) and further removes all "unimportant"
-    words from the list of words using the filter_words() function. The
-    resulting list of "important" words is returned. For example:
-
-    >>> normalise_input("  Go   south! ")
-    ['go', 'south']
-    >>> normalise_input("!!!  tAkE,.    LAmp!?! ")
-    ['take', 'lamp']
-    >>> normalise_input("HELP!!!!!!!")
-    ['help']
-    >>> normalise_input("Now, drop the sword please.")
-    ['drop', 'sword']
-    >>> normalise_input("Kill ~ tHe :-  gObLiN,. wiTH my SWORD!!!")
-    ['kill', 'goblin', 'sword']
-    >>> normalise_input("I would like to drop my laptop here.")
-    ['drop', 'laptop']
-    >>> normalise_input("I wish to take this large gem now!")
-    ['take', 'gem']
-    >>> normalise_input("How about I go through that little passage to the south...")
-    ['go', 'passage', 'south']
-
-    """
     # Remove punctuation and convert to lower case
     no_punct = remove_punct(user_input).lower()
     sentence = no_punct.strip()
-- 
GitLab