I suggest you read up on classes, loops and lists (including the Dictionary)
If you do, you should be able to understand how this skeleton works
[source]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace RPG
{
// A class representing a location in the game world
class Location
{
public Location(string description) // Class constructor
{
Description = description;
Exits = new Dictionary<string, Location>();
}
// Description of this location
public string Description;
// Available exits for this location (Could use a List instead, but I prefer a Dictionary)
public Dictionary<string, Location> Exits;
}
class Program
{
static void Main(string[] args)
{
// A Dictionary of locations, representing the game world
Dictionary<string, Location> Locations = new Dictionary<string, Location>();
// Create the locations and add them to the "world"
Locations["Island"] = new Location("An island surrounded by turquoise water");
Locations["Town"] = new Location("A town with shops and houses");
Locations["Farm"] = new Location("A farm in the forrest");
Locations["Tavern"] = new Location("A tavern selling food and drinks");
// Connect the locations together
Locations["Island"].Exits["Town"] = Locations["Town"];
Locations["Town"].Exits["Island"] = Locations["Island"];
Locations["Town"].Exits["Farm"] = Locations["Farm"];
Locations["Farm"].Exits["Town"] = Locations["Town"];
Locations["Town"].Exits["Tavern"] = Locations["Tavern"];
Locations["Tavern"].Exits["Town"] = Locations["Town"];
// A reference to the "current" location
// This reference always points to the current location
Location currentLocation = Locations["Island"];
// Game loop
while (true)
{
// Print information
Console.Clear();
Console.WriteLine("You are here: " + currentLocation.Description);
Console.Write("You can go: ");
foreach (string exit in currentLocation.Exits.Keys)
Console.Write(exit + " ");
Console.WriteLine();
// Take input from player
string input = Console.ReadLine();
if (input == "Quit" || input == "quit") // Exit if the player types Quit
break;
// If the player typed the name of one of the current locations exits, update the current location
if (currentLocation.Exits.Keys.Contains(input))
{
currentLocation = currentLocation.Exits[input];
}
else
{
Console.WriteLine("Can not go to " + input);
}
}
}
}
}
[/source]