1.使用GUID實現真正的隨機數
2.重複遊戲
3.計算分數
using System;
using System.Diagnostics;
namespace 猜拳小遊戲
{
/// <summary>
/// 0代表石頭,1代表剪刀,2代表布
/// 三局兩勝,結束打印出分數和勝利者
/// </summary>
class Program
{
static void Main(string[] args)
{
int yourScore = 0; //你的分數
int computerScore = 0; //電腦的分數
string[] descs = new string[3] { "石頭","剪刀","布"};
Console.WriteLine("開始玩猜拳小遊戲!");
while (true)
{
for (int i = 0; i < 3; i++)
{
Console.WriteLine("輸入你出什麼?");
string yourDesc = string.Empty;
int yourSelector = -1;
while (true)
{
yourDesc = Console.ReadLine();
if(yourDesc == "石頭")
{
yourSelector = 0;
break;
}
else if(yourDesc == "剪刀")
{
yourSelector = 1;
break;
}
else if(yourDesc == "布")
{
yourSelector = 2;
break;
}
else
{
Console.WriteLine("輸入錯誤,情重新輸入!");
}
}
Console.WriteLine("你選擇的是" + yourDesc);
int computerSelector = GetRandomByGuid(0, 3);
string result = string.Empty;
switch (IsWin(yourSelector,computerSelector))
{
case 0:
result = "你輸了!";
computerScore++;
break;
case 1:
result = "平局!";
break;
case 2:
result = "你贏了!";
yourScore++;
break;
default:
break;
}
Console.WriteLine(computerSelector + "計算機選擇" + descs[computerSelector]+" "+result);
}
Console.WriteLine("電腦分數:"+computerScore);
Console.WriteLine("你的分數:"+yourScore);
string winer="";
if (computerScore > yourScore)
winer = "勝利者:電腦";
else if (computerScore < yourScore)
winer = "勝利者:你";
else
winer = "平手";
Console.WriteLine("最終結果:"+winer);
Console.WriteLine("是否需要重來:輸入1重來,輸入其他退出!");
char other = Console.ReadKey().KeyChar;
if(other!='1')
{
return;
}
}
}
/// <summary>
/// 判斷一局的正負
/// </summary>
/// <param name="yourSelector"></param>
/// <param name="computerSelector"></param>
/// <returns></returns>
static int IsWin(int yourSelector,int computerSelector)
{
if (yourSelector == computerSelector)
return 1;
else if (
yourSelector == 0 && computerSelector == 1
||
yourSelector == 1 && computerSelector == 2
||
yourSelector == 2 && computerSelector == 0
)
{
return 2;
}
return 0;
}
/// <summary>
/// 使用Guid產生的種子生成真隨機數
/// </summary>
static int GetRandomByGuid(int min,int max)
{
Random random = new Random(GetRandomSeedbyGuid());
int randNum = random.Next(min,max);
return randNum;
}
/// <summary>
/// 使用Guid生成種子
/// </summary>
/// <returns></returns>
static int GetRandomSeedbyGuid()
{
return new Guid().GetHashCode();
}
}
}