按照Android游戏中的分数排序玩家名称

时间:2013-03-11 14:12:02

标签: java android sorting scoring

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

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

}

任何人都可以帮助我使用什么并指导我实现这一目标吗?非常感谢你。

2 个答案:

答案 0 :(得分:2)

  1. 制作一个包含用户名和号码的class Score implements Comparable
  2. compareTo()实施ScoreComparable界面需要。{/ li>
  3. 将所有分数插入例如ArrayList
  4. 致电Collections.sort(yourList)
  5. 快乐:)

答案 1 :(得分:0)

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

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