我在為我的游戲整理計分系統(tǒng)時遇到問題。當(dāng)我整理“HighScoresPointsLevel1”數(shù)組時出現(xiàn)問題,因為盡管數(shù)組以正確的順序顯示,但它與“HighScoresNameLevel1”沒有鏈接。換句話說,游戲的高分將分配給隨機玩家的名字。可能的解決方案?我在想,如果我能夠在 array.sort/array.reverse 內(nèi)部傳遞兩個參數(shù)(HighScoresPointsLevel1,HighScoresNameLevel1),但問題是 array.reverse 接受兩個參數(shù)。我認為這會起作用的原因是,通過第一次調(diào)用array.sort,我能夠在數(shù)組“HighScoresLevel1”、“HighScoresNameLevel1”之間建立關(guān)系。這個問題有沒有可能的解決方案。任何幫助,將不勝感激。謝謝。 string PlayersName = "Player's Name"; float[] HighScoresLevel1 = new float[5]; float[] HighScoresPointsLevel1 = new float[5]; string[] HighScoresNameLevel1 = new string[5]; public static void addLastScoreLevel1( float newScore, float newPoints, float[] HighScoresLevel1, float[] HighScoresPointsLevel1, string[] HighScoresNameLevel1, string PlayersName) { if (newScore < HighScoresLevel1[4]) { HighScoresLevel1[4] = newScore; HighScoresPointsLevel1[4] = newPoints; HighScoresNameLevel1[4] = PlayersName; Array.Sort(HighScoresLevel1, HighScoresNameLevel1); Array.Sort(HighScoresPointsLevel1); Array.Reverse(HighScoresPointsLevel1); } }編輯:查看“Kieran Devlin”的反饋后,我已經(jīng)實施了更改,到目前為止效果很好,但我在打印列表時遇到了問題。因此,在我的其他表單中,當(dāng)嘗試在列表框中顯示玩家列表的內(nèi)容時,列表框僅顯示 Game.Player。public partial class MainMenu : Form{ public static List<Player> GetPlayers(float newScore, float newPoints, string PlayersName) { var players = new List<Player>(); var newPlayer = new Player { Name = PlayersName, Points = newPoints, Timer = newScore }; players.Add(newPlayer); var TopTenLevel1 = players.OrderByDescending(x => x.Timer).Take(10); return players; } }public partial class HighScoresMenu : Form{ foreach (var Player in MainMenu.GetPlayers(newScore, newPoints, PlayersName)) { ListBoxLevel1.Items.Add(Player); }}
1 回答

qq_笑_17
TA貢獻1818條經(jīng)驗 獲得超7個贊
使用對象對數(shù)據(jù)進行分組,為您提供更多上下文
public class Player {
public string Name { get; set; }
public int Points { get; set; }
public int Level { get; set; }
}
然后你可以像這樣使用它:
var players = new List<Player>();
var newPlayer = new Player {
Name = "Some name",
Points = 10,
Level = 3
};
highscore.Add(newPlayer);
如果你想獲得一個領(lǐng)域的前十名球員:
var topTenByLevel = players
.OrderByDecending(x => x.Level)
.Take(10);
- 1 回答
- 0 關(guān)注
- 122 瀏覽
添加回答
舉報
0/150
提交
取消