A (relatively) lightweight chess app supporting local two-player chess with enforced legality. There are plans to add more functions to the program, like a working chess-bot based on a recursive algorithm, and the ability to customise the chessboard. However, the project is still very much a work in progress so these are yet to be implemented.
This was my first JavaFX project, and so I was very much a novice at the time I first started this project: some of the code in the project is rather unclean with lots of coupling, however, I have to praise this code because it was what taught me what I was doing wrong, and the difficulty I found in coding helped demonstrate the advantages of doing things cleanly, following object-oriented principles.
If you happen to be a beginner developer who is quite new to JavaFX or Object-Oriented coding, I would encourage you to take a look through my project to see what you can learn from it. Not particularly because everything was done right, but because the code is quite varied. I am proud of the clever design of some of it yet some other parts are clear workarounds that could have been done much better if only my infrastructure was better put together. I think you might be able to see parts that you think look effective and magpie the strategies there, and you might see other pitfalls that you should resolve yourself to try avoiding!
I hope that the code is at least moderately readable, but do beware that I haven't used many comments throughout the program, so it is largely up to you to follow why certain things happen and where.
If this happens to help even a single person, I'd be exceptionally glad.
Thanks for checking out my first project.