石取りゲームを C言語(C#)で写経してみました。
石取りゲームはいろいろな言語で写経してみましたが、
プログラムを実行して遊んでみてもなかなか勝てませんね。
static void Main(string[] args)
{
int Kazu = 20; //石の数
const int Min = 1; //取れる最少値
const int Max = 3; //取れる最大値
int n;
Console.WriteLine("***** GAME START! *****\n");
while(true)
{
try
{
Console.WriteLine("left: " + Kazu);
Console.Write("how many do you get? (" + Min + " - " + Max +":)");
string s = Console.ReadLine();
n = int.Parse(s);
}
catch
{
n = Min;
}
if (n < Min) n = Min;
if (n > Max) n = Max;
Kazu -= n;
if (Kazu < 0) {Kazu = 0;}
Console.WriteLine("you get " + n + " stones.");
Console.WriteLine("left; " + Kazu);
if (Kazu == 0)
{
Console.WriteLine("\nSorry, you lost...\n");
break;
}
int n2 = (Kazu -1) % (Min + Max);
if (n2 < Min) n2 = Min;
if (n2 > Max) n2 = Max;
Kazu -= n2;
if (Kazu < 0) {Kazu = 0;}
Console.WriteLine("I GOT " + n2 + " stones.");
if (Kazu == 0)
{
Console.WriteLine("\nCongratulations! YOU WIN!!\n");
break;
}
}
Console.Write("(TYPE ANY KEY)");
Console.ReadKey();
}