Chess is one of the oldest and most popular board games ever, with a rich history that dates back over 1,500 years. It is one of the greatest intellectual challenges ever created. Indeed, it requires players to apply strategic thinking, decision-making, and creativity to defeat the opponent. The emergent complexity of chess mechanics has intrigued researchers and scholars in the software development field. It represents an intriguing problem-solving challenge. Innovative developments in artificial intelligence, machine learning, and algorithms have been developed to optimize and perfect the strategy to play the game.
Furthermore, chess has been used for teaching programming skills in schools and universities. As shown in [1], chess can serve as a tool to teach fundamental aspects of software development. For instance, how to use software tools, how to create organized, structured, high-quality code, computer networks and communications, data structures, object-oriented programming concepts, and even mobile development.
The course of constant and rapid innovation in the field of chess programming, as well as its frequent use in academia, has been greatly enhanced by the incorporation of open-source software. Open-source software offers quality, security, reliability, flexibility, and constant support at a very accessible price. Therefore, students, teachers, and researchers around the world find open-source chess software an invaluable option for academic and research projects. Stockfish, one of the most powerful open-source chess engines currently available, displays the potential of open-source projects to compete with company products.
Given the previous context, the goal is to develop a software project using custom and open-source software tools that explore the mechanics of chess. A chess videogame was chosen because 1) The components of a video game (mechanics, visuals, user interface, animation, among others) allow for using the p5.Quadrille.js library in different scenarios, and 2) The mechanics and rules of chess are deep enough to provide an application with sufficient complexity.
This project is relevant because it contributes to the development of open-source educational software that can assist students in learning Object-Oriented Programming and Application Programming Interfaces (API). Also, it opens up the possibility of developing more complex projects in the future.
References
- [1] Gusev, D. A. (2018). Using Chess Programming in Computer Education. 2018 ASCUE Proceedings. https://files.eric.ed.gov/fulltext/ED592860.pdf