Difference between revisions of "Add a command to Eat (you start with an apple in the items)"

From TRCCompSci - AQA Computer Science
Jump to: navigation, search
(A New Method)
(A New Method)
Line 17: Line 17:
 
             int indexOfItem = GetIndexOfItem(itemToEat, -1, items);
 
             int indexOfItem = GetIndexOfItem(itemToEat, -1, items);
  
             if (indexOfItem == -1)
+
             if (indexOfItem == -1) //check if item exists
 
             {
 
             {
 
                 Console.WriteLine("You can't find " + itemToEat + " to eat.");
 
                 Console.WriteLine("You can't find " + itemToEat + " to eat.");
 
             }
 
             }
             else if (items[indexOfItem].Location == Inventory && items[indexOfItem].Status.Contains("edible"))
+
             else if (items[indexOfItem].Location == Inventory && items[indexOfItem].Status.Contains("edible")) //check if item is edible & in inventory
 
             {
 
             {
 
                 currentLocation = GetPositionOfCommand(items[indexOfItem].Commands, "eat");
 
                 currentLocation = GetPositionOfCommand(items[indexOfItem].Commands, "eat");
Line 27: Line 27:
 
                 Console.WriteLine("The item has been eaten");
 
                 Console.WriteLine("The item has been eaten");
 
             }
 
             }
             else
+
             else //not in inventory or not edible
 
             {
 
             {
 
                 Console.WriteLine("You cannot eat " + itemToEat);
 
                 Console.WriteLine("You cannot eat " + itemToEat);

Revision as of 13:21, 11 December 2018

Overview

You start the game with an apple in your inventory, when you dump the data for an apple it has a status of "edible". So clearly you are expected to program a method to eat the apple.

A New Method

We need to pass this method the list of items, and the name of the item you want to eat.

The first if, checks to see if the item exists

The second if, checks to see if the item is in the inventory and it is edible

The else is for when the item is not edible or not in your inventory.


 private static void EatItem(List<Item> items, string itemToEat, int currentLocation)
        {
            int indexOfItem = GetIndexOfItem(itemToEat, -1, items);

            if (indexOfItem == -1) //check if item exists
            {
                Console.WriteLine("You can't find " + itemToEat + " to eat.");
            }
            else if (items[indexOfItem].Location == Inventory && items[indexOfItem].Status.Contains("edible")) //check if item is edible & in inventory
            {
                currentLocation = GetPositionOfCommand(items[indexOfItem].Commands, "eat");
                items.RemoveAt(indexOfItem);
                Console.WriteLine("The item has been eaten");
            }
            else //not in inventory or not edible
            {
                Console.WriteLine("You cannot eat " + itemToEat);
            }
        }