using System.Collections.Generic;
public static void Main()
CGame_Player thePlayer = new CGame_Player();
CGame_Room testRoom = new CGame_Room("Test Room", "Room for testing");
CGame_World.AddRoom(testRoom, 0, 0);
thePlayer.SetRoom(testRoom);
while ( !CGame_World.ShouldQuit() )
protected string description;
public CGame_BaseClass(string my_name = "Dummy", string my_description = "Tell a programmer")
description = my_description;
virtual public string GetName()
virtual public void Examine()
Console.WriteLine(description);
class CGame_Room : CGame_BaseClass
CGame_Room[] m_cAdjacentRooms = new CGame_Room[4];
CGame_Item[] m_cItems = new CGame_Item[6];
public CGame_Room(string my_name = "Dummy", string my_description = "Tell a programmer")
description = my_description;
public CGame_Item GetItem(string itemName)
for ( int i = 0; i < m_cItems.Length-1; i++ )
if ( m_cItems[i].GetName() != itemName )
public CGame_Item GetItem(CGame_Item itemName)
for ( int i = 0; i < m_cItems.Length-1; i++ )
if ( m_cItems[i] != itemName )
public CGame_Item[] GetItems()
public void UpdateAdjacency()
CGame_Room[,] roomgrid = CGame_World.GetRoomGrid();
int[] myPos = CGame_World.GetRoomGridPos(this);
Console.WriteLine( roomgrid );
m_cAdjacentRooms[0] = roomgrid[x, y-1];
m_cAdjacentRooms[2] = roomgrid[x, y+1];
m_cAdjacentRooms[1] = roomgrid[x-1, y];
m_cAdjacentRooms[3] = roomgrid[x+1, y];
class CGame_Item : CGame_BaseClass
CGame_Room m_cParentRoom;
public CGame_Item(string my_name = "Dummy", string my_description = "Tell a programmer")
description = my_description;
class CGame_Player : CGame_BaseClass
CGame_Room m_cCurrentRoom;
CGame_Item[] m_cInventory;
string[] input = Console.ReadLine().Split(" ".ToCharArray(), 2);
if ( input[0] == "look" )
string roomName = m_cCurrentRoom.GetName();
Console.WriteLine(@"You are standing in {roomName)");
m_cCurrentRoom.Examine();
CGame_Item item = m_cCurrentRoom.GetItem( input[1] ) ;
Console.WriteLine("It's a {0}.", item.GetName());
Console.WriteLine("I don't see a {0} anywhere around here.", input[1]);
else if ( input[0] == "quit" )
public void SetRoom(string roomName)
m_cCurrentRoom = CGame_World.GetRoom(roomName);
public void SetRoom(CGame_Room roomName)
m_cCurrentRoom = CGame_World.GetRoom(roomName);
static List<CGame_Room> m_cRooms = new List<CGame_Room>();
static CGame_Room[,] m_cRoomGrid = new CGame_Room[100, 100];
static List<CGame_Item> m_cItems = new List<CGame_Item>();
static CGame_Player m_cPlayer;
static bool m_bShouldExit = false;
static public CGame_Room GetRoom(string roomName)
for ( int i = 0; i < m_cRooms.Count; i++ )
if ( m_cRooms[i].GetName() != roomName )
static public CGame_Room GetRoom(CGame_Room roomName)
for ( int i = 0; i < m_cRooms.Count; i++ )
if ( m_cRooms[i] != roomName )
static public CGame_Room AddRoom(CGame_Room room, int x, int y)
for ( int i = 0; i<room.GetItems().Length-1; i++ )
m_cItems.Add(room.GetItems()[i]);
for ( int rx = 0; rx < (m_cRoomGrid.Length/2)-1; rx++)
for ( int ry = 0; ry < (m_cRoomGrid.Length/2)-1; ry++)
if ( m_cRoomGrid[rx, ry] != null )
m_cRoomGrid[rx, ry].UpdateAdjacency();
return m_cRoomGrid[x, y];
static public CGame_Room[,] GetRoomGrid()
static public int[] GetRoomGridPos(CGame_Room room)
for ( int x = 0; x < (m_cRoomGrid.Length/2)-1; x++)
for ( int y = 0; y < (m_cRoomGrid.Length/2)-1; y++)
if ( m_cRoomGrid[x,y] == room )
int[] returnVal = { x, y };
static public void QuitGame()
static public bool ShouldQuit()