Just another question, i can't stop thinking that i am doing something wrong. so i need to check some things:
A. whenever the alpha beta function returns a score (beta cut off or not), i am saving the current position in the Hash table with the evaluation and the current move that was tried. this is the so called "hash move" that i will use later in case this position ever occur again. but I read somewhere (a chess blog) that i don't always have a best move to store...that is a little confusing, because i DO always have a best move! the move under investigation will be the best move! so i don't get it...what am i missing here?
B. the times when i store a position in the TT after a beta cut off, the hash move that i store is the same as the killer move for that same depth (if i understood correctly,a killer move is a move that caused a beta cut off). so many times i have both hash move and a killer move that are actually the same(!). is this normal? i always try the hash move first, and after that i check if the killer is the same move,and if it is ,i don't play it and just move on to the next. so many times, i don't benefit at all from using the hash move cause i have the killer moves anyway. up until now i haven't noticed a significant improvement from using the hash move that got me thinking that maybe i am doing something wrong