【问题标题】:How to create game highscores with names? [closed]如何用名字创建游戏高分? [关闭]
【发布时间】:2012-11-07 13:52:48
【问题描述】:

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

【问题讨论】:

标签: c#


【解决方案1】:

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

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 之类的东西来存储分数,这将提供更多的结构,并使某些解析稍微容易一些。

如果所有这些听起来都太难了,请尝试找出导致问题的确切步骤。

【讨论】:

    【解决方案2】:

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

    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); });
    

    【讨论】:

      【解决方案3】:

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

      class score
      
      {
          public static int max = 0;
          public static int john = 0;
      
      
      }
      

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

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

      【讨论】:

        【解决方案4】:
        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);
        

        【讨论】:

          【解决方案5】:

          可以试试

           List<Dictionary> myList  
          

          这基本上保留了一对键和值。你应该能够很容易地排序。

          【讨论】:

            猜你喜欢
            • 2012-02-19
            • 2012-11-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-12-29
            • 2011-07-06
            • 1970-01-01
            相关资源
            最近更新 更多