2016-05-25 6 views
1

Для летнего проекта я работаю над шахматным движком. Я определил законность движения, у меня есть рабочая доска, и я готов начать выбор движения. для minimax я считаю, что каждый узел возвращает счет, но я боюсь, что по мере того, как счет поднимается вверх по дереву, он забудет ход, который он собирался сделать. поэтому я думал, что в каждом узле минимакса я бы сохранил 2 списка. один для хода и один для оценки хода.Минимакс с шахматным двигателем moveselection

List<LegalMove> Moves = new List(256); 
List<Interger> scores = new List(256); 
public int Minimax(int depth, boolean maxplayer) 

if (maxplayer){ 
for(all possible moves){ 
minimax(depth-1,false) 
Moves.add(CompMove(variables) 
Score.add(CompScore(same variables) 
    } 
} 

вопрос лежит в списке Перемещает где CompMove возвращает аннулируются, так что я не могу сделать список его. поэтому, если кто-либо знает способ связать ссылочный номер со многими экземплярами метода, который возвращает void, все имеющие разные параметры, пожалуйста, разместите его ниже. Я буду вечно великим. если я не достаточно ясен, просто спросите, и я стараюсь изо всех сил очистить. Благодаря!

+0

@ tkng15 Использует Minimax Algorithm требование, указанное вашей школой? – user3437460

+0

Это персональный проект. minimax - это всего лишь алгоритм, который я вижу при игре с нулевыми суммами в 2 игрока. – tkgn15

ответ

0

MiniMax алгоритм написан действительно хорошо here.

+0

Я не тратил много времени на минимаксный псевдокод, потому что мне действительно нужны списки для работы. или что-то несколько эквивалентное, где я могу сохранить определенную вариацию движущейся фигуры с определенным индексом, а затем не называть ее, пока глубина не будет равна нулю, и она определила, какой ход лучше всего взять в данный момент времени. – tkgn15

+0

@ tkgn15 Если вы можете связать некоторый ваш другой код, который работает с этим Java-кодом минимаксного, например CompMove, CompScore, Minimax и т. Д., Это будет очень полезно – jsurf