I wish to write a chess AI which simulates the way I think over the board, using C++. My focus is on writing the algorithms for choosing moves (decision making), not defining the board and pieces. To my knowledge, most chess programs written to date are focused on taking advantage of the computer's calculating powers (aka brute force method). My program will be different in that the focus is going to be on emulating human thinking (in this case my own way of thinking which is actually highly organized).I am relatively new to programming. Any advice you could give me on what topics to read, what programming paradigm(s) to use, any potential pitfalls I need to be aware of beforehand, or anything else you think I should know would be useful to me.My gut feeling is that the coding will, for the most part, not benefit from OOP paradigm . Concepts such as positional evaluation, pattern recognition, weighing out pros and cons of various moves, knowing when to stop the search(pruning), defining goals and finding means to reach them, don't naturally resemble objects...or do they? My guess is that procedural programming (simply providing the computer with a set of instructions, an algorithm for picking moves), or perhaps functional programming (FP) would be more relevant in this case? Let me know what you think, thank you.I should add that I am looking to make the program as strong as possible, another reason why I suspect OOP may not be the best approach.Another question that concerns me: Considering how the focus of the program is to replicate human thought process, will I have to start from scratch, or is it worth taking another program as basis?
What programming paradigm do you think would work best for the AI aspect of a chess engine?
c++;artificial intelligence;procedural;chess