Jump to content
  • Advertisement
Sign in to follow this  
TheScriptan

How to create c# text based game like this

This topic is 2069 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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
Advertisement
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

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
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!