Java 如何将分数正确地分配给球员?

Java 如何将分数正确地分配给球员?,java,arrays,Java,Arrays,我有一个有3名玩家的阵法和一个有几个异能的阵法 String[] array_Player = {"Celine", "Amelia", "Olivia"}; int[] array_power_1 = {4,2,10}; 力量最小的球员得2分,最好的得6分 我想得到这个结果: Celine | power 4 => points 4 Amelia | power 2 => points 2 Olivia | powe

我有一个有3名玩家的阵法和一个有几个异能的阵法

String[] array_Player = {"Celine", "Amelia", "Olivia"};
int[] array_power_1 = {4,2,10};
力量最小的球员得2分,最好的得6分

我想得到这个结果:

Celine | power 4 => points 4 
Amelia | power 2 => points 2 
Olivia | power 10 => points 6 
以下是我目前的结果:

Celine | power 4 => points 2
Amelia | power 2 => points 4 
Olivia | power 10 => points 6 
我的观点没有正确的归属

我认为我的数组\u点\u幂法不正确

public static void array_point_power(String[] array_Player, int[] array_point){

      int points = 2;

      for(int i=0; i<array_Player.length; i++){
          array_point[i] = points;
          points = points + 2;
      }
  }
这是我的密码:

import java.util.*;

class Main {
  public static void main(String[] args) {
    
    String[] array_Player = {"Celine", "Amelia", "Olivia"};
    int[] array_power_1 = {4,2,10};
    int[] array_point_1 = new int[3];
    
    System.out.println("Round 1 : ");
    array_point_power(array_Player, array_point_1);
    affichage_round(array_Player, array_power_1, array_point_1);

  }

   public static void array_point_power(String[] array_Player, int[] array_point){

      int points = 2;

      for(int i=0; i<array_Player.length; i++){
          array_point[i] = points;
          points = points + 2;
      }
  }


  public static void affichage_round(String[] array_Player, int[] array_power, int[] array_point) {

    for(int i=0; i<array_Player.length; i++){
            System.out.println("Joueur " + array_Player[i] + " | Puissances " +  array_power[i] + " | Points " + array_point[i] );
        }

  }

}
谢谢你的帮助。

在阵法中,你从不比较玩家的力量,你只是按顺序分配分数

你必须根据球员的实力对他们进行排序,然后再对分数进行奖励。 为此,最好创建一个包含玩家名称和力量的玩家对象,并且在数组中

力量-你从不比较玩家力量-你只是按顺序分配分数

你必须根据球员的实力对他们进行排序,然后再对分数进行奖励。
为此,最好使用名称和权限创建一个Player对象,

更为java的方法是使用封装并创建一个Player类

public class Player {

   private String name;
   private int power;
   private int points;

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

   public String getName() {
       return name;
   }

   public int getPower() {
       return power;
   }

   public void setPoints(int points) {
       this.points = points;
   }

   public int getPoints() {
       return points;
   }
}
然后在你的主课上

public class Main {


   public static void main(String[] args) {

       List<Player> players = new ArrayList<>();
       players.add(new Player("Celine", 4));
       players.add(new Player("Amelia", 2));
       players.add(new Player("Olivia", 10));

       bubbleSort(players);
       array_point_power(players);

       System.out.println("Round 1 : ");
       showResults(players);
   }

   //If the points is based on multiples of 2 you can use i to assign points
   private static void array_point_power(List<Player> players) {
       for (int i = 0; i < players.size(); i++) {
           players.get(i).setPoints(i * 2 + 2);
       }
   }

   //Make a simple bubble sort based on the players powers
   private static void bubbleSort(List<Player> players) {
       for (int i = 0; i < players.size(); i++) {
           for (int j = 0; j < players.size(); j++) {
               if (players.get(i).getPower() < players.get(j).getPower()) {
                   Player temp = players.get(i);
                   players.set(i, players.get(j));
                   players.set(j, temp);
               }
           }
       }
   }

   private static void showResults(List<Player> players) {
       for (int i = 0; i < players.size(); i++) {
           System.out.println("Joueur " + players.get(i).getName() + 
                              " | Puissances " + players.get(i).getPower() + 
                              " | Points " + players.get(i).getPoints());
       }
   }
}

一种更为java的方法是使用封装并生成一个播放器类

public class Player {

   private String name;
   private int power;
   private int points;

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

   public String getName() {
       return name;
   }

   public int getPower() {
       return power;
   }

   public void setPoints(int points) {
       this.points = points;
   }

   public int getPoints() {
       return points;
   }
}
然后在你的主课上

public class Main {


   public static void main(String[] args) {

       List<Player> players = new ArrayList<>();
       players.add(new Player("Celine", 4));
       players.add(new Player("Amelia", 2));
       players.add(new Player("Olivia", 10));

       bubbleSort(players);
       array_point_power(players);

       System.out.println("Round 1 : ");
       showResults(players);
   }

   //If the points is based on multiples of 2 you can use i to assign points
   private static void array_point_power(List<Player> players) {
       for (int i = 0; i < players.size(); i++) {
           players.get(i).setPoints(i * 2 + 2);
       }
   }

   //Make a simple bubble sort based on the players powers
   private static void bubbleSort(List<Player> players) {
       for (int i = 0; i < players.size(); i++) {
           for (int j = 0; j < players.size(); j++) {
               if (players.get(i).getPower() < players.get(j).getPower()) {
                   Player temp = players.get(i);
                   players.set(i, players.get(j));
                   players.set(j, temp);
               }
           }
       }
   }

   private static void showResults(List<Player> players) {
       for (int i = 0; i < players.size(); i++) {
           System.out.println("Joueur " + players.get(i).getName() + 
                              " | Puissances " + players.get(i).getPower() + 
                              " | Points " + players.get(i).getPoints());
       }
   }
}

现在你的阵列\u点\u功率不是比较功率。你只需按顺序分配分数。如果你想保持阵法的力量,你需要在执行阵法后按力量顺序提升你的玩家_power@KunLun:谢谢您的帮助,但是如何比较我的数组\u点\u幂法中的数组\u幂\u 1和数组\u点\u幂?我不明白。我说的是比较玩家在阵法中的力量。你需要找到较低的,在较低之后的下一个,依此类推,以知道如何分配分数。现在你的数组\u点\u幂不是比较幂。你只需按顺序分配分数。如果你想保持阵法的力量,你需要在执行阵法后按力量顺序提升你的玩家_power@KunLun:谢谢您的帮助,但是如何比较我的数组\u点\u幂法中的数组\u幂\u 1和数组\u点\u幂?我不明白。我说的是比较玩家在阵法中的力量。你需要找到下一个,下一个等,知道如何分配分数。谢谢你的帮助。我必须创建一个排序气泡方法?如果您按照链接的答案进行操作,您可以使用Arrays.sortplayers谢谢您的帮助。我必须创建一个排序气泡方法?如果您按照链接的答案操作,您可以使用数组。SortPlayers非常感谢您的帮助。我是初学者,我们只学过程编程,不学面向对象编程。我被你的密码迷住了-非常感谢你的帮助。我是初学者,我们只学过程编程,不学面向对象编程。我被你的密码迷住了-谢谢,非常感谢Voinea Radu解决了我的问题。我被封锁了三天。非常感谢。谢谢,非常感谢Voinea Radu解决了我的问题。我被封锁了三天。非常感谢你。