It looks to me like you got the sign wrong. But you should learn how to debug your code. That position seems to be solvable with a depth-1 search, and that should be relatively easy to debug.
What do you mean by wrong sign ? Where ?
For both players ("computer" or "human") the function returns a positive score, i.e. everybody is trying to maximize score, right?
You're saying that at depth=1 , the function should return best move (score) ? If so, i can confirm that (it returns biggest score for current player) !
Please help .