Esempio n. 1
0
 public Pit(int id, Room room)
 {
     this.id = id;
     this.Type = EntityType.pit;
     location = room;
     location.addOccupant(this);
     Debug.WriteLine("Pit " + id + " is born in Room " + (location.id + 1));
 }
Esempio n. 2
0
 //TODO: Change the bat name to int id...
 public Bat(string name, Room room)
 {
     //isAlive = true;
     this.name = name;
     this.Type = EntityType.bat;
     location = room;
     location.addOccupant(this);
     Debug.WriteLine("Bat " + name + " is born in Room " + (location.id + 1));
 }
Esempio n. 3
0
 public Wumpus(string name, Room room)
 {
     isAlive = true;
     this.name = name;
     this.Type = EntityType.wumpus;
     metPlayer = false;
     location = room;
     location.addOccupant(this);
     dice = new Random();
     Debug.WriteLine("Wumpus is born in Room " + (location.id + 1));
 }
Esempio n. 4
0
        public Player(string name, Room room)
        {
            this.name = name;
            isAlive = true;
            this.Type = EntityType.player;
            //set arrows

            initArrows();
            //set location
            location = room;
            location.addOccupant(this);
            move(location);

            Debug.WriteLine("Player() : " + name + " is born in Room " + (location.id +1));
        }
Esempio n. 5
0
 public void move(Room room)
 {
     if (location == null)
     {
         location = room;
         location.addOccupant(this);
     }
     else
     {
         location.removeOccupant(this);  //leave the current room
         location = room;
         location.addOccupant(this);         //enter the new Room.
     }
     Debug.WriteLine("Pit " + id + " is now in room " + (location.id + 1));
 }
Esempio n. 6
0
        public void fly(List<Room> path, Room current, Wumpus target)
        {
            Random rand = new Random();

            location = current;
            location.addOccupant(this);
            int flightLength = 0;

            //TODO: this is ugly, clean up later
            foreach (Room room in path)
            {   //check current length of flight
                if (flightLength < maxFlight)
                {
                    if (location.hasOccupant(target))
                    {
                        target.die();
                        Console.WriteLine("Aha! You got the Wumpus!");
                        return;
                    }
                    //check if rooms are connected
                    if (location.hasNeighbor(room))
                    {
                        move(room);
                    }
                    else
                    {
                        Console.WriteLine("Room " + (location.id + 1) + " is not neighbors with Room " + (room.id + 1)
                                            + "! Picking another room...");
                        int i = rand.Next(0, location.neighbors.Count - 1);
                        move(location.neighbors[i]);
                    }
                    if (location == current)
                    {
                        Console.WriteLine("Ouch! The arrow got you!");
                        break;
                    }
                    flightLength++;
                }
                else
                    Console.WriteLine(" The arrow can only traverse up to 5 rooms!");
            }
            Console.WriteLine("Missed!");
            target.wake();  //wake the wumpus if you miss
            used = true;
        }
Esempio n. 7
0
 public void addOccupant(IEntity occupant, Room room)
 {
     occupants.Add(occupant);
     room.addOccupant(occupant);
 }
Esempio n. 8
0
 public void move(Room room)
 {
     if (location == null)
     {
         location = room;
         location.addOccupant(this);
     }
     else
     {
         location.removeOccupant(this);  //leave the current room
         location = room;
         location.addOccupant(this);         //enter the new Room.
     }
     Console.WriteLine("You are now in Room " + (location.id + 1));
     this.sense();
 }
Esempio n. 9
0
 public void move(Room room)
 {
     location.removeOccupant(this);  //leave the current room
     location = room;
     location.addOccupant(this);         //enter the new Room.
     Debug.WriteLine("Arrow.move(): The arrow is in Room " + (location.id + 1));
     Console.WriteLine("The arrow is in Room " + (location.id + 1));
 }
Esempio n. 10
0
 public void move(Room room)
 {
     if (location == null)
     {
         location = room;
         location.addOccupant(this);
     }
     else
     {
         location.removeOccupant(this);  //leave the current room
         location = room;
         location.addOccupant(this);         //enter the new Room.
     }
     Debug.WriteLine("Wumpus.move() : " + name + " has moved to Room " + (location.id + 1));
 }