Advertisement
Guest User

Untitled

a guest
Nov 11th, 2012
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.61 KB | None | 0 0
  1. Gruppenaufgabe 3.2: Rock-paper-scissors-lizard-Spock
  2. 19 GP
  3. Sheldon hat mit seinen Freunden Rock-paper-scissors-lizard-Spock2 gespielt, wobei immer zwei
  4. Freunde gegeneinander gespielt haben. Die Ergebnisse jeder Runde wurden auf Papier als Buchsta-
  5. benkombinationen aufgeschrieben.
  6. Dabei sind den Symbolen folgende Buchstaben zugeordnet (nur Großbuchstaben!):
  7. S Schere (Scissors)
  8. R Stein (Rock)
  9. P Papier (Paper)
  10. W Spock
  11. L Echse (Lizard)
  12. Wenn zwei Spieler A und B sich jeweils für ihr Symbol entschieden haben, wird auf Papier zunächst
  13. das Symbol von A und daneben das Symbol von B geschrieben. In der nächsten Runde wird diese
  14. Buchstabensequenz einfach fortgesetzt.
  15.  
  16. Gegeben sei folgender Spielverlauf:
  17. • Spieler A: Schere
  18. Spieler B: Stein
  19. • Spieler A: Spock
  20. Spieler B: Echse
  21.  
  22. Es würde also folgende Sequenz auf dem Papier stehen: SRWL. Das entspricht 2 Runden und Spieler
  23. B hätte mit einem Score von 2 gewonnen, da der Stein die Schere zertrümmert und die Echse Spock
  24. vergiftet. Der Score errechnet sich aus der Differenz der gewonnenen und verlorenen Runden. Ein
  25. Unentschieden ist auch möglich.
  26.  
  27. a) Laden Sie sich zunächst die Datei RockPaperScissorsLizardSpockTournament.java
  28. herunter.
  29. b) Implementieren Sie als erstes die Methode whoWins. Diese soll mit Hilfe verschachtelter
  30. switch-Anweisungen bestimmen, wer von zwei Spielern A und B eine Runde gewonnen
  31. hat. Haben beide Spieler die gleichen Symbole gewählt, wird 0 (Unentschieden) zurückge-
  32. geben. Hat das Symbol von Spieler A das von Spieler B geschlagen, wird 1 zurückgegeben,
  33. andernfalls −1. Schlagen Sie die Spielregeln bitte in der Wikipedia nach.
  34. c) Fügen Sie nun die Methode checkValidSymbol(char s) hinzu. Diese soll überprüfen,
  35. ob eine Eingabe ein gültiges Symbol darstellt. Die Eingabe wird dem Parameter s überge-
  36. ben. Nur die genannten Großbuchstaben sind gültige Eingaben. Bei einer gültigen Eingabe
  37. wird true, andernfalls false zurückgegeben. Es empfiehlt sich, ein switch-Konstrukt zu
  38. verwenden.
  39. d) Nun geht es an die Implementierung der eigentlichen Auswertung in der main-Methode. Um
  40. Fehlern vorzubeugen wurden in der main-Methode bereits Textbausteine in Kommentaren
  41. vorgegeben. Die Textbausteine selbst dürfen nicht mehr verändert werden und es dürfen auch
  42. keine neuen Bausteine hinzugefügt werden. Sie müssen nun dafür sorgen, dass die richtigen
  43. Ausgaben mit den richtigen Werten erfolgen. Implementieren Sie hierzu die while-Schleife,
  44. berechnen Sie die in den Ausgaben benötigten Variablen und fügen Sie Fallunterscheidungen
  45. ein, um die richtigen Ausgaben zu erzeugen.
  46.  
  47. • Die Schleife soll die Eingabe in args[0] abarbeiten. Dabei sollen immer die jeweils
  48. nächsten zwei aufeinanderfolgende Symbole mit Hilfe der Methode whoWins ausge-
  49. wertet werden. Bei einem Unentschieden in einer Runde soll “Draw.”, ansonsten “A
  50. wins.” oder “B wins.” ausgegeben werden.
  51. • Wird beim Abarbeiten der Eingabe ein ungültiges Symbol entdeckt wird das Programm
  52. mit der entsprechenden Fehlermeldung beendet.
  53. • Bei einer leeren Eingabe wird das Programm mit der entsprechenden Fehlermeldung
  54. beendet.
  55. • Enthält die Eingabe eine ungerade Anzahl an Symbolen, wird das Programm mit der ent-
  56. sprechenden Fehlermeldung beendet. Dies geschieht allerdings erst nachdem alle mög-
  57. lichen Symbolpaare, außer dem letzten alleinstehenden Symbol, abgearbeitet worden
  58. sind.
  59. • Geben Sie abschließend aus, welcher der Spieler (“A” oder “B”) gewonnen hat, bzw. ob
  60. es zu einem Unentschieden kam. Geben Sie auch die Anzahl der gespielten Runden aus.
  61.  
  62. Geben Sie die Datei RockPaperScissorsLizardSpockTournament.java als Lösung ab.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement