Hey Leute,
da ich das letzte Mal schon so schnell Hilfe hier bekommen habe, versuche ich es jetzt einfach nochmal erneut.
Ich habe folgende Übungsaufgabe bearbeitet:
https://wiki.freitagsrunde.org/Javakurs/Übungsaufgaben/Rennschnecke
Hier soweit mein Code:
Soweit hat alles funktioniert. Jedoch habe ich an dieser Stelle erwartet alle Renndaten ausgegeben zu bekommen mit der jeweiligen Renndistanz der Schnecken. Ich habe mir auch zusätzlich die Musterlösung auf der Seite angeguckt, aber kann meinen Fehler nicht finden. Es ist soweit auch noch nicht komplett geordnet und brauch noch ein paar Feinheiten. Ich hoffe, ihr blickt durch.
Desweiteren würde ich mich freuen, wenn ihr mir vielleicht ein kurzes Feedback zu meinem Schreibstil geben könntet
LG Ben
da ich das letzte Mal schon so schnell Hilfe hier bekommen habe, versuche ich es jetzt einfach nochmal erneut.
Ich habe folgende Übungsaufgabe bearbeitet:
https://wiki.freitagsrunde.org/Javakurs/Übungsaufgaben/Rennschnecke
Hier soweit mein Code:
Java:
import java.util.ArrayList;
class Schnecke{
//Attribute
String schneckename;
String schneckerasse;
double geschwindigkeit;
double wegbisher;
//Konstruktoren
Schnecke(String name, String rasse, double speed){
schneckename = name;
schneckerasse = rasse;
geschwindigkeit = speed;
wegbisher = 0;
}
//Methoden
double krieche(){ //Lässt Schnecke kriechen
wegbisher = Math.random()*geschwindigkeit;
return wegbisher;
}
String getName(){
return schneckename;
}
String getRasse(){
return schneckerasse;
}
double getGeschw(){
return geschwindigkeit;
}
double getStrecke(){
return wegbisher;
}
String alleDaten(){
String geschwindigkeitStr = Double.toString(geschwindigkeit); //Gibt Daten der Schnecke aus
String wegbisherStr = Double.toString(wegbisher);
String allesSchnecke = schneckename+" " +schneckerasse+" "
+geschwindigkeitStr+" "+wegbisherStr;
return allesSchnecke;
}
}
class Rennen{
//Attribute
String rennenName;
ArrayList<Schnecke> teilnehmer = new ArrayList<Schnecke>();
double kriechWeg;
//Konstruktoren
Rennen(String name,double anzahl, double weg){
rennenName = name;
kriechWeg = weg;
}
//Methoden
void addSchnecke(Schnecke neueSchnecke){ //Fügt Schnecke hinzu
teilnehmer.add(neueSchnecke);
}
public void alleRenndaten(){ //Gibt alle Renndaten aus
String weg = Double.toString(kriechWeg);
StringBuilder sb = new StringBuilder();
sb.append("Name: "+rennenName+"\tTeilnehmer: "+teilnehmer.size()+
"\tStrecke: "+weg+"\nRennschnecken:\n");
StringBuilder sbSchnecken = new StringBuilder();
for (Schnecke snail : teilnehmer){
System.out.println(sbSchnecken.append(snail.getName()+"\t\tRasse: "+snail.getRasse()+
"\tSpeed: "+snail.getGeschw()+"\tStrecke: "+snail.getStrecke()+"\n"));
}
}
public Schnecke ermittleGewinner(){ //Ermittelt Gewinner
Schnecke sieger = null;
for (Schnecke snail : teilnehmer){
if(snail.getStrecke() > kriechWeg){
if(sieger == null){
sieger = snail;
}else{
if(snail.getStrecke() > sieger.getStrecke()){
sieger = snail;
}
}
}
}
return sieger;
}
public void lasseSchneckenKriechen(){ //Lässt alle Schnecken kriechen
for (Schnecke snail : teilnehmer){
snail.krieche();
}
}
public void starteRennen(){ //Lässt Schnecken kriechen, bis eine im Ziel ist.
while (ermittleGewinner() == null){
lasseSchneckenKriechen();
}
}
}
public class Schneckenrennen {
public static void main(String[] args) {
//Schnecken erstellen
Schnecke gustaf = new Schnecke("Gustaf", "Yolo", 10);
Schnecke peter = new Schnecke("Peter", "SGE", 7);
Schnecke katha = new Schnecke("Katha", "NomNom", 2);
//Rennen erstellen
Rennen kassel = new Rennen("Kasseler Schneckenrennen", 3, 20);
//Schnecken dem Rennen hinzufügen
kassel.addSchnecke(gustaf);
kassel.addSchnecke(peter);
kassel.addSchnecke(katha);
//Alle Renndaten ausgeben
kassel.alleRenndaten();
//Starte Rennen
kassel.starteRennen();
//Alle Renndaten nach Durchführung des Rennens
kassel.alleRenndaten();
}
}
Soweit hat alles funktioniert. Jedoch habe ich an dieser Stelle erwartet alle Renndaten ausgegeben zu bekommen mit der jeweiligen Renndistanz der Schnecken. Ich habe mir auch zusätzlich die Musterlösung auf der Seite angeguckt, aber kann meinen Fehler nicht finden. Es ist soweit auch noch nicht komplett geordnet und brauch noch ein paar Feinheiten. Ich hoffe, ihr blickt durch.
Desweiteren würde ich mich freuen, wenn ihr mir vielleicht ein kurzes Feedback zu meinem Schreibstil geben könntet
LG Ben