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");
}
}
}