Advertisement
Guest User

Dok Task2

a guest
May 30th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.22 KB | None | 0 0
  1. Zum Projekt:
  2. Wir haben das Spiel Viergewinnt in Java mittel Model-View-Control pattern implementiert.
  3. Das Spiel hat 7 Spalten und 6 Zeilen.
  4. Mit Linksklick auf ein Feld setzt man einen Stein.
  5. Per Rechtsklick kann der Stein eines Spielers in der untersten Zeile entfernt werden, wodurch
  6. alle weiteren Steine darübe um eine Position nach unten fallen.
  7. Es spielen 2 Spieler, Rot und Gelb.
  8.  
  9. In unserer Projektstruktur findet man folgende Packages und Klassen:
  10. Default:
  11. Main Klasse mit Main Methode
  12. Package View:
  13. Klasse SpielbrettView :
  14. Hat alle relevanten View Variablen (Jframe, Grid usw)
  15. Es enthält das Haupt JFrame frame in welchem alle weiteren Komponenten eingepflegt werden.
  16. Das gameField repräsentiert ein zweidimensionales Array von Feldern/Zellen.
  17. JLabel whoWOn gibt an welcher Spieler gewonnen hat.
  18. JLabel whosTurn gibt an welcher Spieler als nächstes dran ist.
  19. Jlabel PopoutInfo und PopoutInfoTwo weisen den Spieler darauf hin, dass die Popout funktion mit einem Rechtsklick benutzt wird.
  20. JButton clear ist ein Button zum neustarten des Spiels.
  21. Der String playerTurn enthält den Spielernamen welcher den nächsten Zug hat (Gelb oder Rot)
  22.  
  23. Package Model:
  24. Klasse Feld:
  25. Repräsentiert eine einzelne Zelle. Kann die Farben Gelb (Spieler Gelb) Rot (Spieler Rot) und Blau (leeres Feld) haben.
  26. Das färben der Felder sowie das zuweisen der Spielzüge findet in dieser Klasse statt.
  27. Klasse SpielbrettModel:
  28. enthält alle fürs Spielfeld relevanten Eigenschaften.
  29. -ein zweidimensionales String array (Belegt) welches die Zustände Rot, Gelb und leer haben kann.
  30. -ein weiteres zweidimensionales Boolean Array (Frei) welches angibt ob ein Feld frei oder Besetzt ist,
  31. -Boolean istZugBeginn welches angibt ob es sich beim Zug um den ersten Zug handelt und im weiteren wird diese Variable verwendet um den
  32. Zug an Spieler Gelb oder Rot zuzuweisen. Falls istZugbeginn = true ist Spieler Rot dran und bei jedem einwerfen und Popout wird dies
  33. entsprechend geändert.
  34. -Boolean Win gibt an ob ein Spieler gewonnen hat.
  35. Die zwei dimensionalen Arrays werden mit den Größen 6x7 initialisiert. 7 Spalten , 6 Zeilen.
  36.  
  37. Klasse ClickLogik:
  38. enthält Listener welche erkennen wenn ein Spieler auf eine Spalte rechts- oder linksklickt.
  39. Im Falle eines linksklicks wird ein Stein in die unterstmögliche Zeile der geklickten Spalte platziert.
  40. Im Falle eines Rechtsklicks wird geprüft , ob sich auf der untersten Zeile in der Spalte auf die der Spieler geklickt hat, ein
  41. Stein seiner Farbe befindet. Falls dies der Fall ist wird dieser Stein gelöscht und alle Steine über dem gelöschten
  42. Stein springen um eine Position nach unten. Dies wird als ein Zug gewertet.
  43.  
  44. Nach jedem Zug wird die checkWin methode aufgerufen welche überprüft ob ein Spieler ermittelt werden konnte.
  45. In der checkWin Methode wird überprüft ob eine horizontale, vertikale oder schräge Linie von 4 gleichfarbigen Steinen gesetzt wurde.
  46. Bei einem wird wird das Spiel mittels endGame() beendet. Es können keine weiteren Züge getätigt werden und der
  47. Spieler wird im whoWon JPanel angezeigt.
  48. Mittels dem Neustart Button kann ein neues Spiel gestartet werden.
  49.  
  50. Klasse ClearButtonListender:
  51. Erkennt wenn auf den JButton "Neustart" (clear) geklickt wurde.
  52. Alle felder werden auf leer und blau gesetzt.
  53. Win wird auf false gesetzt und der nächste Spieler am Zug ist Rot da die istZugbeginn Variable auf true gesetzt wird.
  54.  
  55.  
  56. Package Control:
  57. Klasse Controller:
  58. Verbindet View und Model und enthält jeweils ein Objekt der beiden.
  59. Initialisiert die beiden zweidimensionalen Arrays aus dem SpielbrettModel.
  60. Weist jeder spielFeld Zelle einen MouseListender (ClickLogik) zu.
  61. Initialisiert den View.
  62. Weist dem JButton clear einen ActionListener (ClearButtonListener) zu.
  63. Wird in der Main methode verwendet um runnable zu implementieren. Über das SpielbrettView Objekt wird der
  64. Frame auf visible gesetzt.
  65.  
  66.  
  67. Zum Model View Controller Model:
  68. Der View kümmert sich um das Anzeigen der Felder, Buttons und Spielinfos.
  69. In unserem Model ist die gesamte Logik implementiert, sowie die ActionListener, welche benötigt werden um
  70. den Zustand des Spiels bei bestimmten Inputs (Mausklicks) entsprechend zu ändern.
  71. Im Controller sind Instanzen von Model und View enhtalten und verbindet somit die beiden Elemente.
  72. Er weist den Feldern ihre entsprechenden Listener aus dem Model zu und initialisiert das Spiel.
  73. Die KlickLogik wird mittels Kontroller mit dem View verbunden, somit kann bei bestimmten Inputs
  74. der View geupdatet werden.
  75. In der Main methode wird nur noch eine Controller Instanz benötigt um die runnable Methode zu implementieren
  76. und das Spiel zu starten.
  77.  
  78. Arbeitsteilung:
  79. Chrisi Julius:
  80. View:
  81. -Spielbrettview Klasse.
  82. Model:
  83. -Feld Klasse.
  84. -Den Teil der KlickLogik Klasse welche sich ums einsetzen von Steinen mittels Linksklick kümmert . (KlickLogik.java Zeile 39-101)
  85. Control:
  86. Controller Klasse
  87.  
  88. Hrbatovic Esad
  89. Model:
  90. -den Teil der KlickLogik Klasse welcher sich um den Popout(Rechtsklick) kümmert. (Klicklogik.java Zeile 102-145)
  91. -Klasse ClearButtonListener.
  92. -Hinzufügen und implementieren des Neustart-Buttons
  93.  
  94. Main Methode
  95.  
  96. Raph Jüttner:
  97. -checkWin Methode welche ein Game Over erkennt. (4 Steine horizontal, vertikal oder schräg angereiht). Klasse KlickLogik Zeile 153-Ende.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement