Project plan completed

This commit is contained in:
lin committed 2026-10-19 02:40:04 +02:00
1 parent a3b8a267e8
commit e9f763877c
4 files changed
+45

No files matched your search

+41
View File
@@ -36,3 +36,44 @@ A projekt célja egy teljes körű sakkalkalmazás implementálása Java nyelven
- Perzisztencia / Fájlkezelés: Szabványos Java I/O, kivételkezeléssel.
- Tesztelhetőség: A játékmotor üzleti logikáját (speciális lépések, matt detektálás, PGN parser) lefedő JUnit egységtesztek.
## 4. Terv
### 4.1 Szereplők
- Játékos: Az a személy aki játszmát kezdeményez, lépéseket tesz, kezeli a játék felületét.
- Fájlrendszer: Másodlagos szereplő. PGN/FEN állományokat kezel.
### 4.2 Használati esetek (Use Cases):
- Új játszma indítása
- Lépés megtétele a táblán
- Lehetséges lépések megtekintése
- Lépés visszavonása
- Játszma mentése (PGN formátumban)
- Játszma betöltése és visszajátszása (PGN formátumból)
- Táblaállás betöltése/mentése (FEN formátumból/ban)
### 4.3 GUI váza:
```text
+-------------------------------------------------------------+
| Menüsor: [Fájl (Új, Betöltés, Mentés)] [Nézet] [Segítség] |
+-------------------------------------------------------------+
| +---------------------------+ +------------------------+ |
| | | | Státusz / Soron lévő: | |
| | | | Fehér | |
| | | | Sakk jelzés: Nincs | |
| | | +------------------------+ |
| | | | Lépéstörténet: | |
| | SAKKTÁBLA | | 1. e4 e5 | |
| | (8 x 8) | | 2. Nf3 Nc6 | |
| | | | 3. Bb5 ... | |
| | | +------------------------+ |
| | | | Vezérlők: | |
| | | | [< Előző] [Következő >]| |
| | | | [Undo] | |
| +---------------------------+ +------------------------+ |
+-------------------------------------------------------------+
```
### 4.4 UML
<p align="center">
<img src="assets/UML.svg" alt="Architecture Diagram" width="600" />
</p>
+4
View File
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file with editors other than draw.io -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" style="background: #ffffff; background-color: var(--ge-dark-color, #121212); color-scheme: dark;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2502px" height="1523px" viewBox="0 0 2502 1523" content="&lt;mxfile host=&quot;app.diagrams.net&quot; scale=&quot;1&quot; border=&quot;15&quot;&gt;&#xA; &lt;diagram id=&quot;C5RBs43oDa-KdzZeNtuy&quot; name=&quot;Oldal-1&quot;&gt;&#xA; &lt;mxGraphModel dx=&quot;2603&quot; dy=&quot;2222&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;827&quot; pageHeight=&quot;1169&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&#xA; &lt;root&gt;&#xA; &lt;mxCell id=&quot;WIyWlLk6GJQsqaUBKTNV-0&quot; /&gt;&#xA; &lt;mxCell id=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-0&quot; /&gt;&#xA; &lt;mxCell id=&quot;_r-HP5b758gAeptMtzsk-38&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; style=&quot;shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;fillColor=default;&quot; value=&quot;&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry height=&quot;880&quot; width=&quot;1750&quot; x=&quot;-500&quot; y=&quot;-370&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;_r-HP5b758gAeptMtzsk-0&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; style=&quot;verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;&quot; value=&quot;&amp;lt;p style=&amp;quot;margin:0px;margin-top:4px;text-align:center;&amp;quot;&amp;gt;«Abstract»&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;margin:0px;margin-top:4px;text-align:center;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Piece&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;hr size=&amp;quot;1&amp;quot; style=&amp;quot;border-style:solid;&amp;quot;&amp;gt;&amp;lt;p style=&amp;quot;margin:0px;margin-left:4px;&amp;quot;&amp;gt;- PieceColor: Color&amp;lt;/p&amp;gt;&amp;lt;hr size=&amp;quot;1&amp;quot; style=&amp;quot;border-style:solid;&amp;quot;&amp;gt;&amp;lt;p style=&amp;quot;margin:0px;margin-left:4px;&amp;quot;&amp;gt;+ Piece(Color)&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;margin:0px;margin-left:4px;&amp;quot;&amp;gt;+ getMoveDomain() : Direction[]&amp;amp;nbsp;&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;margin:0px;margin-left:4px;&amp;quot;&amp;gt;+ getColor() : Color&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;margin:0px;margin-left:4px;&amp;quot;&amp;gt;+ getSymbol() : Char&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;margin:0px;margin-left:4px;&amp;quot;&amp;gt;+ getType() : Type&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;margin:0px;margin-left:4px;&amp;quot;&amp;gt;+ hasMoved() : bool&amp;lt;/p&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry height=&quot;170&quot; width=&quot;260&quot; x=&quot;250&quot; y=&quot;-30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;_r-HP5b758gAeptMtzsk-3&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; style=&quot;verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;&quot; value=&quot;&amp;lt;p style=&amp;quot;margin:0px;margin-top:4px;text-align:center;&amp;quot;&amp;gt;«Final»&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;margin:0px;margin-top:4px;text-align:center;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Pawn&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;hr size=&amp;quot;1&amp;quot; style=&amp;quot;border-style:solid;&amp;quot;&amp;gt;&amp;amp;nbsp;+ getMoveDomain() : Direction[]&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry height=&quot;70&quot; width=&quot;176&quot; x=&quot;-486&quot; y=&quot;390&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;_r-HP5b758gAeptMtzsk-4&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; style=&quot;verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;&quot; value=&quot;&amp;lt;p style=&amp;quot;margin:0px;margin-top:4px;text-align:center;&amp;quot;&amp;gt;«Final»&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;margin:0px;margin-top:4px;text-align:center;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;King&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;hr size=&amp;quot;1&amp;quot; style=&amp;quot;border-style:solid;&amp;quot;&amp;gt;&amp;amp;nbsp;+ getMoveDomain() : Direction[]&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry height=&quot;70&quot; width=&quot;176&quot; x=&quot;-176&quot; y=&quot;390&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;_r-HP5b758gAeptMtzsk-5&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; style=&quot;verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;&quot; value=&quot;&amp;lt;p style=&amp;quot;margin:0px;margin-top:4px;text-align:center;&amp;quot;&amp;gt;«Final»&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;Line truncated

After

Width:  |  Height:  |  Size: 850 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB