https://github.com/kripod/chess
Egyszerűsített sakk játék objektum-orientált szemlélettel elkészítve.
https://github.com/kripod/chess
chess cli
Last synced: 12 months ago
JSON representation
Egyszerűsített sakk játék objektum-orientált szemlélettel elkészítve.
- Host: GitHub
- URL: https://github.com/kripod/chess
- Owner: kripod
- License: mit
- Created: 2017-07-19T19:19:57.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-07-19T19:30:06.000Z (almost 9 years ago)
- Last Synced: 2025-02-05T19:09:45.632Z (over 1 year ago)
- Topics: chess, cli
- Language: C++
- Size: 18.6 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Sakk
A feladat egy egyszerűsített sakk játék elkészítése objektum-orientált szemlélettel. A program körönként kirajzolja a játéktáblát a hozzá tartozó sor- és vonaljelölésekkel, majd kér egy bemenetet a felhasználótól, melynek segítségével beolvasható az aktív játékos által végrehajtani kívánt lépés. A bemenet formátuma a következő:
```
([bábutípus])([kiindulás])[cél]([átalakulás])
```
- `bábutípus` _(opcionális)_: A léptetni kívánt bábu angol algebrai jelölése (egy karakterrel).
- __Lehetséges értékek:__
- `P` _(pawn, gyalog)_
- `N` _(knight, huszár)_
- `B` _(bishop, futó)_
- `R` _(rook, bástya)_
- `Q` _(queen, vezér)_
- `K` _(king, király)_
- __Alapértelmezett érték:__ `P`
- `kiindulás` _(opcionális)_: A léptetni kívánt bábu kiindulási koordinátái angol algebrai jelöléssel. Kötelező megadni, amennyiben a `cél` nem határozza meg egyértelműen.
- __Lehetséges értékek:__ `a1` - `h8`
- __Alapértelmezett érték:__ `cél` által meghatározott, amennyiben egyértelmű
- `cél`: A léptetni kívánt bábu cél koordinátái angol algebrai jelöléssel.
- __Lehetséges értékek:__ `a1` - `h8`
- `átalakulás`: Gyalog 8. sorra érkezése esetén annak átalakítása vezérré, huszárrá, bástyává vagy futóvá.
- __Lehetséges értékek:__ `Q`, `N`, `R`, `B`
A feladat elkészítéséhez __nem szükséges a sakk teljes szabályrendszerének implementálása__ _(lsd.: sáncolás, ütés menet közben, patthelyzetek felismerése)_, elegendő a lényegesebb szabályok beépítése a programba:
- Bábuk léptetése a játéktáblán _(ütések lehetőségével)_
- Sakk, illetve matt felismerése
_A megoldás elkészítéséhez STL tárolók is felhasználhatók. Az elfogadott bemenettípusok a fent leírtaktól kis mértékben eltérhetnek._
## Tesztelés
A program tesztelését a mellékelt tesztvektorok segítségével végeztem el, a memóriaszivárgás-mentességet pedig [Valgrinddal](http://valgrind.org) ellenőriztem.