Forget chess! first clear up your basic skills. Using AI in chess is extremely difficult i would say. It would take months or even years of your effort. You can plan for 2 player Chess though. It's relatively easy compared to AI version
Forget chess! first clear up your basic skills. Using AI in chess is extremely difficult i would say. It would take months or even years of your effort. You can plan for 2 player Chess though. It's relatively easy compared to AI version
Hmm I coded up a chess AI (level of a candidate master, bugfree as far as I can tell) in ~1 month (few hours every day). I was learning basic things like minimax along the way (A LOT of reading), too. So it's definitely doable as a newbie project (I only had about 1 year of programming experience at that time).
I agree the OP should get a stronger grasp on C++ first, though.
Minimax algo is way ancient and probably discarded in field of AI. Also you can't generate all possible moves through minimax. It will be too expensive. If you let go this thing i agree it can be done by newbie
XOR swap is the only algorithm I would know that's truly discarded and it's way more ancient than minimax. XOR swap was obsoleted by modern processing instructions. Algorithms aren't discarded like old scientific theories.
99% of all current chess AIs use minimax (there are some experimental ones using other algorithms and they are not nearly as strong). Using naive minimax you can look ahead about 5 plies (half moves). With alpha-beta prunning (an optimization for minimax) you can get to ~8 (compared to the theoretical 5x2 = 10 for optimal move ordering). There are many other very effective optimizations - hash tables for better move ordering (which increases the effectiveness of alpha-beta), transposition table (there are many ways to reach the same positions, no need to search them over and over), null-move prunning (if you don't make a move, let your opponent move twice in a row, and you still have a fail-high, don't bother searching this move)... With all those things and some other minor optimizations, you can get to 12-15 plies (with selective extensions on interesting lines, and reductions on boring lines). With a good static evaluation function, it is about master strength. On a supercomputer (like Deep Blue), 20 plies is not uncommon.
Minimax is still the way to go for many board games (chess, othello, TTT, checkers, etc). One notable exception is Go. There has been very little success of minimax with Go, because of the huge branching factor.