Commit 079e9972 authored by Thibaud LEROY's avatar Thibaud LEROY
Browse files

grille finit avec génération des météorites avec gestion de leur tailles et du déplacement

parent fccfcc62
......@@ -37,20 +37,18 @@ void liberer(int **grille,int x)
void position_vaisseau(int **grille,int *pos_vaisseau,int hauteur,int largeur,int commande) //gère le deplacement du vaisseau ne fonction de la commande -1 ou +1
{
if (((*pos_vaisseau+commande)>0)&&((*pos_vaisseau+commande)<largeur-1))
if (((*pos_vaisseau+commande)>=0)&&((*pos_vaisseau+commande)<=(largeur-1)))
{
grille[*pos_vaisseau][hauteur-1]=0;
*pos_vaisseau=*pos_vaisseau+commande;
grille[*pos_vaisseau+commande][hauteur-1]=1;
*pos_vaisseau=(*pos_vaisseau)+commande;
grille[*pos_vaisseau][hauteur-1]=1;
}
}
/*
void vaisseau_gauche(int **grille,int *pos_vaisseau,int hauteur) //gère le deplacement du vaisseau a gauche
{
if ((*pos_vaisseau-1)>0)
{
{1 1
grille[hauteur-1][*pos_vaisseau]=0;
*pos_vaisseau=*pos_vaisseau-1;
grille[hauteur-1][*pos_vaisseau]=1;
......@@ -67,6 +65,7 @@ void vaisseau_droite(int **grille,int *pos_vaisseau,int hauteur,int largeur)
}
}
*/
int init_tab(int** tab,int x,int y) //place le vaisseau
{
int i =0;
......@@ -78,16 +77,17 @@ int init_tab(int** tab,int x,int y) //place le vaisseau
tab[i][j]=0;
}
}
tab[x/2][y-1]=1;
tab[0][y-1]=1;
return x/2;
return 0;
}
int gestion_meteorites(int **tab,int largeur,int hauteur){ //renvoie 1 si on meurt 0 sinon et déplace toutes les météorites
int gestion_meteorites(int **tab,int largeur,int hauteur,int largeur_met,int nb_met,int pos_vaisseau,int generation){ //renvoie 1 si on meurt 0 sinon et déplace toutes les météorites
int i;
int j=hauteur-1;
int mort=0;
int k;
for(i=0;i<largeur;i++){
if (tab[i][j]==2){
......@@ -95,32 +95,42 @@ int gestion_meteorites(int **tab,int largeur,int hauteur){ //renvoie 1 si on me
}
}
j=j-1;
i=0;
while ((i<largeur)&&(mort==0)){
if (tab[i][j]==2){
if (tab[i][j+1]==1){
mort=1;
}
else{
tab[i][j]=0;
tab[i][j+1]=0;;
printf("ok\n");
for(k=pos_vaisseau;k<19;k++){ //19 correspond a la taille du vaisseau en pixel (largeur)
if (i==k){
mort=1;
}
}
tab[i][j+1]=2;
tab[i][j]=0;
}
i=i+1;
}
if (mort==0){
j=j-1;
for(i=0;i<largeur;i++){
for(j=j;j>=0;j--){
for(j=hauteur-3;j>=0;j--){
if (tab[i][j]==2){
tab[i][j+1]=2;
tab[i][j]=0;
}
}
}
srand(time);
for (i=0;i<15;i++){
printf("%d\n",rand()%30);
tab[rand()%30][0]=2;
if (generation==1){
for (i=0;i<nb_met;i++){
k=rand()%29;
printf("%d\n",k);
for (j=k;j<=(k+largeur_met);j++){
if (k<largeur){
tab[j][0]=2;
printf("ok\n");
}
}
}
}
}
return mort;
......@@ -130,16 +140,18 @@ int gestion_meteorites(int **tab,int largeur,int hauteur){ //renvoie 1 si on me
int main(){
int hauteur=50;
int hauteur=5;
int largeur=29;
int pos_vaisseau;
int **tab =init_grille(largeur,hauteur);
int i;
int j;
int j;
int nb_met=1;
int mort=0;
int largeur_met=2;
pos_vaisseau=init_tab(tab,largeur,hauteur);
position_vaisseau(tab,&pos_vaisseau,hauteur,largeur,-1);
position_vaisseau(tab,&pos_vaisseau,hauteur,largeur,-1);
position_vaisseau(tab,&pos_vaisseau,hauteur,largeur,-1);
for (j=0;j<hauteur;j++)
{
for (i=0;i<largeur;i++)
......@@ -148,7 +160,13 @@ int main(){
}
printf("\n");
}
gestion_meteorites(tab,largeur,hauteur);
srand(time(0));
mort = gestion_meteorites(tab,largeur,hauteur,largeur_met,nb_met,pos_vaisseau,1);
mort = gestion_meteorites(tab,largeur,hauteur,largeur_met,nb_met,pos_vaisseau,1);
mort = gestion_meteorites(tab,largeur,hauteur,largeur_met,nb_met,pos_vaisseau,0);
mort = gestion_meteorites(tab,largeur,hauteur,largeur_met,nb_met,pos_vaisseau,0);
printf("%d\n",mort);
for (j=0;j<hauteur;j++)
{
for (i=0;i<largeur;i++)
......@@ -157,7 +175,14 @@ int main(){
}
printf("\n");
}
liberer(tab,largeur);
mort = gestion_meteorites(tab,largeur,hauteur,largeur_met,nb_met,pos_vaisseau,0);
for (j=0;j<hauteur;j++)
{
for (i=0;i<largeur;i++)
{
printf("%d ",tab[i][j]);
}
printf("\n");
}
printf("%d\n",mort);
}
......@@ -19,6 +19,6 @@ void vaisseau_gauche(int **grille,int *pos_vaisseau,int longeur);
void vaisseau_droite(int **grille,int *pos_vaisseau,int longeur,int largeur);
int init_tab(int** tab,int x,int y);
void position_vaisseau(int **grille,int *pos_vaisseau,int longeur,int largeur,int commande);
int gestion_meteorites(int **tab,int largeur,int hauteur);
int gestion_meteorites(int **tab,int largeur,int hauteur,int largeur_met,int nb_met,int pos_vaisseau,int generation);
#endif
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment