|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Feb 2008
Messaggi: 4
|
[C++]Help esame!!
salve a tutti, leggo da molto il forum ma ora ho necessità di scrivere sono un perito informatico,ma faccio l'operaio. Mi sono iscritto da poco all'uni,e come primo esame di pogrammazione mi capita questo:
Si vuole sviluppare un algoritmo per il cammino di un robot in un labirinto. La stanza è pavimentata a tasselli quadrati (caselle) ed è dotata di pareti esterne e interne come in figura. Il robot si muove a richiesta dell’utente sempre solo di una casella alla volta, scelta tra una delle quattro caselle vicine. Il robot è in grado di “vedere”, cioè di stabilire, guardando in una delle quattro direzioni (avanti, indietro, sinistra, destra), quante sono le caselle libere (in linea retta) fino alla parete. La legge con cui il robot si muove è la seguente: nel 30% dei casi il robot si muove a caso in una delle quattro caselle vicine possibili (parete permettendo); nel 70% dei casi il robot prima “vede” e individua la direzione (avanti, indietro, sinistra, destra) del movimento (scegliendo quella cui corrisponde il percorso possibile più lungo; nel caso di più percorsi di massima lunghezza, la direzione viene scelta a caso tra questi) e poi si muove (sempre di un solo passo) in quella direzione. Nella stanza, inoltre, sono presenti dei “buchi neri” che fanno terminare il cammino prematuramente (5 uscite distribuite in modo casuale). Inoltre sono presenti 5 “botole” che permettono lo spostamento del robot in una posizione casuale della stanza. La simulazione termina quando il robot “esce dalla porta” della stanza (in basso a sinistra nella figura). L’algoritmo deve visualizzare il percorso del robot dopo ogni passo, mostrando la stanza e la posizione del robot.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 Aiuto io alle superiori ho fatto il pascal!!!! chi è interessato e vuole la figura me lo dica. grazie
__________________
Il mio PCino
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Mi dispiace, ma qui non si fanno interi esercizi
|
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Feb 2008
Messaggi: 4
|
#include <stdio.h>
#include <stdlib.h> #include <time.h> void avanza (int,int,int,int,char); void main() { srand((unsigned int)time(0)); int i,j; char scacchiera[16][16]= {{'m','m','m','m','m','m','m','m','m','m','m','m','m','m','m','m'}, { 'm',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','m'}, { 'm',' ',' ','m',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','m'}, { 'm',' ',' ','m',' ',' ',' ','m','m','m','m','m','m','m','m','m'}, { 'm',' ',' ','m',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','m'}, { 'm',' ',' ','m',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','m'}, { 'm',' ',' ','m',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','m'}, { 'm',' ',' ','m',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','m'}, { 'm',' ',' ','m',' ',' ',' ','m',' ',' ',' ',' ',' ',' ',' ','m'}, { 'm',' ',' ','m',' ',' ',' ','m',' ',' ',' ',' ',' ',' ',' ','m'}, { 'm',' ',' ',' ',' ',' ',' ','m',' ',' ',' ','m','m','m',' ','m'}, { ' ',' ',' ',' ',' ',' ',' ','m',' ',' ',' ',' ',' ',' ',' ','m'}, { ' ',' ',' ',' ',' ',' ',' ','m',' ',' ',' ',' ',' ',' ',' ','m'}, { ' ',' ',' ',' ',' ',' ',' ','m',' ',' ',' ',' ',' ',' ',' ','m'}, { 'm',' ',' ',' ',' ',' ',' ','m',' ',' ',' ',' ',' ',' ',' ','m'}, { 'm','m','m','m','m','m','m','m','m','m','m','m','m','m','m','m'}}; for (i=0;j=11;j<13){ avanza; } ; void avanza (); int nx,ny; char x; for (i=1;i<=1;i++){ /* genera a caso la posizione nella scacchiera (5x5) */ nx=rand()%17; ny=rand()%17; scacchiera[nx][ny]='x'; } for (i=0;i<16;i++){ for (j=0;j<16;j++) printf(" %c",scacchiera[i][j]); printf("\n");} getchar () ; } help lo compilo, nn mi da errori ma nn viene visualizzato nulla!!!:muro: dove sbaglio??
__________________
Il mio PCino
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Dove hai definito la funzione avanza ?
Mi sa che devi ripassarti un po' come si strutturano i programmi in C (questo programma di C++ non ha niente) e come si definiscono e si richiamano le funzioni. |
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: Feb 2008
Messaggi: 4
|
ve lo detto vengo dal pascal col c è il primo approccio!!
__________________
Il mio PCino
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:31.



















