C# 限制玩家可以使用的提示数量:C语言中的数字猜测游戏#

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)

我正在设计一个数字猜测游戏,从控制台读取一个4位数的数字。 计算机随机生成4位数字,用户尝试猜测数字及其正确顺序。程序以0A0B或1A3B或4A0B e.t.c的格式返回答案,如果您猜测的数字正确且其位置也正确,则返回a;如果您猜测的数字正确但其位置错误,则返回B

我想实现一个提示系统,当用户键入单词“hint”时,它会提供提示。如何限制用户键入“提示”一词的次数? 这是我目前掌握的代码

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
        }
    }
}