Javakurs/Übungsaufgaben/Rennschnecke: Unterschied zwischen den Versionen
< Javakurs | Übungsaufgaben
Zeile 28: | Zeile 28: | ||
#*Die teilnemenden Schnecken selbst (z.B. in einer ArrayList) | #*Die teilnemenden Schnecken selbst (z.B. in einer ArrayList) | ||
#*die Länge der zu kriechenden Strecke | #*die Länge der zu kriechenden Strecke | ||
+ | #: | ||
+ | #Überlege dir welche dieser Wetrte bereits im Constructor gesetzt werden sollten. | ||
#: | #: | ||
#Lege in der Klasse "Rennen" eine Methode "void addRennschnecke(Rennschnecke neueSchnecke)" an, welche dem Rennen eine Schnecke hinzufügt. | #Lege in der Klasse "Rennen" eine Methode "void addRennschnecke(Rennschnecke neueSchnecke)" an, welche dem Rennen eine Schnecke hinzufügt. | ||
Zeile 46: | Zeile 48: | ||
#* Tipp: ob eine Schnecke im Ziel angekommen ist kannst du mit deiner Methode ermittleGewinner() herrausfinden. | #* Tipp: ob eine Schnecke im Ziel angekommen ist kannst du mit deiner Methode ermittleGewinner() herrausfinden. | ||
+ | == Wettbüro == | ||
+ | |||
+ | #Erstelle eine Klasse Wettbuero. | ||
+ | #: | ||
+ | #:ein Wettbuero hat die folgenden Eigenschaften: | ||
+ | #* es weiß für welches Rennen es seine Wetten entgegennimmt | ||
+ | #* es verfügt über eine Liste (z.B. eine Arraylist) von angenommenden Wetten | ||
+ | #* es hat einen festen Faktor, mit welchem Wetteinsätze bei einem Gewinn multipliziert werden | ||
+ | #: | ||
+ | #Lege in der Klasse "Wettbuero" eine Methode "wetteAnnehmen(String schneckenName, int wetteinsatz, String spieler)" an, welche eine Wette auf eine Schnecke für das Rennen das von dem Büro bearbeitet wird entgegennimmt. | ||
+ | * Um die einzelnden Wetten speichern zu können sollten ihre Daten in eigenden Objekten der Klasse "Wette" gespeichert werden. Erstellt euch diese Klasse selbst. | ||
+ | * Tipp: denkt an toString() | ||
+ | #: | ||
+ | #Lege in der Klasse "Wettbuero" eine Methode "rennenDurchfueren()" an, welche das betreute Rennen durchfuert. | ||
+ | #: | ||
+ | #Lege in der Klasse "Wettbuero" eine Methode "toString()" an, welche die Daten des Wettbueros, die Daten des Rennens sowie sämtliche abgeschlossende Wetten als String zurückgibt. | ||
+ | #: | ||
+ | # Teste dein Programm! | ||
+ | #: | ||
+ | # Tausche die Klasse Rennen mit einem Komilitonen der ebenfalls bereits fertig ist. | ||
+ | #* wo und warum produzieren eure Programme nun Fehler? | ||
+ | #* ändert eure Implementationen so ab das ihr Klassen untereinander problemlos tauschen könnt. | ||
+ | |||
+ | |||
+ | == Zusattz == | ||
+ | |||
+ | Es gibt noch ein paar Dinge die in unserem Wettbüro nicht so laufen wie sie sollten. | ||
+ | Macht sie besser. | ||
+ | |||
+ | * Die selbe Schnecke kann in ein Rennen zwei mal eingetragen werden | ||
+ | * es können negertive Wetten abgeschlossen werden. | ||
+ | * gehen zwei Schnecken gleichzeitig durchs Ziel wird die Schnecke ausgegeben auf die die Suche nach dem Gewinner zuerst stößt. Das ist ganz schön ungerecht. | ||
('''Im Bau. Rest folgt in Kürze.''') | ('''Im Bau. Rest folgt in Kürze.''') |
Version vom 5. April 2006, 12:51 Uhr
Inhaltsverzeichnis
Rennschnecke
- Erstelle eine Klasse "Rennschnecke"
- Rennschnecken sollen folgende Eigenschaften(Klassenvariablen) besitzen:
- einen Namen
- eine Rasse
- eine Maximalgeschwindigkeit
- die Schnecke soll wissen welchen Weg sie bereits zurück gelegt hat
- Erstelle für die Klasse Schnecke einen Constructor, der den Klassenvariablen beim Erstellen einer neuen Instanz(Objekt zu dieser Klasse) Werte zuweist.
- Lege für in der Klasse "Rennschnecke" eine Methode "krieche()" an, welche die Schnecke abhängig von ihrer Maximalgeschwindigkeit eine zufällige Strecke weiter bewegt.
- Tipp: schaut euch die Methode Math.random() aus der Java API an.
- Lege in der Klasse "Rennschnecke" eine Methode "String toString()" an, welche die Daten der Schnecke mit return als String zurückgibt.
- Teste deine Klasse indem du probehalber ein Rennschneckenobjekt erzeugst und seine Daten auf der Console ausgibst.
- Tipp:Verwende zum Ausgeben der Daten die toString() Methode der Rennschnecke.
Rennen
- Erstelle eine Klasse "Rennen"
- Ein Rennen hat folgende Eigenschaften:
- Einen Namen
- Die Anzahl der teilnehmenden Schnecken
- Die teilnemenden Schnecken selbst (z.B. in einer ArrayList)
- die Länge der zu kriechenden Strecke
- Überlege dir welche dieser Wetrte bereits im Constructor gesetzt werden sollten.
- Lege in der Klasse "Rennen" eine Methode "void addRennschnecke(Rennschnecke neueSchnecke)" an, welche dem Rennen eine Schnecke hinzufügt.
- Lege in der Klasse "Rennen" eine Methode "void removeRennschnecke(String name)" an, welche eine Schnecke aus dem Rennen entfernt.
- Lege in der Klasse "Rennen" eine Methode "String toString()" an, welche die Daten des Rennens mit return als String zurückgibt.
- Tipp: Um die Daten der beteiligten Schnecken zurückzugeben könnt ihr deren toString() Funktion benutzen.
- Teste deine Klasse vom Hauptprogramm aus!
- Lege in der Klasse "Rennen" eine Methode "Rennschnecke ermittleGewinner()" an, welche null zurückliefert wenn noch keine der Teilnemenden Schnecken das Ziel erreicht und anderenfalls die
- Gewinnerschnecke zurückgibt.
- Lege in der Klasse "Rennen" eine Methode "void lasseSchneckenKriechen()" an, welche alle teilnemenden Schnecken einmal kriechen lässt.
- Lege in der Klasse "Rennen" eine Methode "void durchfuehren()" an, welche so lange lasseSchneckenKriechen() aufruft, bis eine der Schnecken das Ziel erreicht hat.
- Tipp: ob eine Schnecke im Ziel angekommen ist kannst du mit deiner Methode ermittleGewinner() herrausfinden.
Wettbüro
- Erstelle eine Klasse Wettbuero.
- ein Wettbuero hat die folgenden Eigenschaften:
- es weiß für welches Rennen es seine Wetten entgegennimmt
- es verfügt über eine Liste (z.B. eine Arraylist) von angenommenden Wetten
- es hat einen festen Faktor, mit welchem Wetteinsätze bei einem Gewinn multipliziert werden
- Lege in der Klasse "Wettbuero" eine Methode "wetteAnnehmen(String schneckenName, int wetteinsatz, String spieler)" an, welche eine Wette auf eine Schnecke für das Rennen das von dem Büro bearbeitet wird entgegennimmt.
- Um die einzelnden Wetten speichern zu können sollten ihre Daten in eigenden Objekten der Klasse "Wette" gespeichert werden. Erstellt euch diese Klasse selbst.
- Tipp: denkt an toString()
- Lege in der Klasse "Wettbuero" eine Methode "rennenDurchfueren()" an, welche das betreute Rennen durchfuert.
- Lege in der Klasse "Wettbuero" eine Methode "toString()" an, welche die Daten des Wettbueros, die Daten des Rennens sowie sämtliche abgeschlossende Wetten als String zurückgibt.
- Teste dein Programm!
- Tausche die Klasse Rennen mit einem Komilitonen der ebenfalls bereits fertig ist.
- wo und warum produzieren eure Programme nun Fehler?
- ändert eure Implementationen so ab das ihr Klassen untereinander problemlos tauschen könnt.
Zusattz
Es gibt noch ein paar Dinge die in unserem Wettbüro nicht so laufen wie sie sollten. Macht sie besser.
- Die selbe Schnecke kann in ein Rennen zwei mal eingetragen werden
- es können negertive Wetten abgeschlossen werden.
- gehen zwei Schnecken gleichzeitig durchs Ziel wird die Schnecke ausgegeben auf die die Suche nach dem Gewinner zuerst stößt. Das ist ganz schön ungerecht.
(Im Bau. Rest folgt in Kürze.)