Member 13012394 Ответов: 1

Может ли кто-нибудь объяснить этот алгоритм ?


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;
	}


Что я уже пробовал:

Я не понимаю этого алгоритма ?
Кто-нибудь может мне помочь, пожалуйста ?
Заранее спасибо.

Jochen Arndt

Объяснить раскомментированный фрагмент кода с неизвестными функциями и переменными вне его контекста?

Невозможно.

Member 13012394

Так вы можете объяснить мне алгоритм negamax в общем, пожалуйста ?

Jochen Arndt

Нет, потому что я не знаю, что такое " О " и "Х".
Но даже зная, что это невозможно.

Спросите того, кто написал код.

1 Ответов

Рейтинг:
0

OriginalGriff

Цитата:
Так вы можете объяснить мне алгоритм negamax в общем, пожалуйста ?

В Википедии: Negamax - Википедия[^]