Ciao a tutti!
Sto svolgendo un esercizio che riguarda la simulazione del gioco della tartaruga e la lepre, e tratta di un percorso di 70 caselle (quindi ho utilizzato un vettore). Ogni animale partirà dalla casella numero 1. Verrà utilizzato un orologio per scandire a ogni ciclo la posizione da effettuare secondo queste regole:

Animale: Tipo di mossa: % di tempo: Mossa effettiva:
Tartaruga Arrancata rapida 50% 3 caselle a destra
Scivolone 20% 6 caselle a sinistra
Arrancata lenta 30% 1 casella a destra

Lepre Dormita 20% Nessuna mossa
Salto lungo 20% 9 caselle a destra
Scivolone lungo 10% 12 caselle a sinistra
Salto corto 30% 1 casella a destra
Scivolone corto 20% 2 caselle a sinistra

Quindi verrà utilizzata una variabile i per riprodurre le percentuali in tabella (in modo casuale), per esempio nel caso della tartaruga quando 1<=i<=5 (50%) la tartaruga dovrà effettuare 3 passi a destra; quando 6<=i<=7 (20%) effettuerà 6 passi a sinistra e quando 8<=i<=10 (30%) un passo a destra.
A ogni ciclo verrà visualizzato il percorso e nella cella dove sarà fermata la tartaruga verrà visualizzato "T", nella cella della lepre "L" e in caso di scontro tra i due animali "OUCH!".
Bisogna tenere conto delle posizioni di ogni animale a ogni ciclo.
Il programma termina quando uno dei 2 animali raggiunge il traguardo (casella n. 70).

Ora il mio problema è che nell'esecuzione non vengono visualizzati i movimenti delle lepre e stranamente si scontrano solo verso un certo punto del percorso.
vi posto il codice:

codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int segnaPosTart( int ran );
int segnaPosLepr( int ran );
void mostraPerc( int per[70] );

int main() 
{
	int percorso[70] = {0}; // vettore del percorso
	int posTart = 0;
	int posLepr = 0;
	int i; // i è compreso tra 1 e 10 e serve per generare una mossa.
	int k;



	srand(time (NULL)); 	/* specifica il seme per il generatore di 
				numeri casuali */
	
	printf("BANG !!!!!\n");
	
	while ( (posTart <= 69) || (posLepr <= 69) ) {
		
		//Azzero il percorso per mostrare solo le mosse eseguite nel ciclo
		for (k=1; k<= 70; k++) {
			percorso[k] = 0;
		}

		/* in base al numero generato posTart e posLepr restituiscono
		 * il tipo di mosse da eseguire (ovvero i passi avanti o dietro) */
		i = rand() % 9 + 1;
		posTart += segnaPosTart(i);
		
		i = rand() % 9 + 1;
		posLepr += segnaPosLepr(i);

		percorso[posTart] += 1;
		percorso[posLepr] += 2;
		
		mostraPerc(percorso);
		printf("\n");
		
		}
		
	
	
	if (posTart >= 70)
		printf("\n\nVINCE LA TARTARUGA!!!!");
		
	else if (posLepr >= 70)
		printf("\n\nVINCE LA LEPRE!!!!");
		
	return 0;
}

int segnaPosTart( int ran )
{

	int pos;	

	if ( (ran >= 1) && (ran <= 5) )
		pos = 3;
			
	else if ( (ran >= 6) && (ran <= 7) ) 
		pos = -6;
			
	else if ( (ran >= 8) && (ran <= 10) )
		pos = 1;
		
	return pos;	
}

int segnaPosLepr( int ran )
{
	int pos;
	
	if ( (ran >= 1) && (ran <= 2) )
		pos = 0;
			
	else if ( (ran >= 3) && (ran <= 4) ) 
		pos = 9;
			
	else if ( (ran >= 5) && (ran <= 5) ) 
		pos = -12;
	
	else if ( (ran >= 6) && (ran <= 8) ) 
		 pos = 1;

	else if ( (ran >= 9) && (ran <= 10) ) 
		pos = -2;

	return pos;
}

void mostraPerc( int perc[70] )
{
	int k;

	for (k=1; k<=70; k++) {
		
		if (perc[k] == 1) 
			printf("%4s", "T");
		
		else if (perc[k] == 2)
			printf("%4s", "L");
		
		else if (perc[k] == 3)
			printf("%5s", "OUCH!");
			
		else if (perc[k] == 0)	
			printf(" ");
		
	}	

}
spero mi possiate dare una mano