alea
This commit is contained in:
parent
f19f8172ca
commit
bc9da15a32
|
@ -5,7 +5,18 @@
|
|||
|
||||
unsigned int compteur; // tourne a 15 Hz
|
||||
|
||||
char obstacles[100]; // permet d'avoir de l'aléatoire pondéré pour les obstacles/bonus
|
||||
//char obstacles[100]; // permet d'avoir de l'aléatoire pondéré pour les obstacles/bonus
|
||||
|
||||
// obstacle
|
||||
// 0 = vide
|
||||
// 1 = mur
|
||||
// 2 = augmentation vitesse
|
||||
// 3 = diminution vitesse
|
||||
// 4 = vie
|
||||
// 5 = boost avant
|
||||
// 6 = essence
|
||||
// 7 = piece 1
|
||||
// 8 = piece 2
|
||||
|
||||
typedef struct Obstacles
|
||||
{
|
||||
|
@ -21,7 +32,7 @@
|
|||
unsigned int distance;
|
||||
unsigned int life;
|
||||
unsigned char speed;
|
||||
unsigned char decal_x;
|
||||
unsigned char decalx;
|
||||
} Voiture;
|
||||
|
||||
int Menu(void);
|
||||
|
|
|
@ -19,14 +19,14 @@ voiture.essence = 100;
|
|||
voiture.distance = 0;
|
||||
voiture.life = 1;
|
||||
voiture.speed = 50;
|
||||
voiture.decal_x = 15;
|
||||
voiture.decalx = 35;
|
||||
compteur = 0;
|
||||
|
||||
for(int i = 0; i<4; i++)
|
||||
{
|
||||
obstacle[i].coordx = -20;
|
||||
obstacle[i].num_obst = 1;
|
||||
}
|
||||
{
|
||||
obstacle[i].coordx = 130+15*i;
|
||||
obstacle[i].num_obst = i*2+1;
|
||||
}
|
||||
}
|
||||
|
||||
void update_essence()
|
||||
|
@ -73,7 +73,7 @@ int Jeu()
|
|||
unsigned short RTC_id;
|
||||
init(); // initialisation du Jeu
|
||||
|
||||
timer_start(TIMER_USER, 15, Clock_Hz, new_frame, 0);
|
||||
timer_start(TIMER_USER, 45, Clock_Hz, new_frame, 0);
|
||||
RTC_id = rtc_cb_add(RTCFreq_1Hz, update_essence, 0);
|
||||
|
||||
while(1)
|
||||
|
@ -103,10 +103,9 @@ int i,j;
|
|||
|
||||
dclear();
|
||||
|
||||
dimage(voiture.decal_x, 11*voiture.corridor, &img_formel1);
|
||||
dimage(voiture.decalx-20, 11*voiture.corridor, &img_formel1);
|
||||
|
||||
dprint(1, 1, "%d", compteur);
|
||||
//dprint(57, 1, "e : %d", voiture.essence);
|
||||
dprint(1, 57, "%d", rand(0,101,compteur));
|
||||
|
||||
//Jauge d'essence
|
||||
dline(25+voiture.essence/5, 58, 45, 58, Color_Black);
|
||||
|
@ -114,15 +113,33 @@ dreverse_area(24, 57, 46, 59);
|
|||
|
||||
//generation de chacun des obstacles
|
||||
for(i=0; i<4; i++)
|
||||
{
|
||||
if(obstacle[i].coordx < -10)
|
||||
{
|
||||
generate_obstacle(i);
|
||||
}
|
||||
if(obstacle[i].coordx < -10)
|
||||
{
|
||||
generate_obstacle(i);
|
||||
}
|
||||
|
||||
dimage_part(obstacle[i].coordx, 11*i+11, &img_obstacle, 10*obstacle[i].num_obst, 0, 10, 10);
|
||||
obstacle[i].coordx--;
|
||||
}
|
||||
|
||||
obstacle[i].coordx-=1;
|
||||
}
|
||||
|
||||
//hit box
|
||||
if(obstacle[voiture.corridor-1].coordx < voiture.decalx - 2 && obstacle[voiture.corridor-1].coordx > voiture.decalx - 20)
|
||||
{
|
||||
switch(obstacle[voiture.corridor-1].num_obst)
|
||||
{
|
||||
case 1 : voiture.life --; break;
|
||||
//case 2 : speed+=25; break;
|
||||
//case 3 : speed-=25; break;
|
||||
case 4 : voiture.life++; break;
|
||||
//case 5 : voiture.decalx = 74; /*obstacle[voiture.decalx-1].num_obst = 0;*/ break;
|
||||
case 6 : voiture.essence = 100; break;
|
||||
case 7 : voiture.money++; break;
|
||||
case 8 : voiture.money+=2; break;
|
||||
}
|
||||
obstacle[voiture.corridor-1].num_obst = 0;
|
||||
}
|
||||
|
||||
if (voiture.essence == 0)
|
||||
{
|
||||
|
@ -141,7 +158,7 @@ if (voiture.life == 0)
|
|||
// dessin des lignes
|
||||
for(i=1;i<4;i++)
|
||||
{
|
||||
for(j=compteur%2;j<128;j+=4)
|
||||
for(j=compteur%4;j<128;j+=4)
|
||||
{
|
||||
dline(2*j, i*11+10, 2*j+3, i*11+10, Color_Black);
|
||||
}
|
||||
|
@ -165,11 +182,11 @@ return;
|
|||
|
||||
void generate_obstacle(char ID_corridor)
|
||||
{
|
||||
unsigned char alea = rand(0, 100 ,compteur);
|
||||
unsigned char proba[9]={30,40,5,5,3,3,9,3,2};
|
||||
unsigned char alea = rand(0, 100, ++compteur);
|
||||
|
||||
unsigned char proba[9]={40,35,3,2,6,2,10,2,1};
|
||||
unsigned char i, sum;
|
||||
|
||||
dprint(15, 57, "%c", alea);
|
||||
sum = 0;
|
||||
i = 0;
|
||||
|
||||
|
@ -179,17 +196,35 @@ while(sum<=alea)
|
|||
i++;
|
||||
}
|
||||
|
||||
obstacle[ID_corridor].num_obst = i;
|
||||
obstacle[ID_corridor].coordx = 128 + rand(0, 20 ,compteur);
|
||||
obstacle[(int)ID_corridor].num_obst = i;
|
||||
obstacle[(int)ID_corridor].coordx = 128 + rand(0, 60, compteur);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
int rand(int min, int max, int seed)
|
||||
{
|
||||
return ((++seed%2)*(--seed%50)+3)%(max-min) + min;
|
||||
for(int i=0 ; i<19; i++)
|
||||
{
|
||||
seed = (seed*69069 + 187)%65536;
|
||||
seed = seed>>8;
|
||||
}
|
||||
|
||||
return seed%(max - min) + min;
|
||||
}
|
||||
|
||||
// int rand(int min, int max, int seed)
|
||||
// {
|
||||
// int nombre=5;
|
||||
// for(int i=0 ; i<19; i++)
|
||||
// {
|
||||
// nombre = (nombre*seed + 37)%143;
|
||||
// seed = (seed+17)%31;
|
||||
// }
|
||||
//
|
||||
// return nombre%(max - min) + min;
|
||||
// }
|
||||
|
||||
/*int Jeu()
|
||||
{
|
||||
|
||||
|
|
Loading…
Reference in New Issue