This is the example, please go easy on me as this is the first code I've really ever written. I'm not certain the formatting will translate entirely. This code was running fine until the last edit in which I changed the "rand" to "rand1" as if was giving me an error that "rand" was already used. Now when I run it, I get to "fight or hide" and as soon as I enter one of the options, the terminal closes. Yet, Visual Studio shows no errors.
namespace Text_Game
{
class Game
{
static int playerHealth = 125;
static int playerAttack = 10;
static string playerName;
static string playerChoice;
static int enemyHealth = 100;
static int enemyAttack = 5;
static void Main(string[] args)
{
Welcome();
FightLoop();
}
private static void Welcome()
{
Console.WriteLine("Hello Traveller, What is your name?");
playerName = Console.ReadLine();
Console.WriteLine("Well Hello, " + playerName);
Console.WriteLine("You are alone in a dark dungeon. You can see a room behind you and a long hall in front of you.");
Console.ForegroundColor = ConsoleColor.DarkRed;
Console.WriteLine("You hear an enemy nearby...");
Console.ForegroundColor = ConsoleColor.DarkCyan;
Console.WriteLine("(fight) or (hide)?");
Console.ForegroundColor = ConsoleColor.Gray;
Console.ReadLine();
}
private static void FightLoop()
{
if (playerChoice == "fight")
{
do
{
Console.WriteLine("You have " + playerHealth + "health left");
Console.WriteLine("Enemy has " + enemyHealth + "health left");
Console.ForegroundColor = ConsoleColor.DarkCyan;
Console.WriteLine("(attack) or (defend)?");
Console.ForegroundColor = ConsoleColor.Gray;
playerChoice = Console.ReadLine(); Console.WriteLine();
if (playerChoice == "attack")
{
Random rand = new Random();
int attackdamage = (rand.Next(3, 5) * playerAttack);
enemyHealth = enemyHealth - attackdamage;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Your attack did {0} damage!", attackdamage);
Console.ForegroundColor = ConsoleColor.Gray;
//enemy attacks back
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("The enemy attacked you!");
Console.ForegroundColor = ConsoleColor.Gray;
Random rand1 = new Random();
int enemydamage = (rand.Next(2, 4) * enemyAttack);
playerHealth = playerHealth - enemydamage;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("The enemy's attack did {0} damage!", enemydamage);
Console.ForegroundColor = ConsoleColor.Gray;
}
else if (playerChoice == "defend")
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("The enemy attacked you!");
Console.ForegroundColor = ConsoleColor.Gray;
Random rand = new Random();
int enemydamage = (rand.Next(2, 4) * enemyAttack);
playerHealth = playerHealth - enemydamage/2;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("The enemy's attack did {0} damage!", enemydamage/2);
Console.ForegroundColor = ConsoleColor.Gray;
}
else
{
Console.WriteLine("Please choose (attack) or (defend).");
}
} while (playerHealth > 0 && enemyHealth > 0);
if (enemyHealth <= 0)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("You have defeated the enemy!");
Console.ForegroundColor = ConsoleColor.Magenta;
Console.WriteLine("You were able to escape!");
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine("Thanks for playing!");
}
if (playerHealth <= 0)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("The enemy has killed you!");
Console.ForegroundColor = ConsoleColor.Gray;
}
}
else if (playerChoice == "hide")
{
Console.WriteLine("You hid in the room behind you, but the enemy heard and is coming!");
Console.WriteLine("You can see a wardrobe in the corner.");
Console.ForegroundColor = ConsoleColor.DarkCyan;
Console.WriteLine("(wardrobe) or (stay)?");
Console.ForegroundColor = ConsoleColor.Gray;
if (playerChoice == "wardrobe")
{
Console.WriteLine("You are now hidden.");
Console.WriteLine("The enemy leaves through a secret door. You follow and find yourself outside.");
Console.ForegroundColor = ConsoleColor.Magenta;
Console.WriteLine("You have escaped!");
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine("Thanks for playing!");
}
else if (playerChoice == "stay")
{
do
{
Console.WriteLine("You have " + playerHealth + "health left");
Console.WriteLine("Enemy has " + enemyHealth + "health left");
Console.ForegroundColor = ConsoleColor.DarkCyan;
Console.WriteLine("(attack) or (defend)?");
Console.ForegroundColor = ConsoleColor.Gray;
playerChoice = Console.ReadLine(); Console.WriteLine();
if (playerChoice == "attack")
{
Random rand = new Random();
int attackdamage = (rand.Next(3, 5) * playerAttack);
enemyHealth = enemyHealth - attackdamage;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Your attack did {0} damage!", attackdamage);
Console.ForegroundColor = ConsoleColor.Gray;
//enemy attacks back
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("The enemy attacked you!");
Console.ForegroundColor = ConsoleColor.Gray;
Random rand1 = new Random();
int enemydamage = (rand.Next(2, 4) * enemyAttack);
playerHealth = playerHealth - enemydamage;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("The enemy's attack did {0} damage!", enemydamage);
Console.ForegroundColor = ConsoleColor.Gray;
}
else if (playerChoice == "defend")
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("The enemy attacked you!");
Console.ForegroundColor = ConsoleColor.Gray;
Random rand = new Random();
int enemydamage = (rand.Next(2, 4) * enemyAttack);
playerHealth = playerHealth - enemydamage / 2;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("The enemy's attack did {0} damage!", enemydamage / 2);
Console.ForegroundColor = ConsoleColor.Gray;
}
else
{
Console.WriteLine("Please choose (attack) or (defend).");
}
} while (playerHealth > 0 && enemyHealth > 0);
if (enemyHealth <= 0)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("You have defeated the enemy!");
Console.ForegroundColor = ConsoleColor.Magenta;
Console.WriteLine("You have escaped!");
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine("Thanks for playing!");
}
if (playerHealth <= 0)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("The enemy has killed you!");
Console.ForegroundColor = ConsoleColor.Gray;
}
}
}
else
{
Console.WriteLine("Choose (fight) or (hide).");
}
}
}
}