Attualmente sto cercando di mappare come creare un buon algoritmo che non avrà problemi per trovare il percorso più breve. Il labirinto consiste in una dimensione X e Y come input; Tuttavia, il labirinto genererà ostacoli all'interno delle dimensioni e generato casualmente. C'è un ingresso e almeno un'uscita dopo aver trovato il percorso più breve. Il modo per trovare l'uscita e il percorso più breve sarà in un ordine di movimenti. Prima controlla se è disponibile la salita, poi a sinistra, poi a destra e infine in basso (movimenti prioritari: up- > left- > right- > down). I movimenti devono essere orizzontali e verticali, quindi le mosse diagonali sono illegali, sfortunatamente.
Il mio pensiero era probabilmente quello di costruire un algoritmo di backtracking che risolva questo problema; ma c'è un problema per questo. Dice che il labirinto non sarà più di un miliardo di quadrati, il che significa che può essere un X e Y più grande. Pertanto, il programma si spegnerà e dovrà allocare più memoria da eseguire con un file Gigabyte. Quindi, per ridurre questa quantità di memoria, forse usare bitfield per ridurre e manipolare bitwise (che non ho mai usato come una struttura dati).
Il mio punto debole è di avere una solida base su come affrontare un problema che può essere devastante per codificare e come fare attenzione. Mi stavo chiedendo quale tipo di approccio dovrei considerare anche io. Sono felice di discutere ulteriormente e di essere curioso dei tuoi approcci. Mi piace fare un sacco di domande solo per me per capire in modo efficiente.