C# 限制玩家可以使用的提示数量:C语言中的数字猜测游戏#
我正在设计一个数字猜测游戏,从控制台读取一个4位数的数字。 计算机随机生成4位数字,用户尝试猜测数字及其正确顺序。程序以0A0B或1A3B或4A0B e.t.c的格式返回答案,如果您猜测的数字正确且其位置也正确,则返回a;如果您猜测的数字正确但其位置错误,则返回B 我想实现一个提示系统,当用户键入单词“hint”时,它会提供提示。如何限制用户键入“提示”一词的次数? 这是我目前掌握的代码C# 限制玩家可以使用的提示数量:C语言中的数字猜测游戏#,c#,.net,console,console-application,game-engine,C#,.net,Console,Console Application,Game Engine,我正在设计一个数字猜测游戏,从控制台读取一个4位数的数字。 计算机随机生成4位数字,用户尝试猜测数字及其正确顺序。程序以0A0B或1A3B或4A0B e.t.c的格式返回答案,如果您猜测的数字正确且其位置也正确,则返回a;如果您猜测的数字正确但其位置错误,则返回B 我想实现一个提示系统,当用户键入单词“hint”时,它会提供提示。如何限制用户键入“提示”一词的次数? 这是我目前掌握的代码 static void Main(string[] args) { while (true)
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("********************************");
Console.WriteLine("What number do you think it is ?");
Console.WriteLine("********************************");
Console.WriteLine();
bool GameOver = false;
int[] targetNumber = GenerateRandomNumber(); // Generates the Random Number
while (!GameOver)
{
Console.Write("Answer: ");
string answer = Console.ReadLine(); // Gets an answer from User
if (answer.ToLower() == "hint") // Designed to Provide a hint.
{
int Rando = GenerateRandomNumberforHint(); // function I created
// Console.WriteLine("The Random Number generated was {0}",Rando);
if (Rando == 0)
{
Console.WriteLine("{0}XXX", targetNumber[Rando]);
}
else if (Rando == 1)
{
Console.WriteLine("X{0}XX", targetNumber[Rando]);
}
else if (Rando == 2)
{
Console.WriteLine("XX{0}X", targetNumber[Rando]);
}
else if (Rando == 3)
{
Console.WriteLine("XXX{0}", targetNumber[Rando]);
}
continue;
}
/* Code to check if the number is correct */
Console.ReadLine();
}
}
我需要创建数据结构吗?如果需要,我该如何实现?我对C夏普非常陌生,因此如果您能提供任何帮助,我将不胜感激。我想这正是您想要的:)
int-hitcounter=0;
int lastHint=-1;
而(!GameOver)
{
控制台。写(“回答:”);
字符串answer=Console.ReadLine();
if(answer.ToLower()=“hint”)
{
如果(命中计数器<10)
{
//之前的双重暗示,类似的。
//如果需要更多提示,可以使用稍后的数组或列表
int hint=generaterandomhints();
while(提示==最后提示)
{
hint=generaterandomhints();
}
hitcounter++;
//写下提示
}
其他的
{
//写你达到最大的提示
}
}
}
简单整数变量int numberOfHintsUsed
呢?每次提示后递增,并在提供提示前检查。如果您不知道如何递增整数变量,则需要学习一些C的基础知识,如果您不知道如何使用if
operator@Kaylo17我和谢尔盖在一起。这不是“不是一个很强的语法”,而是“一个连书都懒得读的初学者”。给自己准备一本基本的C#book(21天内完成C#),然后完成它。你基本上会问如何打开冰箱——用厨房的比喻——因为你不是一个好厨师。这完全是超低级的基础。你们可能都是对的。我几天前刚开始,所以我会到达那里。@Kaylo17,作为一个初学者没什么错。但其他人可能是对的。找一本基本的书,并把它读完。这会很有趣!然后再回到你的游戏中来,这会容易得多。谢谢。出于某种原因,我认为答案会非常复杂。如果你不介意的话,你能回答我一个问题吗。我想将提示的数量限制为2。但是,由于生成的数字是随机的,所以它可能会连续两次生成相同的数字。i、 E,它会给我两次相同的提示,然后提示就用完了。有什么方法可以阻止这种情况发生吗?在我的脑海里,我会说,你要么要阻止随机生成器两次生成相同的数字,要么要想办法让hintcounter忽略重复的提示。这是可能的吗?你可以把最后一个提示存储在一个变量中,如果它是相同的,你可以生成另一个,直到你得到一个真正的新提示为止(比如一个cícle)。当然,在你没有得到真正的计数器之前,你不会增加计数器,也不会向用户显示任何内容。对不起,现在我没有足够的时间。只是一些小提示我可以补充:D
int hitcounter = 0;
int lastHint = -1;
while (!GameOver)
{
Console.Write("Answer: ");
string answer = Console.ReadLine();
if (answer.ToLower() == "hint")
{
if (hitcounter < 10)
{
//preveintg double hint. something like that.
//you can use later array or list if you need more hint
int hint = generaterandomhints();
while (hint == lastHint)
{
hint = generaterandomhints();
}
hitcounter++;
//write the hints
}
else
{
//write you reached the maximum of the hints
}
}
}