0
これは基本的に私の最初の小さなC#プログラムです。私は "ルール"を構築したので、正しい数を推測するのに20回の試行しかありません。私は、この "ルール"を実装するより美しい方法があるのだろうかと思っていました。C#推測ゲームのみのX試行
これは私のコードです:私はいくつかのバグフィックスが行われ、一般的に、コードを少し改善しようとした
bool run = true;
while (run == true) // Main While Schleife
{
Random rndnr = new Random();
int rnd;
rnd = rndnr.Next(1, 100);
int guess;
int trys;
trys = 0;
guess = 0;
Console.WriteLine("Can you guess my number? I am thinking about a number between 1 and 100!");
guess = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(rnd);
while (guess != rnd)
{
if (trys > 20)
{
Console.Clear();
Console.WriteLine("You only have 20 trys. You failed! \n");
run = false;
Console.WriteLine("Do you wann play again? Press R + Enter to play again!");
string rerun = Console.ReadLine().ToUpper();
if (rerun == "R")
{
run = true;
trys = 0;
Console.Clear();
break;
}
else
{
run = false;
break;
}
}
if (guess > rnd)
{
Console.WriteLine("My number is lower than" + guess + "\n guess again >>");
guess = Convert.ToInt32(Console.ReadLine());
}
if (guess < rnd)
{
Console.WriteLine("My number is higher than" + guess + "\n guess again >>");
guess = Convert.ToInt32(Console.ReadLine());
}
if (guess == rnd)
{
Console.Write("You guessed right my number is" + rnd + "and you needed " + trys + "trys");
run = false;
Console.WriteLine("Do you wann play again? Press R + Enter to play again!");
string rerun = Console.ReadLine().ToUpper();
if (rerun == "R")
{
run = true;
trys = 0;
Console.Clear();
}
else
{
run = false;
break;
}
}
trys++;
}
}
Console.Clear();
Console.WriteLine("Thanks for palying see you next time!");
Console.ReadLine();
}
}
作業コードがあり、改善方法を知りたいのであれば、代わりに[codereview.se]に投稿する必要があります。 – JJJ
20の推測値は1から100の間ではあまりにも多いです。可能な数字のスペースを2で割っているので、 '1 +(log(100)/ log(2) ..単に礼状 – Benj
'rndnr.Next(1、100)'を呼び出す場合は、1と99の間の数字を取得します.1と100ではなく、 'Random'をインスタンス化しないでください。タイトなループで繰り返される数字につながる可能性があります。そのために入るのは良い習慣です。 – Enigmativity