Ho provato a creare il gioco della gara tra lepre e tartaruga però noto che mostra valori strani quando provo a stampare il percorso.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define EXIT_SUCCESS
#define PARTENZA 0
#define ARRIVO 70
#define AVVERSARI 2
void movimento(char *percorsoPtr,const char *animale);
void stampa(const char *percorsoPtr,const int situazione_partita);
int controlloVincita(const char *percorsoPtr);
int main(void)
{
char percorso[ARRIVO] = {0};
const char *animali[AVVERSARI] = {"Lepre","Tartaruga"};
int situazione_partita = 0;
srand(time(NULL));
while (situazione_partita == 0 )
{
movimento(percorso,animali);
situazione_partita = controlloVincita(&percorso[ARRIVO - 1]);
stampa(percorso,situazione_partita);
}
return EXIT_SUCCESS;
}
void movimento(char *percorsoPtr,const char *animale)
{
int movimento;
movimento = 1 + rand() % 10;
if (*animale == "Lepre")//MOVIMENTO LEPRE
{
switch(movimento)
{
case 1:
case 2:
break;
case 3:
case 4:
percorsoPtr += 9;
break;
case 5:
percorsoPtr -= 12;
break;
case 6:
case 7:
case 8:
percorsoPtr++;
break;
case 9:
case 10:
percorsoPtr -= 2;
break;
}
*percorsoPtr = "L";
}
else//MOVIMENTO TARTARUGA
{
switch(movimento)
{
case 1:
case 2:
case 3:
case 4:
case 5:
percorsoPtr += 3;
break;
case 6:
case 7:
percorsoPtr -= 6;
break;
case 8:
case 9:
case 10:
percorsoPtr++;
break;
}
*percorsoPtr = "T";
}
}
int controlloVincita(const char *percorsoPtr)
{
if (*percorsoPtr == "T")
{
return 1;//WIN TARTARUGA
}
else if (*percorsoPtr == "L")
{
return 2;//WIN LEPRE
}
else
{
return 0;
}
}
void stampa(const char *percorsoPtr,int situazione_partita)
{
size_t x;
for(percorsoPtr = PARTENZA;percorsoPtr < ARRIVO;percorsoPtr++)
{
printf("%c",percorsoPtr);
}
printf("\n");
if (situazione_partita == 1)
{
printf("WIN TARTARUGA");
}
else if (situazione_partita == 2)
{
printf("WIN LEPRE");
}
}