by H.G.Muller » 24 Nov 2009, 11:17
OK, my mistake. After receiving "new" (which you do not detect, but which will be sent), the engine is supposed to be set for playing black. So it does not receive a "go" command, just the move. So what you wrote now works only if you let the computer play white (which you originally did).
You don't initialize side and compute_side now (which is a bad idea for local variables at any rate). To make it work you should initialize computer_side to black, and side to white. And after sending a move, you should flip side, because now (when I let it play white) it keeps sending the same move forever. (And an illegal one on top of it, as it is a black move, but even if you would have sent a white move it would only be legal the first time you sent it.)