Итак, у меня есть Score Method, который запускается после того, как мы сыграем, и снова, если пользователь хочет переиграть игру. Я показываю баллы в нем.
Такие как
Первая попытка :
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}]");
}
}
//Points - это список Int
// Я хочу изменить номера игр Game 1, 2, 3, 4,.
// use like this
gameList++;
// instead of doing this
gameList = i++;
надеюсь теперь исправишься.
Нет необходимости в цикле for
:
public void HighScore()
{
int gameList = 1;
foreach (var item in Points)
{
Console.WriteLine($"{name} : Game {gameList} Score : {item} : Level [{GameLevel}]");
gameList++;
}
}
Во-первых, вам не нужен цикл 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>();
так что вы можете сохранить свой счет и gameCount.
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
Попробуйте ниже.
Используйте 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++;
}
}
Вы получили ошибку? Очевидно, что вывод не будет таким же, но он ищет «Унарный оператор приращения «++».
Вы каждый раз добавляете длина списка к номеру игры, поэтому игры нумеруются 5, 9, 13 и т. д. Я думаю, что ОП хотел 1, 2, 3.
@iakobski хорошо замечен. Спасибо. Обновил мой ответ.
Вы проверяли это?