Ciao ragazzi sapete come posso implementare un buon hashing che possa essere calcolato dallo stato precedente del sistema?
mi spiego meglio...
Sto sviluppando (che parolone :gren: ) un programma che risolva i livelli si sokoban (un gioco in cui bisogna spostare delle casse negli appositi spazi rispettando delle regole +ttosto limitative (un gioco di logica)); cmq risolvere questo gioco e' un problema pspace completo il che significa che devo provare praticamente tutte le possibilita.
Per evitare di ritornare sempre allo stesso punto oviamente (almeno penso sia ovio :tongue: ) utilizzo un hash che memorizzi gli stati del sistema in cui sono gia stato.
Calcolare l'hash pultroppo richiede troppo tempo perche mi costringe a leggere ogni casella dello schema; per evitare questo so della possibilita di usare un'hashing con lo xor (come nel gioco degli schacchi) cosi facendo una volta calcolato l'hash per lo schema iniziale posso arrivare all'hash di uno stato successivo semplicemente facendo lo xor o qualcosa del genere tra l'hash dello stato precedente e l'hash dello spostamente fatto.
Ovvero:
hash(stato_livello1)=hash(stato_livello2)-hash(spostamento fatto)
o qualcosa di simile :master:
La relazione tra gli hash dovrebbe essere + o - questa da quello che ho sentito dire solo che nn ho la + pallida idea di come realizzare tutto questo.
Ovvero come faccio una funzione hash che possa ricavare dall'hash di uno stato l'hash di un'altro stato (successivo o precedente) sapendo solo lo spostamento effettuato???