using System.Text; namespace Number { class Number { private void DisplayIntro() { Console.WriteLine(); Console.WriteLine("NUMBER".PadLeft(23)); Console.WriteLine("CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"); Console.WriteLine(); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("You have 100 points. By guessing numbers from 1 to 5, you"); Console.WriteLine("can gain or lose points depending upon how close you get to"); Console.WriteLine("a random number selected by the computer."); Console.WriteLine(); Console.WriteLine("You occaisionally will get a jackpot which will double(!)"); Console.WriteLine("your point count. You win when you get 500 points."); Console.WriteLine(); } private int PromptForGuess() { bool Success = false; int Guess = 0; while (!Success) { Console.Write("Guess a number from 1 to 5? "); string LineInput = Console.ReadLine().Trim().ToLower(); if (int.TryParse(LineInput, out Guess)) { if (Guess >= 0 && Guess <= 5) Success = true; } else Console.WriteLine("Please enter a number between 1 and 5."); } return Guess; } private void GetRandomNumbers(out int Random1, out int Random2, out int Random3, out int Random4, out int Random5) { Random rand = new Random(); // Get a unique set of random numbers between 1 and 5 // I assume this is what the original BASIC FNR(X)=INT(5*RND(1)+1) is doing Random1 = (int)(5 * rand.NextDouble() + 1); do { Random2 = (int)(5 * rand.NextDouble() + 1); } while (Random2 == Random1); do { Random3 = (int)(5 * rand.NextDouble() + 1); } while (Random3 == Random1 || Random3 == Random2); do { Random4 = (int)(5 * rand.NextDouble() + 1); } while (Random4 == Random1 || Random4 == Random2 || Random4 == Random3); do { Random5 = (int)(5 * rand.NextDouble() + 1); } while (Random5 == Random1 || Random5 == Random2 || Random5 == Random3 || Random5 == Random4); } private void Play() { int Points = 100; bool Win = false; int Random1, Random2, Random3, Random4, Random5; int Guess = 0; GetRandomNumbers(out Random1, out Random2, out Random3, out Random4, out Random5); while (!Win) { Guess = PromptForGuess(); if (Guess == Random1) Points -= 5; else if (Guess == Random2) Points += 5; else if (Guess == Random3) { Points += Points; Console.WriteLine("You hit the jackpot!!!"); } else if (Guess == Random4) Points += 1; else if (Guess == Random5) Points -= (int)(Points * 0.5); if (Points > 500) { Console.WriteLine("!!!!You Win!!!! with {0} points.", Points); Win = true; } else Console.WriteLine("You have {0} points.", Points); } } public void PlayTheGame() { DisplayIntro(); Play(); } } class Program { static void Main(string[] args) { new Number().PlayTheGame(); } } }