Нужна помощь для увеличения на 1 с помощью цикла for. Увеличивается только на 1 каждый раз - PullRequest
1 голос
/ 07 апреля 2019

Итак, у меня есть метод подсчета очков, который запускается после того, как мы играем, и снова, если пользователь хочет воспроизвести игру.Я показываю оценки в нем.

Например,

Сначала попробуйте:

Game 1 : He scored 20

, затем пользователь решает повторить игру, получает другой счет.Затем я хочу показать это.

Вторая попытка:

Game 1 : He scored 20

Game 2 : He scored 10

Третья попытка: и т. Д.

Game 1 : He Scored 20

Game 2 : He scored 10

Game 3 : He scored 5

Я попытался использовать цикл for внутри foreach, затемпомещая i в другой int

public void HighScore()
        {
            int gameList = 1;
            foreach (var item in Points)
            {
                for (int i = 1; i < Points.Count; i++)
                {
                    gameList = i++;
                }
                Console.WriteLine($"{name} : Game {gameList} Score : {item} : Level [{GameLevel}]");
            }
        }

// Очки - это список Int

// Я хочу изменить номера игр Game 1, 2, 3, 4 ,.

Ответы [ 4 ]

2 голосов
/ 07 апреля 2019

Нет необходимости в for петле:

public void HighScore()
    {
        int gameList = 1;
        foreach (var item in Points)
        {
            Console.WriteLine($"{name} : Game {gameList} Score : {item} : Level [{GameLevel}]");
            gameList++;
        }
    }
1 голос
/ 07 апреля 2019

Попробуйте ниже.

Используйте gameList++ вместо gameList = i++; Унарный оператор приращения

public static void HighScore()
{
    int gameList = 1;
    List<int> Points = new List<int>() { 10,20,39,40,50};

    foreach (var item in Points)
    {
       Console.WriteLine($"Game {gameList} Score : {item}");

        gameList++;

    }
}
1 голос
/ 07 апреля 2019

Во-первых, вам не нужен цикл for. Создайте класс для точки доступа для каждой игры, чтобы хранить их регулярно, как описано выше.

    public class Score
    {
        public Score(int point ,int game)
        {
            Point = point;
            Game = game;
        }

        public int Point { get; set; }
        public int Game { get; set; }


    }

А затем создайте глобальную переменную

List<Score> scores = new List<Score>();

, чтобы вы могли сохранить свой счет и счет игры.

    int point = 10;//any number
    int lastGame = (scores.Any()) ? scores.Last().Game : 0;//this is about first game if no score its first game
    scores.Add(new Score(point, lastGame += 1));

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

foreach(var score in scores){
Console.WriteLine($"Game {score.Game} Point: {score.Point}");

}
    Game  Score
     1      10
     2      20
1 голос
/ 07 апреля 2019
// use like this 
gameList++;

// instead of doing this
gameList = i++;

Надеюсь, теперь вы исправите.

...