Editing Java - I/O und Exceptions NEW

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 4: Line 4:


Die, in der früheren Aufgabe erstellte, Personenverwaltung, soll nun etwas sicherer für Fehler gemacht werden.<br>
Die, in der früheren Aufgabe erstellte, Personenverwaltung, soll nun etwas sicherer für Fehler gemacht werden.<br>
Erweitere den Code so, dass der User die Personen mit Hilfe eines Scanners erstellt oder alternativ ein Skript (in der main methode) erstellt wird um die Eingaben zu simulieren.<br>
Erweitere den Code so, dass der User die Personen mit Hilfe eines Scanners erstellt.<br>
Dabei soll auf ungültige Inputs vernünftig reagiert werden, ohne dass das Programm abstürzt.<br>
Dabei soll auf ungültige Inputs vernünftig reagiert werden, ohne dass das Programm abstürzt.<br>


<font size=3><strong>Requirements</strong></font>
<font size=3><strong>Requirements</strong></font>
======InvalidPersonName-Exception======   
======InvaldPersonName-Exception======   
Wenn ein Nutzer eine Person anlegt, die eine Zahl im Namen hat, soll eine "InvalidPersonName-Exception" geworfen werden.<br>
Wenn ein Nutzer eine Person anlegt, die eine Zahl im Namen hat, soll eine "InvalidPersonName-Exception" geworfen werden.<br>
Die Anlegung des Objektes soll abgebrochen werden und der Nutzer informiert, dass dieser Name ungültig ist.<br>
Die Anlegung des Objektes soll abgebrochen werden und der Nutzer informiert, dass dieser Name ungültig ist.<br>
Line 19: Line 19:
Das Programm soll nicht terminieren und weitere Inputs erhalten.<br>
Das Programm soll nicht terminieren und weitere Inputs erhalten.<br>


======Test======
======Terminierung======
Option 1:
Das Programm soll nur durch die Eingabe von ":q!" terminierbar sein.
Das Programm ist durch die Eingabe von ":q!" terminierbar.


Option 2:
Du schreibst entsprechende Unittests, um zu prüfen, dass die richtige Exception geworfen wird.


==File I/O==
==File I/O==
Line 39: Line 36:
Lese die Daten ein und erstelle daraus die notwendigen Klassen.<br>
Lese die Daten ein und erstelle daraus die notwendigen Klassen.<br>
Jedes Pokémon soll zwei zufällige Attacken bekommen.
Jedes Pokémon soll zwei zufällige Attacken bekommen.
Achtung: Falls man beim Einlesen der CSV den Header (also die Spaltennamen) mitparsen möchte, muss man auf die Byte-Order-Mark aufpassen! Diese muss entweder überlesen werden oder mittels Replace ersetzt werden: (https://stackoverflow.com/questions/4897876/reading-utf-8-bom-marker)


=====Auswahl=====
=====Auswahl=====


Der Nutzer kann zu Beginn des Spiels ein Pokémon durch Angabe der Index-Nummer oder des Namens wählen, dieses wird für den Kampf ausgewählt.<br>
Der Nutzer kann zu Beginn des Spiels ein Pokémon durch Angabe der Index-Nummer oder dem Namen wählen, dieses wird für den Kampf ausgewählt.<br>
Gib auf der Konsole aus, um welches Pokémon es sich handelt und welche Werte und mögliche Attacken es hat.<br>
Gib auf der Konsole aus, um welches Pokémon es sich handelt und welche Werte und mögliche Attacken es hat.<br>
Das gegnerische Pokémon wählt der Computer zufällig.
Das gegnerischen Pokémon wählt der Computer zufällig.


=====Kampf=====
=====Kampf=====
Line 60: Line 55:
Der Schaden berechnet sich wie folgt:
Der Schaden berechnet sich wie folgt:


Schaden = (Atk_Pw) * (APk_A / DPk_D) * (1.0/25.0)
Schaden = (Atk_Pw) * (APk_A / DPk_D) * (Lvl / 50)


Atk_Pw = Power Wert der Attacke, die Ausgewählt wurde<br>
Atk_Pw = Power Wert der Attacke, die Ausgewählt wurde<br>
APk_A = Attack Wert des angreifenden Pokémon<br>
APk_A = Attack Wert des angreifenden Pokémon<br>
DPk_D = Defense Wert des verteidigenden Pokémon<br>
DPk_D = Defense Wert des verteidigenden Pokémon<br>
Lvl = Das Level des angreifenden Pokémon <br>
50 = Die Zahl 50<br>


Das Pokémon mit dem größeren Speed Wert greift zuerst an. Verliert das angegriffene Pokémon bevor es angegriffen hat, wird der Angriff übersprungen.
Das Pokémon mit dem größeren Speed Wert greift zuerst an. Verliert das angegriffene Pokémon bevor es angegriffen hat, wird der Angriff übersprungen.

Please note that all contributions to Coders.Bay Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see CB Wiki:Copyrights for details). Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)