C# 如何用名字创造游戏高分?

C# 如何用名字创造游戏高分?,c#,C#,我有一个简单的游戏,我想用名字保存高分,然后在另一个表格上显示,但按分数的降序排列。 我想用txt文件来做,保存是可以的,我只是保存像:Adam,200,John,100等等。显示它们也不是问题,但如何对它们排序?那么,如何将分数与姓名联系起来呢?您需要以一种更明显的结构方式存储它们。例如,您仍然可以使用文本文件,每行有一个条目: Adam,200 John,200 等 然后从文件中读取它们,将每一行解析为HighScoreEntry对象(当然,您必须创建HighScoreEntry类),并将

我有一个简单的游戏,我想用名字保存高分,然后在另一个表格上显示,但按分数的降序排列。
我想用txt文件来做,保存是可以的,我只是保存像:Adam,200,John,100等等。显示它们也不是问题,但如何对它们排序?那么,如何将分数与姓名联系起来呢?

您需要以一种更明显的结构方式存储它们。例如,您仍然可以使用文本文件,每行有一个条目:

Adam,200
John,200

然后从文件中读取它们,将每一行解析为
HighScoreEntry
对象(当然,您必须创建
HighScoreEntry
类),并将其添加到列表中。或者使用LINQ进行转换:

var highScoreEntries = File.ReadLines("highscores.txt")
                           .Select(line => HighScoreEntry.FromLine(line))
                           .ToList();
然后您可以使用:

var orderedScores = highScoreEntries.OrderByDescending(entry => entry.Score);
或者,您可以使用XML之类的东西来存储分数,这将提供更多的结构,并使一些解析稍微容易一些


如果所有这些听起来都太难了,那么试着确定是哪一步导致了问题。

您需要以一种更明显的结构化方式存储它们。例如,您仍然可以使用文本文件,每行有一个条目:

Adam,200
John,200

然后从文件中读取它们,将每一行解析为
HighScoreEntry
对象(当然,您必须创建
HighScoreEntry
类),并将其添加到列表中。或者使用LINQ进行转换:

var highScoreEntries = File.ReadLines("highscores.txt")
                           .Select(line => HighScoreEntry.FromLine(line))
                           .ToList();
然后您可以使用:

var orderedScores = highScoreEntries.OrderByDescending(entry => entry.Score);
或者,您可以使用XML之类的东西来存储分数,这将提供更多的结构,并使一些解析稍微容易一些


如果所有这些听起来都太困难,请尝试确定是哪一步导致了问题。

您可能希望创建一个如下所示的对象:

public class Player  
{  
    string name;  
    long score; // i assume no decimal points  
    // getters/setters
} 
List<Player> players = new List<Player>();  
players.Sort(delegate(Player player1, Player player2) { return player1.score.CompareTo(player2.score); });
然后像这样排序:

public class Player  
{  
    string name;  
    long score; // i assume no decimal points  
    // getters/setters
} 
List<Player> players = new List<Player>();  
players.Sort(delegate(Player player1, Player player2) { return player1.score.CompareTo(player2.score); });
List players=newlist();
排序(委托(player1,player2){返回player1.score.CompareTo(player2.score);});

您可能希望创建一个如下所示的对象:

public class Player  
{  
    string name;  
    long score; // i assume no decimal points  
    // getters/setters
} 
List<Player> players = new List<Player>();  
players.Sort(delegate(Player player1, Player player2) { return player1.score.CompareTo(player2.score); });
然后像这样排序:

public class Player  
{  
    string name;  
    long score; // i assume no decimal points  
    // getters/setters
} 
List<Player> players = new List<Player>();  
players.Sort(delegate(Player player1, Player player2) { return player1.score.CompareTo(player2.score); });
List players=newlist();
排序(委托(player1,player2){返回player1.score.CompareTo(player2.score);});

您需要在项目中使用静态类。 概念是,编写一个类并清除其中的一个数组,我想向您展示一个示例:

class score

{
    public static int max = 0;
    public static int john = 0;


}
现在,您可以通过向类提供更改项目中任何位置的值。您可以创建包含用户名的数组


现在,是时候制作新表单,并绘制标签和按钮了。

您需要在项目中使用静态类。
var scores = File.ReadLines("scores.txt")
    .Select(line => {
            string[] parts = line.Split(',');
            return new { Name = parts[0], Score = int.Parse(parts[1]) };
        })
    .OrderByDescending(highScore => highScore.Score);
概念是,编写一个类并清除其中的一个数组,我想向您展示一个示例:

class score

{
    public static int max = 0;
    public static int john = 0;


}
现在,您可以通过向类提供更改项目中任何位置的值。您可以创建包含用户名的数组

现在,是制作新表单、绘制标签和按钮的时候了。

可以尝试使用

var scores = File.ReadLines("scores.txt")
    .Select(line => {
            string[] parts = line.Split(',');
            return new { Name = parts[0], Score = int.Parse(parts[1]) };
        })
    .OrderByDescending(highScore => highScore.Score);
 List<Dictionary> myList  
列出我的列表
这基本上保留了一对键和值。您应该能够非常轻松地排序的内容。

可以尝试使用

 List<Dictionary> myList  
列出我的列表
这基本上保留了一对键和值。您应该能够非常轻松地排序的内容。

您尝试过什么,诸如此类的人都对如何存储、检索和排序键值对提供了有用的建议。您尝试过什么,诸如此类的人都有关于如何存储、检索和排序键值对的有用建议。