Commit Graph

117 Commits

Author SHA1 Message Date
6d63c5c358
Created a separate UI package
- Renamed Chess to MainWindow
- Moved MainWindow, BoardPanel and TextureUtil into the UI package
2020-08-15 23:24:24 +02:00
9e031f4000
Fixed bugs in move generation, prepared checkmate recognition 2020-08-15 23:24:23 +02:00
df762ce46c
Added move generation
+ Methods for generating legal and pseudolegal moves in Piece
+ Implementations of move generation for every piece
+ Highlighting of available moves for the selected piece in BoardPanel
- Split up the move method in Board to move and attemptMove
2020-08-15 23:24:23 +02:00
8b6b9766e2
Optimized BoardPanel and texture loading
- Renamed TextureLoader to TextureUtil
- Moved entire texture handling to TextureUtil
2020-08-15 23:24:22 +02:00
30074f385e
Added tool panel and event system for check notification
+ GameEvent and GameEventListener
+ Check detection and notification in Board and BoardPanel
+ Tool panel in Chess with a restart button
2020-08-15 23:24:21 +02:00
4b274e3d0f
Fixed board size issues
- TextureLoader does not perform scaling anymore
+ Scaling method in BoardPanel
2020-08-15 23:24:21 +02:00
ab6fa7e52f
Fixed king movements with regards to check detection 2020-08-15 23:24:20 +02:00
11f1795d99
Added check detection
+ Position class and implementation (mostly pieces)
+ King position tracking, check detection and utility functions related
to Position in Board
2020-08-15 23:24:19 +02:00
43437d7b7b
Fixed / added positional awareness in pawn movements 2020-08-15 23:24:19 +02:00
1f371ad006
Added block checking to move validation
+ Move class
+ Utility methods in Board
+ isFreePath method in Piece with implementations in every subclass

- Pawn movement is still not fully implemented, including promotion, en
passant and movement over two tiles
2020-08-15 23:24:18 +02:00
21737d6845
Added coordinate-based move validation
+ Simple input handler for testing purposes in BoardPanel
+ Abstract isValidMove method in Piece
+ Coordinate-based implementations of isValidMove in every subclass of
Piece
2020-08-15 23:24:17 +02:00
ff26346623
Added all other pieces and moved them into a separate package 2020-08-15 23:24:16 +02:00
f420d4f9c2
Added pawn rendering
+ Initializing pawns in Board
+ Piece rendering in BoardPanel
- Fixed size initialization bug in BoardPanel
+ Pawn class
+ Color property in Piece
2020-08-15 23:24:16 +02:00
138bda75a4
Preparing board implementation and rendering
+ Board class as data model
+ Texture loading code in BoardPanel
+ Abstract Piece class with Type enum
- Moved piece textures into res/pieces
- Changes TextureLoader to work directly with files
2020-08-15 23:24:15 +02:00
e17373a89e
Updated .project and .gitignore 2020-08-15 23:24:14 +02:00
0e5a88408a
Added Eclipse project and basic class structure
+ Piece icons
+ TextureLoader
+ BoardPanel as a UI for the chess board
+ Chess as a main class
2020-08-15 23:24:14 +02:00
f53e6f987d
Initial commit 2020-08-15 23:24:13 +02:00