首页 > 解决方案 > 无法调用方法 endgame()

问题描述

所以对于主类,我只有这个代码。调用 cClass。这是一个骰子游戏

{
class Program
{
    static void Main(string[] args)
    {
        cClass cs = new cClass();

    }
}

对于 Constructor 类,即 cClass,我有这个代码。该方法endgame()不起作用。这就是问题所在,当骰子游戏完成战斗时,endgame()它不起作用。

class cClass
{
    
    public cClass()
    {
        Intialize();
    }

    public void Intialize()
    {
        sClass.round = 1;
        while (sClass.com < 3 && sClass.player < 3)
        {
        start:
            Console.WriteLine("Round (" + sClass.round + ")");
            Console.WriteLine("Enter your guess: ( 1 - 6)");
            sClass.guess = Convert.ToInt32(Console.ReadLine());
            if (sClass.guess >= 7)
            {
                Console.WriteLine("Only enter number ranges from 1 - 6");
                Console.ReadLine();
                Console.Clear();
                goto start;
            }
            sClass.playgame();

            System.Threading.Thread.Sleep(1000);
            Console.WriteLine("\nThe dice rolled is...");
            Console.WriteLine(sClass.playerdie);

            Console.WriteLine("\nPlayer guessed: " + sClass.guess);
            Console.WriteLine("Computer guessed: " + sClass.comguess);
            if ((sClass.comguess == sClass.playerdie) && (sClass.guess == sClass.playerdie))
            {
                Console.WriteLine("\nBoth guessed correctly! Restarting the round!\n");
                Console.WriteLine("Player points: " + sClass.player);
                Console.WriteLine("Computer points: " + sClass.com);
            }
            else if (sClass.guess == sClass.playerdie)
            {
                sClass.player++;
                Console.WriteLine("\nPlayer guessed correctly you won!\n");
                Console.WriteLine("Player points: " + sClass.player);
                Console.WriteLine("Computer points: " + sClass.com);
                sClass.round++;
            }
            else    if (sClass.comguess == sClass.playerdie)
            {
                sClass.com++;
                Console.WriteLine("\nComputer guessed correctly you lost...\n");
                Console.WriteLine("Player points: " + sClass.player);
                Console.WriteLine("Computer points: " + sClass.com);
                sClass.round++;
            }
            else
            {
                Console.WriteLine("\nNo one got it correct restarting the round!\n");
                Console.WriteLine("Player points: " + sClass.player);
                Console.WriteLine("Computer points: " + sClass.com);
            }
            Console.ReadLine();
            Console.Clear();
        }
        endgame();
    }
    
    

    public void endgame()
    {
        if (sClass.player > sClass.com)
        {
            Console.WriteLine("Player Win! Player vs Computer");
            Console.WriteLine("               (" + sClass.player + ") vs (" + sClass.com + ")");
        }
        else if (sClass.player < sClass.com)
        {
            Console.WriteLine("Computer Win! Player vs Computer");
            Console.WriteLine("               (" + sClass.player + ") vs (" + sClass.com + ")");
        }
        else
        {
            Console.WriteLine("Its a draw! Player vs Computer");
            Console.WriteLine("                (" + sClass.player + ") vs (" + sClass.com + ")");
        }
    }
}

然后我还有一个静态类,就是sClass。

 static class sClass
{
    public static int dice = 1;
    public static int playerdie;
    public static int guess;
    public static int comguess;
    public static int player;
    public static int com;
    public static int round;
    public static Random r = new Random();

    
    public static void playgame()
    {
        
        comguess = r.Next(1, 6);
        playerdie = rolldie();

    }

    public static int rolldie()
    {
        int die = r.Next(1, 6);
        return die;
    }
}

标签: c#

解决方案


所以,你刚才说没有错误。我想你只是错过了 1 个代码。在cClass.cs转到Initialize()方法中,转到endgame()然后把Console.ReadLine上面的endgame

endgame();
Console.ReadLine();

然后它会显示endgame方法。


推荐阅读