【问题标题】:sorting player names by their scores in android game在安卓游戏中按分数对玩家姓名进行排序
【发布时间】:2013-02-26 18:10:58
【问题描述】:

我正在制作一个拼字游戏应用程序,我想制作一个系统,玩家可以在其中查看他们的分数以及姓名。分数应该从高到低排列。输出应如下所示: 姓名 分数

Kathy   150
Charm   140
Albert  130
Arvin   120
Angelo  110

我正在尝试使用数组来做到这一点,但我很难做到这一点。

int score[]= new int[4];
        score[0]= 120;
        score[1]= 130;
        score[2]= 140;
        score[3]= 150;

        String names[] = new String[4];
        names[0]= "albert";
        names[1]= "arvin";
        names[2]= "charm";
        names[3]= "kathy";

        Player[] players = new Player[names.length];
        for(int i = 0; i < names.length; i++) {
            players[i] = new Player(names[i], score[i]);

            show.setText((CharSequence) players[i]);

        }

        Arrays.sort(players, new PlayerComparator());


   class PlayerComparator implements Comparator<Player> {
 public int compare(Player p1, Player p2) {
    return p1.getScore() < p2.getScore() ? -1
            : p1.getScore() > p2.getScore() ? 1 : 0;

}
}

public class Player {

private String name;

private int score;

public Player(String name, int score) {
    this.name = name;
    this.score = score;
}

public String getName() {
    return name;
}

public int getScore() {
    return score;
}

public String toString() {
    return "name=" + name + "; score=" + score;
}

}

谁能帮助我使用什么并指导我实现这个目标?非常感谢您。

【问题讨论】:

  • 你的代码在哪里?保存这些数据的结构是什么?
  • 请贴出你已有的代码。
  • 使用objectsArrayListComparable 并覆盖compareTo。问题解决了。尝试使用这些进行编码,如果卡在任何地方,请回到这里。
  • 好的..我会编辑我的帖子..

标签: java android sorting scoring


【解决方案1】:
  1. 创建一个class Score implements Comparable,其中包含用户名和一个号码。
  2. Score 实现compareTo()Comparable 接口需要。
  3. 将所有分数插入到例如ArrayList
  4. 致电Collections.sort(yourList)
  5. 要开心:)

【讨论】:

    【解决方案2】:

    如果您打算使用数组来执行此操作,您将需要跟踪 2 个单独的数组,它们都是整数类型,第一个用于分数,第二个用于它们的位置。使用第二个数组的值来跟踪每个玩家及其各自的得分。根据您使用的语言,通常可以使用标准库中的排序函数和算法来执行从最高到最低的排序或其他排序。

    如果您使用 Java,我建议您使用 HashMap http://docs.oracle.com/javase/6/docs/api/java/util/HashMap.html 这将消除使用 2 个数组,并且我认为会更简单 这就是为什么我建议考虑使用 HashMap 它会使其更简单 希望这会有所帮助

    【讨论】:

      猜你喜欢
      • 2017-06-13
      • 2020-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      • 2017-07-02
      • 1970-01-01
      相关资源
      最近更新 更多