Ciao a tutti, avrei bisogno di aiuto con un esercizio che sto cercando di fare. Come si capisce dal titolo � una simulazione di una gara di formula 1, la logica del programma � teoricamente semplice, per� il programma a girare non ci pensa nemmeno (avr� degli errori assurdi).
Comunque il programma � composto da 5 classi: Vettura (classe astratta) da cui viene derivata monoposto, la classe driver che viene derivata da monoposto e infine track che � la classe da cui viene derivata race in cui c'� il main. Quello che voglio fare � dare una variabile points a monoposto (che devono risultare anche su piloti) a cui viene assegnato un valore random inziale (startpoints) e che viene incrementato ciclicamente per il numero di giri tramite la variabile random (increment).
Questi punteggi devono essere assegnati ad un array di sei piloti e alla fine quello con il punteggio piu alto vince la gara.

Allego il codice che o scritto finora e spero che possiate aiutarmi

la classe DRIVER

codice:
public class Driver extends Monoposto{    private String name;
    private String surname;
    private int age;
    
    
    public Driver(String name, String surname){
        setName(name);
        setSurname(surname);
    }




    public String getName(){
        return name;    
    }


    public void setName (String name){
        this.name = name;    
    }


    public String getSurname(){
        return surname;    
    }


    public void setSurname (String surname){
        this.surname = surname;    
    }


    public int getAge(){
        return age;    
    }


    public void setAge (int age){
        this.age = age;    
    }




}

la classe MONOPOSTO

codice:
public class Monoposto extends Vettura{          
        
                
        
        public Monoposto(int hp){
            setHp(hp);
            setMaxspeed(340);        
            setPoints(0); 
                
        }
        
        public void turnOn(){
            System.out.println("Brum, brum");
        }
la classe VETTURA

codice:
public abstract class Vettura{    private int hp;
    private int maxspeed;
    private int points;
        
        
    




    public abstract void turnOn();
    
        
    public void setHp(int hp){
        this.hp = hp;
    }
        
    public int getHp(){
        return hp;
    }
    
        
    public void setMaxspeed(int maxspeed){
        this.maxspeed = maxspeed;
    }
        
    public int getMaxspeed(){
        return maxspeed;
    }


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


    
    
    
    
    
}
la classe TRACK

codice:
public class Track{    private String name;    
    private String nation;    
    private int laps;
    
        
        public Track(String name, String nation, int laps){
            setName(name);
            setNation(nation);        
            setLaps(laps);
        } 




        public String getName(){
            return name;    
        }
        
        public void setName(String name){
            this.name = name;    
        }
          
        public String getNation(){
            return nation;    
        }
        
        public void setNation(String nation){
            this.nation = nation;    
        }


        public int getLaps(){
            return laps;    
        }
        
        public void setLaps(int laps){
            this.laps = laps;    
        }


    
    
}
e infine la classe RACE

codice:
import java.util.Random;public class Race{
        
        
             
        
     public static void main(String []args){
                 
        Random start = new Random();//punteggio inziale
        Random km = new Random();//punteggio per giro
        int startpoints = start.nextInt(100); //variabile con punteggi di partenza
        int increment = km.nextInt(100);     //sar� la variabile a cui verranno aggiunti i numeri random 
        
        
       








        Driver[] drivers = new Driver[6];                          
        
        drivers[0] = new Driver ("Kimi", "Raikkonen");
        drivers[1] = new Driver ("Sebastian", "Vettel");
        drivers[2] = new Driver ("Fernando", "Alonso");        
        drivers[3] = new Driver ("Sergio", "Perez");
        drivers[4] = new Driver ("Nico", "Rosberg");
        drivers[5] = new Driver ("Louis", "Hamilton");
    
        


        Track monza = new Track("Monza", "Italy", 70);             
        System.out.println("Welcome to the " + monza.getName() + " " + "grand prix");
            
        
        
        
            
            
        Monoposto macchina = new Monoposto(600);
         
        macchina.turnOn();                         
        System.out.println("    3...");               
        System.out.println("    2...");               
            System.out.println("    1...");              
        System.out.println("   GO!   ");             
                                    
         
        
    for (int i = 0; i < drivers.length; i++){                                                                        
           macchina.setPoints(startpoints);                
                                
    }
                                
    for (int i = 0; i < monza.getLaps(); i++){
        macchina.setPoints(increment);
        System.out.println("Lap: " + i);
        
            }
        
             
        
        
        switch (Math.max(macchina.getPoints())) { 
         case 1:
           System.out.println("The winner is " + drivers[0].getName() + " " + drivers[0].getSurname());
             break;
         case 2:
           System.out.println("The winner is " + drivers[1].getName() + " " + drivers[1].getSurname());
             break;
         case 3:
           System.out.println("The winner is " + drivers[2].getName() + " " + drivers[2].getSurname());
             break;
         case 4:
           System.out.println("The winner is " + drivers[3].getName() + " " + drivers[3].getSurname());
             break;
         case 5:
           System.out.println("The winner is " + drivers[4].getName() + " " + drivers[4].getSurname());
             break;
         case 6:
           System.out.println("The winner is " + drivers[5].getName() + " " + drivers[5].getSurname());
             break;
         default:
            System.out.println("Tutti fredd'uccisi in due divisi");
        }








    
          
        }
        


        
        
            
}