this is because I didn't take into account that when a pick is made, after each loop the board needs to behave like there was no pick - when coming back from recursion to the next loop iteration.
for example: (from the perspective of 1 as AI)
we started with [-1,0,0,0,0,0,1,0,0], first iteration MAX picks [-1,0,1,0,0,0,1,0,0] and goes into recursion, recursion doesnt effect this loop board because it is cloned (different board (array) pointing to a different place in memory), so the next iteration should represent the original board because it represents a situation that MAX decided to pick something different than [-1,0,1,0,0,0,1,0,0], but instead it continues with this pick and continues to [-1,1,1,0,0,0,1,0,0] -
ALREADY impossible situation, the game should be with played Alternately, cant have 3 x's and 1 o