Sign in to follow this  
TheScriptan

How to create c# text based game like this

Recommended Posts

TheScriptan    208

I was really confused when i tried to make so simple game, maybe im just out of ideas, here is what i want to make:

 

int input = 0; Console.WriteLine("You woke up in the island what you gonna do?");

Console.WriteLine("1. Go to city");

Console.WriteLine("2. Survive in wilderness");

input = Console.ReadLine();

if (input == 1) {How i need to go to the jumpspot?}()

if (input == 2) isDead = true; isDeadTrue();

 

jumpspot: How i need jump here to continue the game???

 

Console.WriteLine("You are in the city what you gonna do?");

Console.WriteLine("1. Search for food");

Console.WriteLine("2. Kill people");

if (input == 1) {jumpspot2:}()

if (input == 2) isDead = true; isDeadTrue();

jumpspot2:

and it goes on

 

Share this post


Link to post
Share on other sites
while(isDead != true)
{
    //intro and selection options
    //.....

    if(input == 2)
    {
        isDead = true;
    }
    //continue on
}

 

? Something like that possibly. Pretty much when you choose "Survive in wilderness" the bool variable "isDead" is set to true which then pushes you out of the while loop. "While(isDead != true" 

 

 

(my apologizes if some of this syntax is incorrect, i've been using C++ for a while so my C# is rusty)

Share this post


Link to post
Share on other sites
pulpfist    528

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]

Share this post


Link to post
Share on other sites
Thank you Inuyashakagome16  you really helped me. I did very stupid mistake, i needed to try more with my made code biggrin.png

No problem. :) I would look into what pulpfist was talking about with classes, loops,  lists, and the dictionary. I probably should have had a response like that instead of JUST the answer an a mild explanation. Your setup is fine, but as he stated and the example he posted I would look into those areas as well. :) 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this