需要帮助hangman c#

时间:2015-06-19 19:13:49

标签: c#

当我试图跑步时,它说:

  

System.Collections.Generic.List'不包含'Length'的定义,并且没有扩展方法'Length'接受类型'System.Collections.Generic.List'的第一个参数可以找到(你错过了吗?使用指令或程序集引用?)

这指向用'3'编写的代码。我已经使用谷歌并尝试阅读本书,但我似乎无法找到解决方案。

    static void Main (string[] args)
    {           
        char meny;// För att kunna göra menyval.            
        string s;// Ordet som spelaren kommer skriva in.
        List<string> dinaord = new List<string> { "Varg", "Apor", "Besvärad", "Människor", "Komplettering" };// Array för spelarens ord, samt mina egna.
        bool visameny = true; // visameny blir tilldelat true.

        Console.WriteLine("\n\t\tHejsan, och välkommen till Hänga Gumma!");

        do// Återvänder till menyn så länge den är true.
        {
            Console.WriteLine("\n\n  1) Lägga till ord");
            Console.WriteLine("\n  2) Lista alla ord");
            Console.WriteLine("\n  3) Spela");
            Console.WriteLine("\n  4) Avsluta");// Visar 1-4, samt vad varje nummer leder till.
            Console.WriteLine("\n\n  Välj 1-4");
            meny = Convert.ToChar(Console.ReadLine());// Konverterar det spelaren väljer till "meny".

            switch (meny)// Switchen börjar.
            {
                case '1':
                    Console.Write("\nLägg till ord:");
                    dinaord.Add(Console.ReadLine());// Låter spelaren slå in ord och sparar dem i en array. Ändrade till en Console.ReadLine.                                                                       

                    break;

                case '2':// Mina egna ord.

                    dinaord.Sort();// Flyttade sorteringen hit, för att få den till att sortera orden när man trycker två.   
                    Console.Write("\nHär visas dina ord!\n");
                    int i = 1;
                    foreach (string ord in dinaord)// Löste detta med hjälp av dina anvisningar att titta igenom kapitlet igen och försöka olika koder.
                    {
                        Console.Write(ord + " ");// Här visas spelarens ord, (om dem har lagt till några) samt mina egna ord.
                    }

                    break;

                case '3':// Här ska spelet starta.

                    int antalchanser;// antalchanser görs om till en int för att senare jämföras.
                    int felgissningar = 0;// felgissningar görs om en till en int, och får värdet 0, för att senare jämföras med antalchanser och kommer att leda till att spelet avslutas om felgissningar blir lika med antalchanser.
                    Console.Write("\nHur många fel får man ha?");
                    antalchanser = Convert.ToInt32(Console.ReadLine());// Gör så att det spelaren skriver in blir till "antalchanser".
                    Console.Write("\nFelgissningar:0/" + antalchanser);// Visar antal felgissningar.

                    Console.Write("\nGissa ett ord:");
                    s = Convert.ToString(Console.ReadLine());// Ordet som ska sökas efter. 

                    int o;
                    for (o = 0; o < dinaord.Length; o++)// Söker igenom arrayn dinaord och jämförs med det spelaren har skrivit in.
                        if (dinaord[o] == s)
                        {
                            Console.WriteLine("\nGrattis du gissa rätt!" + dinaord[o] +
                                " var det hemliga ordet ");
                            break;// Bryter satsen om dem gissar rätt.
                        }

                    if (o == dinaord.Length)

                    { 
                        Console.WriteLine("\nDu gissa fel!");                        
                    felgissningar++;// Lägger till +1 på felgissningar om dem gissar fel.
                    }

                    if (felgissningar == antalchanser)// Jämför felgissningar med antalchanser.

                    {    
                        Console.WriteLine("\nDu har inga chanser kvar! Tack för att du spelade Michaels ofulländade version!");
                        visameny = false;// visameny blir false, avbryter spelet om antalchanser tar slut.
                    }

                    if (felgissningar != antalchanser)// Kollar om felgissningar inte är lika med antalchanser.
                    {
                        Console.WriteLine("\nGissa igen:");
                    }
                        break;

                case '4':
                    {
                        Console.WriteLine("\nSpelet avslutas!");
                        Console.WriteLine("\nTack för att du spelade Michael´s ofulländade version!");
                        visameny = false;// visameny blir false, avbryter spelet.
                    }
                        break;

                default:// Ifall annat än 1-4 knappas in, visas detta.
                        Console.WriteLine("\n\tDu får inte trycka på den!" +
                        "\n\tAnvänd bara det som står på skärmen: 1-4");
                        break;


            }// Switchen slutar.



        } while (visameny == true);// Fortsätter loopen så länge den är true.
    }
}

}

2 个答案:

答案 0 :(得分:3)

List不是数组。本机数组(string[])具有Length属性,但List<T>具有Count属性。所以你只需要:

for (o = 0; o < dinaord.Count; o++)

答案 1 :(得分:2)

猜猜你正在寻找dinoard.Count而不是长度。你也可以像使用'2'那样使用foreach,这对你来说很舒服。