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
la classe VETTURAcodice: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 TRACKcodice: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; } }
e infine la classe RACEcodice: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; } }
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"); } } }