我正在尝试使用Android GridView构建Tic-Tac-Toe游戏(仅用于Android设备的人类游戏,我已经为我的机器人实现了一种名为minimax的智能算法)。我已经成功构建了一切(UI,我的机器人的minimax算法)但是仍然有一个难以理解的问题,就是当我点击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。有人可以帮助我,抱歉我的英语语法不好。