mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-22 15:16:33 -08:00
Add initial implementation Working version but requires commenting and maybe some better error handling
120 lines
3.0 KiB
C#
120 lines
3.0 KiB
C#
using System;
|
|
|
|
namespace trap_cs
|
|
{
|
|
class Program
|
|
{
|
|
const int maxGuesses = 6;
|
|
const int maxNumber = 100;
|
|
static void Main(string[] args)
|
|
{
|
|
int lowGuess = 0;
|
|
int highGuess = 0;
|
|
|
|
Random randomNumberGenerator = new ();
|
|
|
|
Print("TRAP");
|
|
Print("CREATIVE COMPUTING MORRISTOWN, NEW JERSEY");
|
|
Print();
|
|
Print();
|
|
Print();
|
|
|
|
PrintInstructions();
|
|
|
|
int numberToGuess = randomNumberGenerator.Next(1, maxNumber);
|
|
|
|
for (int nGuess = 1; nGuess <= maxGuesses + 1; nGuess++)
|
|
{
|
|
if (nGuess > maxGuesses)
|
|
{
|
|
Print(string.Format("SORRY, THAT'S {0} GUESSES. THE NUMBER WAS {1}", maxGuesses, numberToGuess));
|
|
Print();
|
|
break;
|
|
}
|
|
|
|
GetGuesses(nGuess, ref lowGuess, ref highGuess);
|
|
|
|
if(lowGuess == highGuess && lowGuess == numberToGuess)
|
|
{
|
|
Print("YOU GOT IT!!!");
|
|
Print();
|
|
Print("TRY AGAIN.");
|
|
Print();
|
|
break;
|
|
}
|
|
if (highGuess < numberToGuess)
|
|
{
|
|
Print("MY NUMBER IS LARGER THAN YOUR TRAP NUMBERS.");
|
|
}
|
|
else if (lowGuess > numberToGuess)
|
|
{
|
|
Print("MY NUMBER IS SMALLER THAN YOUR TRAP NUMBERS.");
|
|
}
|
|
else
|
|
{
|
|
Print("YOU HAVE TRAPPED MY NUMBER.");
|
|
}
|
|
}
|
|
}
|
|
|
|
// TRAP
|
|
// REM - STEVE ULLMAN, 8 - 1 - 72
|
|
static void PrintInstructions()
|
|
{
|
|
Print("INSTRUCTIONS ?");
|
|
|
|
char response = Console.ReadKey().KeyChar;
|
|
if (response == 'Y')
|
|
{
|
|
Print(string.Format("I AM THINKING OF A NUMBER BETWEEN 1 AND {0}", maxNumber));
|
|
Print("TRY TO GUESS MY NUMBER. ON EACH GUESS,");
|
|
Print("YOU ARE TO ENTER 2 NUMBERS, TRYING TO TRAP");
|
|
Print("MY NUMBER BETWEEN THE TWO NUMBERS. I WILL");
|
|
Print("TELL YOU IF YOU HAVE TRAPPED MY NUMBER, IF MY");
|
|
Print("NUMBER IS LARGER THAN YOUR TWO NUMBERS, OR IF");
|
|
Print("MY NUMBER IS SMALLER THAN YOUR TWO NUMBERS.");
|
|
Print("IF YOU WANT TO GUESS ONE SINGLE NUMBER, TYPE");
|
|
Print("YOUR GUESS FOR BOTH YOUR TRAP NUMBERS.");
|
|
Print(string.Format("YOU GET {0} GUESSES TO GET MY NUMBER.", maxGuesses));
|
|
}
|
|
}
|
|
static void Print(string stringToPrint)
|
|
{
|
|
Console.WriteLine(stringToPrint);
|
|
}
|
|
static void Print()
|
|
{
|
|
Console.WriteLine();
|
|
}
|
|
static void GetGuesses(int nGuess, ref int lowGuess, ref int highGuess)
|
|
{
|
|
Print();
|
|
Print(string.Format("GUESS #{0}", nGuess));
|
|
|
|
lowGuess = GetIntFromConsole("Type low guess");
|
|
highGuess = GetIntFromConsole("Type high guess");
|
|
|
|
if(lowGuess > highGuess)
|
|
{
|
|
int tempGuess = lowGuess;
|
|
|
|
lowGuess = highGuess;
|
|
highGuess = tempGuess;
|
|
}
|
|
}
|
|
static int GetIntFromConsole(string prompt)
|
|
{
|
|
|
|
Console.Write( prompt + " > ");
|
|
string intAsString = Console.ReadLine();
|
|
|
|
if(int.TryParse(intAsString, out int intValue) ==false)
|
|
{
|
|
intValue = 1;
|
|
}
|
|
|
|
return intValue;
|
|
}
|
|
}
|
|
}
|