有人可以解释这个算法吗?

有人可以解释这个算法吗?

问题描述:

private int NegaMax(int p) {
		int End = GameOver();
		if (End != 0)
			return End;

		int best_value = (p == 1) ? 512 : 2048;
		for (int b = 1; b <= 256; b = b << 1) {
			int move = (~(X | O) & b);
			if (move != 0) {
				put(p * move);
				int s = NegaMax(-p);
				best_value = p * (s & 0xfffffe00) > p
						* (best_value & 0xfffffe00) ? ((s & 0xfffffe00) | move)
						: best_value;
				clear(move);
			}

		}
		return best_value;
	}





我的尝试:



我不明白这个算法?

有人可以帮帮我吗?

提前谢谢。



What I have tried:

I don't understand this algorithm ?
Can someone help me please ?
Thanks in advance.

引用:

那么你能解释一下我的negamax算法吗?

So can you explain me the negamax algorithm in general please ?



维基百科可以: Negamax - 维基百科 [ ^ ]