JAVA编写程序,完成下列内容。

JAVA编写程序,完成下列内容。

定义Player玩家类,包含2项内容,姓名name和得分score
在主函数中,实例化一个ArrayList用于存放玩家列表
开启一局游戏前,先输入玩家姓名,每玩一局游戏,记录该玩家的成绩,并将该玩家加入到玩家列表中。
一局结束后,询问是否再玩一局,输入Y则重新开始一局问答游戏,输入N则退出游戏。
最后对玩家的记录按得分从高到低排序并输出。
【社会主义核心价值观】 富强、民主、文明、和谐、自由、平等、公正、法治、爱国、敬业、诚信、友善。

测试说明

平台会对你编写的代码进行测试:

测试输入:
张三
民主
和谐
诚信
0
N

预期输出:
请输入玩家姓名:
----------答题系统----------
请输入社会主义核心价值观之一:
请输入社会主义核心价值观之一:
请输入社会主义核心价值观之一:
请输入社会主义核心价值观之一:
张三 得分:30
是否再玩一局?(Y/N):
玩家 [姓名:张三, 得分:30]

import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

class Player implements Comparable<Player>{ //玩家
    String name;
    int score;
    
    public Player(String name) {
        this.name = name;
        this.score = 0;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getScore() {
        return score;
    }
    public void setScore(int score) {
        this.score = score;
    }
    //补充代码:覆写toString 方法

    //补充代码:覆写compareTo方法,按照score降序排序
    
}

public class Test {
    
    public static Scanner sc = new Scanner(System.in);
    
    public static void playAGame(Player p) { //玩家p玩一局游戏
        int score = 0;

        //补充代码:玩一局游戏,规则如上一关。



        p.setScore(score);
    }
    
    public static void main(String[] args) {
        List<Player> players = new ArrayList<Player>(); //玩家列表
        String again = "N";
        do {
            System.out.println("请输入玩家姓名:");
            String name = sc.nextLine();
            Player p = new Player(name);

            //补充代码:将玩家p添加到玩家列表
            
            playAGame(p);

            System.out.println("是否再玩一局?(Y/N):");
            again = sc.nextLine();
        }while("Y".equals(again) || "y".equals(again));

        //补充代码:先对players进行排序,再遍历输出
                
        sc.close();
    }

}

根据题目提示来补充代码即可。

补充如下:

参考链接:


java怎么定义数组-Java基础-PHP中文网 java定义数组的方法:1、使用【String[] s=new String[]】定义字符串数组;2、使用【int[] i=new int[]】定义整型数组;3、使用【String[] str2={"a","b","c"}】方式来定义数组。 https://www.php.cn/faq/471112.html


import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
 
class Player implements Comparable<Player>{ //玩家
    String name;
    int score;
    
    public Player(String name) {
        this.name = name;
        this.score = 0;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getScore() {
        return score;
    }
    public void setScore(int score) {
        this.score = score;
    }
    //补充代码:覆写toString 方法
    public String toString() {
        return "玩家[姓名:"+this.getName()+",得分:"+this.getScore()+"]";
    }
    
 
    //补充代码:覆写compareTo方法,按照score降序排序
    @Override
    public int compareTo(Player o) {
        // TODO Auto-generated method stub
                
        return o.getScore()-this.score;
    }
    
}
 
public class Test {
    
    public static Scanner sc = new Scanner(System.in);
    
    public static void playAGame(Player p) { //玩家p玩一局游戏
        
        int score = 0;
 
        //补充代码:玩一局游戏,规则如上一关。
        // https://www.php.cn/faq/471112.html
        // 答题的问题和答案
        String[] answers =new String[] {"社会主义核心价值观" , "富强","民主","文明","和谐","自由","平等","公正","法治","爱国","敬业","诚信","友善"};
         String ans="100" ;
         
         System.out.println("----------答题系统----------");
         // 如果输入的不是"0",则循环获取答案,这里如果需要控制答题次数,可以加个控制变量
         while(!"0".equals(ans)){
             System.out.print("请输入"+answers[0]+"之一:");  // 问问题
             ans=sc.nextLine();  // 获取答案
             //判断答案是否正确,正确则分数+10
             for(int i=1;i<answers.length;i++) {
                 if(answers[i].equals(ans)) {
                     score+=10;    
                     break;
                 }
             }
             
         }
        

        p.setScore(score);
    }
    
    public static void main(String[] args) {
        List<Player> players = new ArrayList<Player>(); //玩家列表
        String again = "N";
        do {
            System.out.println("请输入玩家姓名:");
            String name = sc.nextLine();
            Player p = new Player(name);
 
            //补充代码:将玩家p添加到玩家列表
           players.add(p);
           
            playAGame(p);
 
            System.out.println("是否再玩一局?(Y/N):");
            again = sc.nextLine();
        }while("Y".equals(again) || "y".equals(again));
 
        //补充代码:先对players进行排序,再遍历输出
       // https://blog.csdn.net/Hoshizola/article/details/105321402
        
        // 使用Collections类的sort()方法进行排序
        Collections.sort(players);
        
        // 打印排序后的结果
        for( Player p : players) {
            System.out.println(p);
        }
            
        
                
        sc.close();
    }
 
}

img

代码思路是正确的