Advertisement
Guest User

leaderboard.java

a guest
Jan 22nd, 2019
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.81 KB | None | 0 0
  1. import org.jetbrains.annotations.Contract;
  2.  
  3. import java.util.*;
  4.  
  5. public class leaderboard {
  6.   static List<Object> scores = new ArrayList<>();
  7.   private String username, displayArray, password;
  8.   private int numCorrect, numAnswered,playerNum;
  9.   private double perc;
  10.  
  11.   public leaderboard() {
  12.     username = "";
  13.     numCorrect = 0;
  14.     numAnswered = 0;
  15.     password = "";
  16.     perc = 0.0;
  17.   }
  18.  
  19.   public leaderboard(String user, int numC, int numA) {
  20.     username = user;
  21.     numCorrect = numC;
  22.     numAnswered = numA;
  23.   }
  24.  
  25.   public static void addLeaderboard(String user, int numC, int numA) {
  26.     scores.add(user);
  27.     scores.add(numC);
  28.     scores.add(numA);
  29.   }
  30.  
  31.   public int returnNumUsers() {
  32.     return scores.size() / 3;
  33.   }
  34.  
  35.   public String displayUsername(int n) {
  36.     return scores.get(n * 3).toString();
  37.   }
  38.  
  39.   public int displayNumCor(int n) {
  40.     return (int) scores.get((n * 3) + 1);
  41.   }
  42.  
  43.   public int displayNumAns(int n) {
  44.     return (int) scores.get((n * 3) + 2);
  45.   }
  46.  
  47.   public void wipeArray() {
  48.     scores.clear();
  49.   }
  50.  
  51.   public int getScore(int n) {
  52.     int test = (int) scores.get((n * 3) + 1);
  53.     int test2 = (int) scores.get((n * 3) + 2);
  54.     perc = ((double) test / (double) test2) * 100.0;
  55.     return (int) perc;
  56.   } // Score is percent
  57.  
  58.   public void viewLeaderboard(){
  59.     for(int i = 0; i <(scores.size()/3); i++){
  60.       playerNum = i + 1;
  61.       System.out.println("Rank " + playerNum + ":\n\tUsername: " + this.displayUsername(i));
  62.       System.out.println("\tCorrect Answers: " + this.displayNumCor(i));
  63.       System.out.println("\tTotal Questions: " + this.displayNumAns(i));
  64.       System.out.println("\tScore:           "+ this.getScore(i));
  65.     }
  66.   }
  67.  
  68.   public static List<Object> getScores() {
  69.     return scores;
  70.   }
  71.  
  72.   public void sortBoard(){
  73.     List<Integer> sortScores = new ArrayList<>();
  74.     List<String> test = new ArrayList<>();
  75.     test.clear();
  76.     for (int k = 0; k < this.returnNumUsers(); k++) {
  77.       test.add(this.displayUsername(k));
  78.       test.add(Integer.toString(this.displayNumCor(k)));
  79.       test.add(Integer.toString(this.displayNumAns(k)));
  80.     }
  81.     for (int i = 0; i < this.returnNumUsers(); i++) {
  82.       sortScores.add(this.getScore(i));
  83.     }
  84.     Collections.sort(sortScores, Collections.reverseOrder());
  85.     this.wipeArray();
  86.     for (int x = 0; x < (test.size()/3); x++) {
  87.       for(int k = 0; k < (test.size()/3); k++){
  88.         int perc = (int)(((Double.parseDouble(test.get((k * 3) + 1))) / (Double.parseDouble(test.get((k * 3) + 2))))*100);
  89.         if (sortScores.get(x) == perc) {
  90.           this.addLeaderboard((test.get(k * 3)), (Integer.parseInt(test.get((k * 3) + 1))), (Integer.parseInt(test.get((k * 3) + 2))));
  91.         }
  92.       }
  93.     }
  94.   }
  95.  
  96.   public String searchUser(String user) {
  97.     return user;
  98.   }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement