PDA

Visualizza la versione completa : [C] Simulazione Gioco "Guardia e Ladri"


mariomet
11-02-2010, 16:12
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

LeleFT
11-02-2010, 16:16
Come indicato nel Regolamento interno (http://forum.html.it/forum/showthread.php?s=&threadid=973887) in questo forum non si forniscono soluzioni già pronte.

E' compito del proponente fornire la propria soluzione e, su quella, chiedere lumi, delucidazioni e suggerimenti.

Ci sono anche altre cosucce che il regolamento indica e che dovresti conoscere prima di postare (come l'indicazione obbligatoria del linguaggio nel titolo, ecc).

Buon proseguimento.


Ciao. :ciauz:

Loading