0

ねえ、推測ゲームに必要なものはすべて揃っており、すべてがチェックアウトされ、問題なく実行されます。唯一の問題は、ユーザーが予想以上に推測できないように、勝利数と推測数が必要なことです。プログラムが指示します。現在、プログラムは取得する必要がある推測の数を通知しますが、if ステートメントが 1 つしかないため、推測できるのは 1 回だけです。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GuessingGame
{
    class Program
    {
        static void Main(string[] args)
        {
            // Declare variables
            Int32 currentGuess, guessCount, winCount, upperLimit, randomNumber;
            double maxGuesses;
            bool gameOver;
            char playAgain;
            Random random = new Random();



            // Display title
            Console.WriteLine("Welcome to the high/low guessing game.");
            //Request user input for upper limit
            Console.WriteLine("Enter Upper range (e.g. 100):");
            upperLimit = Int32.Parse(Console.ReadLine());

            //Generate Random Number
            randomNumber = random.Next(1, upperLimit);
            maxGuesses = Math.Ceiling(Math.Log(upperLimit, 2) - 1);

            // Begin game
            Console.WriteLine("I picked a number between 1 and {0} you get {1} chances to guess it", upperLimit, maxGuesses);

            // Begin Guessing Process

            //Guess #1
            {
                Console.WriteLine(" Enter Guess #1: ");
                currentGuess = Int32.Parse(Console.ReadLine());

                if (currentGuess == randomNumber)
                {
                    Console.WriteLine("You got it!");
                }
                if (currentGuess > randomNumber)
                {
                    Console.WriteLine("Too High");
                }
                if (randomNumber > currentGuess)
                {
                    Console.WriteLine("Too Low");
                }

                    Console.ReadLine();
                }
            }
        }
    }
4

1 に答える 1

1
       int gessNum = 0;
       do
       {
            if (gessNum++ == maxGuesses){
                Console.WriteLine("You lost");
                break;
            }
            Console.WriteLine(string.Format(" Enter Guess {0}: ", gessNum));
            currentGuess = Int32.Parse(Console.ReadLine());

            if (currentGuess == randomNumber)
            {
                Console.WriteLine("You got it!");
            }
            if (currentGuess > randomNumber)
            {
                Console.WriteLine("Too High");
            }
            if (randomNumber > currentGuess)
            {
                Console.WriteLine("Too Low");
            }
            Console.ReadLine();
        } while (currentGuess != randomNumber);
于 2013-10-02T15:50:34.247 に答える