Я пытаюсь построить игру Tic-Tac-Toe (только для игры на людях с устройством Android, я реализовал умный алгоритм под названием minimax для моего бота) с помощью Android GridView. Я все успешно скомпилировал (пользовательский интерфейс, минимаксный алгоритм для своего бота), но проблема все еще остается трудной для понимания, то есть когда я нажимаю на элемент Gridview, я хочу, чтобы GridView должен был обновиться немедленно, а потом мой бот начинает его вычислять. Итак, я реализовать свой код для установки на элементе GridView, щелкнув следующим образом:
gridviewBoard.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l){
//if it is a legal moves of player
if (isLegal(false, i)){
//put X into board
put(false, i);
//I want to update gridview immediately by using notifyDataSetChanged()
chessAdapter.notifyDataSetChanged();
//then start my bot calculating
// findBestMove is a method to find the best move for my bot
// by using minimax algorithm
int nextMove = findBestMove();
}
}
}
Howerver, gridviewBoard обновлялся не сразу, gridviewBoard обновляется только тогда, когда вычисляется функция findBestMove, а вычисление занимает много времени. Подводя итог, я хочу обновить gridviewBoard сразу после нажатия элемента и до расчета моего бота. Может ли кто-нибудь мне помочь, и извините за мою плохую грамматику английского языка.