Salve, ho un problema riguardante un progetto di programmazione in linguaggio C:
Si vuole sviluppare un programma per la simulazione del gioco della guardia e ladro
in un labirinto.
La stanza è pavimentata a tasselli quadrati (caselle) ed è dotata di pareti esterne e
interne. Si sceglie casualmente la posizione della guardia e del
ladro . Entrambi si muovono di una casella alla volta, scelta tra una delle
quattro caselle vicine. Il ladro deve uscire dal labirinto e viene guidato dall’utente.
La guardia compie ad ogni turno un passo in modo tale che conoscendo la posizione
del ladro può calcolare lo spostamento minimo per avvicinarsi a lui.
Il ladro conosce posizione della porta e con probabilità del 50% compie ad ogni
turno un passo nella sua direzione oppure in una posizione casuale.
La simulazione termina quando il ladro “esce dalla porta” o che la guardia cattura il
ladro. L’algoritmo deve visualizzare il percorso del ladro e della guardia dopo ogni
passo, mostrando la stanza e la posizione dei due.
L’algoritmo usa la function rand() in stdlib per generare numeri casuali: si
ricorda che, per esempio, se numero_casuale è un int, la chiamata
numero_casuale=rand()%11; genera un numero casuale intero (distribuzione
uniforme) nell’insieme (0,1,2,3,4,5,6,7,8,9,10). Usare sempre la srand() per
rendere automatica la scelta iniziale del seed della sequenza di numeri casuali.
Effettuare almeno 5 test, variando la posizione iniziale del robot. Effettuare anche 3
test cambiando ogni volta la disposizione delle pareti nella stanza e cercando di
trovare disposizioni critiche delle pareti.
Ho completato il main e la funzione di stampa a video del labirinto. Tuttavia ho difficoltà a capire come "La guardia compie ad ogni turno un passo in modo tale che conoscendo la posizione
del ladro può calcolare lo spostamento minimo per avvicinarsi a lui" e "Il ladro conosce posizione della porta e con probabilità del 50% compie ad ogni
turno un passo nella sua direzione oppure in una posizione casuale". Ho capito come far muovere sia il ladro che la guardia sulla pedina (void guardia_NORD, void ladro_SUD, etc), ma non riesco a sviluppare l'algoritmo in base a quei dati (probabilità etc).
SAPRESTE AIUTARMI?? GRAZIE 1000