// TODO: This can be implemented more efficiently. private DijkstraNode NextNode() { DijkstraNode bestNode = DijkstraNode.WorstNode(); for (int i = 0; i < this.board.size; i++) { for (int j = 0; j < this.board.size; j++) { if (!this.nodes[i, j].visited && this.nodes[i, j].tDist < bestNode.tDist) { bestNode = this.nodes[i, j]; } } } return(bestNode); }