在 C# 中创建石头剪刀布游戏
本文将讨论使用 C# 开发石头剪刀布游戏的过程。我们将使用 Visual Studio 创建控制台应用程序、名称和项目。
在 C#
中创建石头剪刀布游戏
为了制作这个游戏,我们将遵循以下步骤:
- 接受用户的输入。
- 随机生成输出。
- 比较所有可能的选择。
- 宣布获胜者。
- 重新开始游戏。
该程序的运行将包括多种功能和方法。一旦接收到用户的输入,系统会将其与系统产生的输入进行比较。
该系统产生的输入将是随机的;因此,它可能提供三个选项中的任何一个:石头、布或剪刀。一旦接收到两个输入,它将进行条件渲染。
条件渲染将作为决定是否宣布获胜者或没有获胜者的基础,并进行抽签。
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
是用户输入和系统输入作为字符串的两个变量,因此用户应该输入他们选择的完整拼写。r
变量是为计算机将生成的随机数用于选择的整数类型变量。
Console.Write("What do you choose?\n\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,如果是,我们设置系统输入 si
变摇滚。
之后,我们使用 Console.WriteLine("Computer choose Rock")
语句在控制台上写入,该语句会在屏幕上打印计算机选择 Rock。然后我们使用 if
条件来查看用户输入的内容供他们选择。
if (ui == "Rock"||ui == "rock")
语句检查用户是否也输入了 rock,那么这是一个平局,它将通过 Console.WriteLine("\nIt is a draw")
。如果不是,那么我们将通过 else if(ui == "Paper"||ui == "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
变量设置为布。之后,我们使用 Console.WriteLine("Computer choose Paper")
在控制台上书写,它会在屏幕上打印计算机选择布的信息。
然后,我们使用 if
条件来查看用户输入的内容供他/她选择。if (ui == "Rock"||ui == "rock")
语句检查用户是否也输入了 rock,则用户将输,并通过 Console.WriteLine(" 打印在屏幕上\n 你松了!");
。
如果不是,那么我们通过 else if(ui == "Paper"||ui == "paper")
检查它是否不摇滚,那么用户输入的是布吗?如果 yes
,则为平局。它将由 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 choose Scissors")
行在屏幕上打印计算机选择了剪刀。
然后我们使用 if
条件来查看用户输入的内容供他们选择。if (ui == "Rock"||ui == "rock")
行检查用户是否也输入了 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,这是一种安全预防措施。
然后我们将用 Console.WriteLine("invalid entry!");
在屏幕上打印 invalid entry!
。
如果你愿意,你可能不会在代码中创建和使用 si
变量,因为决策是使用随机数变量 r
做出的。
如果你希望用户输入 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;
}
}
}
}
}
我们创建了一个布尔类型的 play
变量,用于 while
循环。最初,它设置为 true,因此循环将无限运行,直到 play
变量设置为 false。
你可以将所有游戏代码放在 while
循环中,然后,你可以使用 Console.WriteLine("\nDo you want to play again? ");
要求用户再次玩或不玩。无论用户输入什么,都将使用 q= Console.ReadLine();
行存储在 q
变量中。
之后,我们将再次使用 if
条件来查看用户输入的内容。
if(q=="yes"||q=="Yes")
语句检查用户的输入,如果它等于是或否。如果用户输入了 yes
,则 continue
语句用于跳过其余的循环语句并从头开始循环。
如果用户没有输入 yes
而是输入 no
,则条件 else if(q=="no"||q=="No")
为真,play
变量为由 play=false;
行设置为 false,循环将停止,程序将终止。
如果用户输入了除 yes
或 no
之外的任何其他内容,则 invalid entry
将通过 Console.WriteLine("invalid entry!\nQuiting...!");
打印在屏幕上。而 play
将再次为假,程序将终止。
完整源代码:
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;
}
}
}
}
}
相关文章
在 C# 中将 List<string>转换为字符串
发布时间:2024/03/16 浏览次数:198 分类:编程语言
-
在 C# 中,有两种主要方法可用于将 List
转换为字符串变量,Linq 方法和 String.Join()函数。
在 C# 中将 List<string>转换为字符串
发布时间:2024/03/16 浏览次数:171 分类:编程语言
-
在 C# 中,有两种主要方法可用于将 List
转换为字符串变量,Linq 方法和 String.Join()函数。
在 C# 中将 List<string>转换为字符串
发布时间:2024/03/16 浏览次数:187 分类:编程语言
-
在 C# 中,有两种主要方法可用于将 List
转换为字符串变量,Linq 方法和 String.Join()函数。
在 C# 中发出 HTTP POST Web 请求
发布时间:2024/02/04 浏览次数:131 分类:编程语言
-
在 C# 中,可以使用 3 种主要方法来发出 HTTP POST Web 请求:WebClient 类,HttpWebRequest 类和 HttpClient 类。本教程将讨论在 C# 中发出 HTTP POST Web 请求的方法。使用 C# 中的 WebClient 类发出 HTTP POST Web 请求
在 C# 中运行命令提示符命令
发布时间:2024/02/04 浏览次数:130 分类:编程语言
-
Process 类可用于在 C# 中运行命令提示符命令。在 C# 中使用 Process.Start() 函数运行命令提示符命令
在 C# 中调整图像大小
发布时间:2024/02/04 浏览次数:203 分类:编程语言
-
有两种主要方法可用于在 C# 中调整图像的大小,Bitmap 类构造函数和 graphics.DrawImage()函数。在本教程中,我们将讨论在C#中调整图像大小的方法。我们将带您完成整个过程,从加载原始图像到保
在 C# 中下载图片
发布时间:2024/02/04 浏览次数:138 分类:编程语言
-
有 3 种主要方法可用于下载 C# 中的图片,WebClient.DownloadFile()函数,Bitmap 类和 Image.FromStream()函数。在 C# 中使用 WebClient 类下载图片 WebClient 类提供了用于向 C# 中的 URL 发送数据和从 URL 接收数据
在 C# 中使用秒表
发布时间:2024/02/04 浏览次数:139 分类:编程语言
-
我们可以使用 Stopwatch 类来计算 C# 中的经过时间。使用 C# 中的秒表类计算经过时间 Stopwatch 类在 C# 中准确测量经过的时间。
在 C# 中获取可执行路径
发布时间:2024/02/04 浏览次数:200 分类:编程语言
-
有 3 种主要方法可用于获取 C# 中程序的可执行路径,即 Assembly 类,AppDomain 类和 Path 类。本教程将介绍获取 C# 代码的可执行路径的方法。使用 C# 中的 Assembly 类获取可执行路径