HOWTO · Csharp
C# でじゃんけんゲームを作成する
この記事では、C# でじゃんけんゲームを作成する方法を学びます。
この記事では、C# を使用してじゃんけんゲームを開発するプロセスについて説明します。Visual Studio を使用して、コンソールアプリ、名前、およびプロジェクトを作成します。
##C# でじゃんけんゲームを作成する
このゲームを作成するには、次の手順に従います。
-
ユーザーからの入力を受け取ります。
-
ランダムに出力を生成します。
-
可能なすべての選択肢を比較します。
-
勝者を宣言します。
-
ゲームを再開します。
このプログラムの操作には、さまざまな関数とメソッドが含まれます。ユーザーの入力が受信されると、システムはそれをシステムによって生成された入力と比較します。
このシステムで生成される入力はランダムになります。したがって、じゃんけんの 3つのオプションのいずれかを提供する可能性があります。両方の入力を受け取ると、条件付きレンダリングを実行します。
条件付きレンダリングは、勝者が発表されるかどうか、または勝者がいないかどうかを判断するための基盤として機能し、抽選が行われます。
using System;
namespace Hello_World {
class Program {
static void Main(string[] args) {}
}
}
これらの行はコードの先頭にあり、通常のプログラムフローが開始されたままになります。
string ui, si;
int r;
Console.Write("What do you choose?\n\n Rock/ Paper/ Scissors? ");
ui = Console.ReadLine();
Random rnd = new Random();
r = rnd.Next(1, 4);
si と ui は、文字列としてのユーザー入力とシステム入力の 2つの変数であるため、ユーザーは選択した完全なスペルを入力する必要があります。r 変数は、コンピューターが選択のために生成する乱数用に作成された整数型変数です。
Console.Write("What do you choose?\n Rock/ Paper/ Scissors? ") ステートメントが画面に書き込まれ、ユーザーに選択内容を入力するように求めます。ui = Console.ReadLine() ステートメントは、ユーザーからの入力を受け取り、それを ui 変数に格納します。
Random rnd = new Random() ステートメントは、後で乱数を生成するために使用される乱数の変数 rnd を作成します。r = rnd.Next(1, 4) ステートメントは、1 から 3 の範囲のランダムを生成し、それを r 変数に格納します。
switch (r) {
case 1:
si = "Rock";
Console.WriteLine("Computer chose Rock");
if (ui == "Rock" || ui == "rock") {
Console.WriteLine("\nIt is a draw");
} else if (ui == "Paper" || ui == "paper") {
Console.WriteLine("\nYou Win!");
} else {
Console.WriteLine("\nYou Lose!");
}
break;
}
switch() では、r 変数が 1 から 4 までの任意の数を保持する場合のオプションを検討します。ケース 1 では、乱数が 1 であるかどうかを確認し、1 である場合は、システム入力 si を設定します。ロックする変数。
その後、Console.WriteLine("Computer chose Rock") ステートメントを使用してコンソールに書き込みます。このステートメントは、コンピューターがロックを選択した画面に出力されます。次に、if 条件を使用して、ユーザーが選択のために入力した内容を確認します。
if (ui == "Rock"||ui == "rock") ステートメントは、もしユーザーも rock を入力したら、それは抽選で、Console.WriteLine("\nIt is a draw") によってスクリーンにプリントされるのをチェックします。そうでなければ、else if(ui == "Paper"||ui == "paper") で rock でなく、ユーザーが入力したのは paper かどうかを確認します。
yes の場合、ユーザーが勝ちました。これは Console.WriteLine("\nYou Win!"); によって出力されます。
チェックした両方のオプションをユーザーが入力しなかった場合、ユーザーがはさみを入力したことは明らかであるため、ユーザーは負けました。そのため、最後に else を使用しました。これにより、You Lose!が印刷されます。
最後に、break ステートメントを使用して switch() を終了します。
case 2:
si = "Paper";
Console.WriteLine("Computer chose Paper");
if (ui == "Rock" || ui == "rock") {
Console.WriteLine("\nYou Lose!");
} else if (ui == "Paper" || ui == "paper") {
Console.WriteLine("It is a draw");
} else {
Console.WriteLine("You win");
}
break;
ケース 2 では、乱数が 2 の場合、システム入力 si 変数を paper に設定していることを確認します。その後、Console.WriteLine("Computer chose Paper") を使用してコンソールに書き込みます。これは、コンピューターが紙を選択した画面に印刷されます。
次に、if 条件を使用して、ユーザーが選択のために入力した内容を確認しました。if (ui == "Rock"||ui == "rock") ステートメントは、もしユーザーが rock も入力したなら、ユーザーが負けることをチェックし、そのことを Console.WriteLine("\nYou Lose!"); によってスクリーンにプリントします。
そうでない場合は、else if(ui == "Paper"||ui == "paper") でロックされていないかどうかを確認します。ユーザーが入力したのは紙ですか。はいの場合、それは引き分けです。そして、それは Console.WriteLine("It is a draw"); によって印刷されます。
ユーザーがチェックした両方のオプションを入力しなかった場合、ユーザーがはさみを入力したことは明らかであるため、ユーザーはゲームに勝ちます。そのため、最後に else を使用しました。これは Console.WriteLine("You win"); によって出力されます。
break ステートメントは、switch() を終了するために使用されます。
case 3:
si = "Scissors";
Console.WriteLine("Computer chose Scissors");
if (ui == "Rock" || ui == "rock") {
Console.WriteLine("\nYou Win!");
} else if (ui == "Paper" || ui == "paper") {
Console.WriteLine("You Lose");
} else {
Console.WriteLine("It is a draw");
}
break;
ケース 3 では、乱数が 3 の場合、システム入力 si 変数をはさみに設定することを確認します。その後、コンピュータがはさみを選択した画面に印刷される Console.WriteLine("Computer chose Scissors") という行を書き、コンピュータがハサミを選んだことを画面に表示します。
次に、if 条件を使用して、ユーザーが選択のために入力した内容を確認します。if (ui == "Rock"||ui == "rock") 行は、ユーザーがロックも入力したかどうかをチェックし、ユーザーが勝ったら Console.WriteLine("\nYou Win!"); の行でスクリーンにプリントされます。
そうでない場合は、else if(ui == "Paper"||ui == "paper") 行でロックされていないかどうかを確認します。ユーザーが入力したのは紙ですか。yes の場合、ユーザーはゲームに負けます。そして、それは Console.WriteLine("You Lose"); によって印刷されます。
ユーザーがチェックした両方のオプションを入力しなかった場合、ユーザーがはさみを入力したことは明らかであるため、ゲームは引き分けです。そのため、最後に else を使用しました。これは Console.WriteLine("It is a draw"); によって出力されます。
default:
Console.WriteLine("invalid entry!");
break;
switch スコープの最後に、default:も使用しました。これは、一致するケースがない場合に実行される一種のデフォルトケースです。r 変数の値が 1 から 3 以外の場合、これは安全上の予防措置です。
次に、画面に invalid entry!と印刷します。Console.WriteLine("invalid entry!"); を使用します。
必要に応じて、乱数変数 r を使用して決定が行われるため、コードで si 変数を作成して使用することはできません。
ユーザーに yes または no と入力してゲームを再度プレイする場合は、次のコードを使用する必要があります。
using System;
namespace Hello_World {
class Program {
static void Main(string[] args) {
bool play = true;
string q;
while (play) {
// all the above code of the game goes here
Console.WriteLine("\nDo you want to play again? ");
q = Console.ReadLine();
if (q == "yes" || q == "Yes") {
continue;
} else if (q == "no" || q == "No") {
play = false;
} else {
Console.WriteLine("invalid entry!\nQuiting...!");
play = false;
}
}
}
}
}
while ループで使用される bool タイプの play 変数を作成しました。最初は true に設定されているため、play 変数が false に設定されるまで、ループは無限に実行されます。
すべてのゲームコードを while ループに配置し、その後、Console.WriteLine(" \nDo you want to play again? "); を使用して、ユーザーにもう一度プレイするかどうかを尋ねることができます。ユーザーが入力するものはすべて、q= Console.ReadLine(); という行を使用して q 変数に格納されます。
その後、再び if 条件を使用して、ユーザーが入力した内容を確認します。
if(q=="yes"||q=="Yes") ステートメントは、ユーザーの入力が yes または no に相当するかどうかをチェックします。ユーザーが yes を入力した場合、continue ステートメントを使用して残りのループステートメントをスキップし、ループを最初から開始します。
ユーザーが yes を入力せず、代わりに no を入力した場合、条件 else if(q=="no"||q=="No") が true になり、play 変数は次のようになります。play=false; の行で false に設定すると、ループが停止し、プログラムが終了します。
また、ユーザーが yes または no 以外の何かを入力した場合は、Console.WriteLine("invalid entry!\nQuiting...!"); によって invalid entry! がスクリーンに表示されます。そして、play は再び false になり、プログラムは終了します。
完全なソースコード:
using System;
namespace Hello_World {
class Program {
static void Main(string[] args) {
bool play = true;
string q;
while (play) {
string ui, si;
int r;
Console.Write("What do you choose?\n\n Rock/ Paper/ Scissors? ");
ui = Console.ReadLine();
Random rnd = new Random();
r = rnd.Next(1, 4);
switch (r) {
case 1:
si = "Rock";
Console.WriteLine("Computer chose Rock");
if (ui == "Rock" || ui == "rock") {
Console.WriteLine("\nIt is a draw");
} else if (ui == "Paper" || ui == "paper") {
Console.WriteLine("\nYou Win!");
} else {
Console.WriteLine("\nYou Lose!");
}
break;
case 2:
si = "Paper";
Console.WriteLine("Computer chose Paper");
if (ui == "Rock" || ui == "rock") {
Console.WriteLine("\nYou Lose!");
} else if (ui == "Paper" || ui == "paper") {
Console.WriteLine("It is a draw");
} else {
Console.WriteLine("You win");
}
break;
case 3:
si = "Scissors";
Console.WriteLine("Computer chose Scissors");
if (ui == "Rock" || ui == "rock") {
Console.WriteLine("\nYou Win!");
} else if (ui == "Paper" || ui == "paper") {
Console.WriteLine("You Lose");
} else {
Console.WriteLine("It is a draw");
}
break;
default:
Console.WriteLine("invalid entry!");
break;
}
Console.WriteLine("\nDo you want to play again? ");
q = Console.ReadLine();
if (q == "yes" || q == "Yes") {
continue;
} else if (q == "no" || q == "No") {
play = false;
} else {
Console.WriteLine("invalid entry!\nQuiting...!");
play = false;
}
}
}
}
}