Giter Club home page Giter Club logo

chess-game's Introduction

IJA

IJA project repository

chess-game's People

Contributors

originalutkin avatar

Watchers

 avatar

chess-game's Issues

Recalculating possible movements

Recalculate possible movements for piece right after clicking to cell on the game board.

  • Backend (Calculate possible movements of chess piece)
  • GUI (Show all calculated movements of piece)

Open new tabs

Currently we cannot check which tab is opened and which tab should be changed by board operations as redo, undo, save etc.

Re-play button

Please add replay button to gui ("kdykoliv je možné restartovat přehrávání na začátek partie")

Notation

  • Full notation

  • Brief notation

  • GUI representation of moves

Wrong pieces color

Color isn't set for pieces properly in game init process. Pawns have a correct color, other pieces not

Close tab

After tab is closed and removed from Tabs variable program will crash / incorrect work with mouse input because all of the tab indexes will be recalculated in list

PLAN

  1. Základní požadavky
  • a) aplikace obsahuje grafické uživatelské rozhraní šachovnice je zobrazena včetně popisů řádků (1-8) a sloupců (a-h) (need info)

  • b) figurky jsou reprezentovány obrázky

  • c) vedle šachovnice je zobrazen zápis partie (in progress)

  • d) je možné otevřít více partií ve více tabech (nikoliv oknech); tyto partie jsou nezávislé

  • e) vždy se provádí kontrola, zda jsou tahy přípustné podle pravidel (není třeba uvažovat všechny detaily, postačí základní tahy figur)

  1. Základní funkce
  • a) po spuštění je možné načíst partii, provede se ověření formátu zápisu

  • b) přehrávání je buď manuální nebo automatizované, je možné kdykoliv přepínat mezi těmito režimy; je možné přehrávat (krokovat) partii dopředu i zpět

  • c) manuální: ovládá uživatel prostřednictvím tlačítek

  • d) automatizované: je možné nastavit prodlevu mezi jednotlivými kroky; kdykoliv je možné zastavit a pokračovat dopředu či zpět.

  • e) kdykoliv je možné restartovat přehrávání na začátek partie

  • f) při přehrávání se vždy zobrazuje celý zápis partie a zvýrazňuje pozice aktuálního tahu

  • g) kliknutím na pozici v zápisu lze okamžitě zobrazit stav partie na této pozici; další krokování pokračuje z této pozice

  1. Vlastní tahy uživatele
  • a) pokud uživatel provede vlastní tah při zastaveném přehrávání, zruší se zbytek zápisu od aktuální pozice a další vývoj partie již provádí uživatel nové tahy uživatele se zaznamenávají do zápisu
    tuto novou partii je opět možné přehrávat

  • b) uvedený postup je možné opakovat - pokud je rozehrána a krokována vlastní partie a je právě zobrazen některý ze starších tahů, může uživatel opět provést vlastní tah; v tom případě se opět zruší zbytek zápisu od zobrazeného tahu

  • c) možnost operace undo a redo: tahy provedené uživatelem lze vracet zpět (undo) a opět obnovit (redo) až do okamžiku před prvním vlastním tahem, tj. až do návratu k původní načtené partii (undo a redo při přehrávání partie nedává smysl)

  • d) nově vytvořený zápis partie lze uložit

Code refactor

Controller should be totally refactored. A lot of stuff is written dirty

Refactor InitializeGUI

this method should be definitely refactored.

  • Change method name
  • move squares array to makeBoardPanel method
  • change InitializeGUI method signature

Max possible tabs

Set max possible tabs to 5 (or other number, doesn't matter). After that show Error message to user and don't create a new one

Tab counter

Add tab counter and use it for checking opened tabs / tab names

Turn notation parser / loader

Create parser for loading turn notations and create board object using it

  • Check which type of notation was used for saving game (short or long turn notation)
  • Create object using this notations

Project refactor

  • Move all backend files to backend package
  • Move controller file to Game Controller package
  • Move gui files to gui package
  • Separate gui classes to other files

Improve GUI

  • letter designation for columns

  • number designation for rows

Show turns

Show turns which were made during the game on board panel and made this entries clickable

Implement move method for chess pieces

Expected flow as :

  1. Recalculate possible turns for selected chess piece on current position.
  • Pawn
  • Rook
  • King
  • Knight
  • Queen
  • Bishop
  1. Implement move piece method for pieces:
  • Pawn
  • Others

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.