Печать высоты раундом изменения значения объекта - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь напечатать высоту моего объекта за раундом.Начинается на высоте 100 футов.Уловка в том, что он может идти вверх или вниз в зависимости от того, сколько энергии расходуется за ход.Я с трудом пытаюсь учесть случаи, когда я бы превысил 100 - начальную начальную высоту.Цель - звездочка, которая появится рядом с высотой gameObject, округляя до ближайшего значения 10;

Я пытался увеличить I, когда выполняется противоположное условие, но он просто заполняет консоль.Возможно, мое чувство логики здесь совсем не так.

public void printlocation(Object gameObject)
{
    int heightToPrint = (gameObject.GetHeight() - (gameObject.GetHeight() % 10));

    for (int i = heightToPrint; i >= 0; i -= 10)
    {
        if (i == heightToPrint)   
        {
            Console.WriteLine($"{i}m:*");
        }
        else
        {
            Console.WriteLine($"{i}m:");
        }
    }
}

В нынешнем виде он печатает звездочки для каждой итерации цикла for.

1 Ответ

0 голосов
/ 16 апреля 2019

Вы написали else if (i >= heightToPrint) вместо else if (i == heightToPrint).Также не делайте i += 10; в теле цикла.Вы уже просматриваете все значения от 100 до 0. Не имеет значения, перемещался объект вверх или вниз.Просто напечатайте «*» на той высоте, на которой он находится.

Но вы можете сделать это проще с

public void printlocation(Object gameObject)
{
    int heightToPrint = gameObject.GetHeight() % 10;

    for (int i = 100; i >= 0; i -= 10)
    {
        Console.WriteLine($"{i}m:{(i == heightToPrint ? "*" : "")}");
    }
}
...