Программа не перейдет к следующему методу - PullRequest
0 голосов
/ 11 июля 2020

Моя программа не перейдет к следующему методу после выполнения основного метода. Прямо сейчас он просто печатает «Эй! Добро пожаловать в игру в кости Тины. Давайте начнем!» И останавливается. Как это исправить? Я возился с ним какое-то время, но ничего не помогло. Спасибо за вашу помощь.

using System;

namespace Major_Coding_Assignment_1
{
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hey! Welcome to Tina's Dice Game.");
        Console.WriteLine("Let's start!");
    }
    public static int numberofInvokes = 0;
    public void EvenOrOdd()
    {
        numberofInvokes += 1;
        Random rnd = new Random();
        int x = rnd.Next(1, 7);
        int y = rnd.Next(1, 7);
        int added = x + y;

        if (added % 2 == 0)
        {
            Console.WriteLine("I got" + " " + x + " " + "and" + " " + y);
            Console.WriteLine("Evens are better than odds.");
        }

        else
        {
            Console.WriteLine("I got" + " " + x + " " + "and" + " " + y);
            Console.WriteLine("Odds are still cool!");
        }
    }
    public void playAgain()
    {
        Console.WriteLine("Do you want to play again?");

        string val = Console.ReadLine();

        if (val == "yes")
        {
            EvenOrOdd();
        }

        else
        {
            Console.WriteLine("The number of times the dice was thrown is:" + " " + numberofInvokes);
            Console.WriteLine("Thanks for playing, come play again soon!");
        }
    }
}

}

Ответы [ 2 ]

0 голосов
/ 11 июля 2020

Вам нужно вызвать нужные вам методы из основной функции следующим образом ...

static void Main(string[] args)
{
    Console.WriteLine("Hey! Welcome to Tina's Dice Game.");
    Console.WriteLine("Let's start!");
    EvenOrOdd();
    playAgain();
}

Лучше всего вызвать playAgain внутри EvenOrOdd метода, чтобы все выглядело чище.

static void Main(string[] args)
{
    Console.WriteLine("Hey! Welcome to Tina's Dice Game.");
    Console.WriteLine("Let's start!");
    EvenOrOdd();
}
public static int numberofInvokes = 0;
public void EvenOrOdd()
{
    numberofInvokes += 1;
    Random rnd = new Random();
    int x = rnd.Next(1, 7);
    int y = rnd.Next(1, 7);
    int added = x + y;

    if (added % 2 == 0)
    {
        Console.WriteLine("I got" + " " + x + " " + "and" + " " + y);
        Console.WriteLine("Evens are better than odds.");
    }

    else
    {
        Console.WriteLine("I got" + " " + x + " " + "and" + " " + y);
        Console.WriteLine("Odds are still cool!");
    }
    playAgain(); //Call playAgain from here.
}
public void playAgain()
{
    Console.WriteLine("Do you want to play again?");

    string val = Console.ReadLine();

    if (val == "yes")
    {
        EvenOrOdd();
    }

    else
    {
        Console.WriteLine("The number of times the dice was thrown is:" + " " + numberofInvokes);
        Console.WriteLine("Thanks for playing, come play again soon!");
    }
}
0 голосов
/ 11 июля 2020

Важно, чтобы вы вызывали свои методы из main. Мне нравится думать об этом, как о том, что основной рецепт - это первая инструкция, но вам нужно сказать читателю, где искать дальше. То же самое верно и для C#, вам нужно указать компилятору, где go следующий, вызвав следующую функцию в основной.

 static void Main(string[] args)
    {
       //your start code       
       nextFunction();
    }
 public void nextFunction(){
       //your next function code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...