JAVA,出现报错,请问该如何修改?

JAVA,出现报错,请问该如何修改?
代码如下,出现报错,请问是什么问题?该如何修改?请给出详细解答

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;
    }
    public String toString() {
        return "玩家[姓名:"+this.getName()+",得分:"+this.getScore()+"]";}
    @Override
    public int compareTo(Player o) {      
        return o.getScore()-this.score;
    }
}
 
public class Test {
    
    public static Scanner sc = new Scanner(System.in);
    public static void playAGame(Player p) {    
    int score = 0;
    String[] answers =new String[] {"社会主义核心价值观" , "富强","民主","文明","和谐","自由","平等","公正","法治","爱国","敬业","诚信","友善"};
    String ans="100" ;
    System.out.println("----------答题系统----------");
    while(!"0".equals(ans)){
    System.out.println("请输入"+answers[0]+"之一:");
    ans=sc.nextLine(); 
    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);
            players.add(p);
            playAGame(p);  
            System.out.println(name + " 得分" + score);          
            System.out.println("是否再玩一局?(Y/N):");
            again = sc.nextLine();
        }while("Y".equals(again) || "y".equals(again));
        Collections.sort(players);
        for( Player p : players) {
            System.out.println(p);
        }     
        sc.close();
    }
}

第63行的变量 score 前面没有定义,所以报错了,将

            System.out.println(name + " 得分" + score);

换成

            System.out.println(name + " 得分" + p.getScore());

把第63行去掉,然后在运行程序后,根据程序提示,输入姓名,然后答题,输入0可以退出答题,然后输入N退出,最后会显示结果。

修改如下:


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;
    }
    public String toString() {
        return "玩家[姓名:"+this.getName()+",得分:"+this.getScore()+"]";}
    @Override
    public int compareTo(Player o) {      
        return o.getScore()-this.score;
    }
}
 
public class Test {
    
    public static Scanner sc = new Scanner(System.in);
    public static void playAGame(Player p) {    
    int score = 0;
    String[] answers =new String[] {"社会主义核心价值观" , "富强","民主","文明","和谐","自由","平等","公正","法治","爱国","敬业","诚信","友善"};
    String ans="100" ;
    System.out.println("----------答题系统----------");
    while(!"0".equals(ans)){
    System.out.println("请输入"+answers[0]+"之一:");
    ans=sc.nextLine(); 
    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);
            players.add(p);
            playAGame(p);  
        //    System.out.println(name + " 得分" + score);   // 去掉这一样        
            System.out.println("是否再玩一局?(Y/N):");
            again = sc.nextLine();
        }while("Y".equals(again) || "y".equals(again));
        Collections.sort(players);
        for( Player p : players) {
            System.out.println(p);
        }     
        sc.close();
    }
}

img