mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-22 07:10:42 -08:00
Create Program.cs
Add initial implementation Working version but requires commenting and maybe some better error handling
This commit is contained in:
119
92_Trap/csharp/Program.cs
Normal file
119
92_Trap/csharp/Program.cs
Normal file
@@ -0,0 +1,119 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user