Commit 968cf34c authored by MESLIN Léa's avatar MESLIN Léa

Update arkanoid_lea_meslin.c

parent d2948b13
...@@ -108,6 +108,101 @@ int main(void) ...@@ -108,6 +108,101 @@ int main(void)
// Module Functions Definitions (local) // Module Functions Definitions (local)
//------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------
void themeCoeur(void){
//Cas coeur
for (int i=0; i<6; i++){
for (int j=2; j<9; j++){
brick[i][j].couleur=2;
brick[i][j+9].couleur=2;
}
}
brick[4][5].couleur=3; brick[4][14].couleur=3;
brick[3][4].couleur=3; brick[3][13].couleur=3;
brick[3][6].couleur=3; brick[3][15].couleur=3;
brick[2][3].couleur=3; brick[2][12].couleur=3;
brick[2][5].couleur=3; brick[2][14].couleur=3;
brick[2][7].couleur=3; brick[2][16].couleur=3;
brick[1][3].couleur=3; brick[1][12].couleur=3;
brick[1][4].couleur=3; brick[1][13].couleur=3;
brick[1][6].couleur=3; brick[1][15].couleur=3;
brick[1][7].couleur=3; brick[1][16].couleur=3;
brick[2][6].couleur=1; brick[2][15].couleur=1;
brick[2][4].couleur=1; brick[2][13].couleur=1;
brick[3][5].couleur=1; brick[3][14].couleur=1;
}
void themeTempete(void){
for (int i=0; i<6; i++){
for (int j=0; j<20; j++){
brick[i][j].couleur=1;
}
}
//1er nuage
brick[3][1].couleur=2;brick[3][2].couleur=2;brick[3][3].couleur=2;brick[3][4].couleur=2;brick[3][5].couleur=2;
brick[2][2].couleur=2;brick[2][3].couleur=2; brick[2][4].couleur=2;
brick[4][2].couleur=2;brick[4][3].couleur=2; brick[4][4].couleur=2;
//2e nuage
brick[2][14].couleur=2;brick[2][15].couleur=2;brick[2][16].couleur=2;brick[2][17].couleur=2;brick[2][18].couleur=2;
brick[1][15].couleur=2;brick[1][16].couleur=2; brick[1][17].couleur=2;
brick[3][15].couleur=2;brick[3][16].couleur=2; brick[3][17].couleur=2;
//Soleil
brick[0][10].couleur=3; brick[1][9].couleur=3;
brick[2][8].couleur=3; brick[2][9].couleur=3; brick[2][10].couleur=3; brick[2][11].couleur=3;
brick[3][10].couleur=3; brick[4][9].couleur=3; brick[5][8].couleur=3;
}
void themeAleatoire(void){
for (int i = 0; i < LINES_OF_BRICKS; i++)
{
for (int j = 0; j < BRICKS_PER_LINE; j++)
{
int random = GetRandomValue(0,3);
switch(random){
case 0: {brick[i][j].couleur = 0;} break;
case 1: {brick[i][j].couleur = 1;} break;
case 2: {brick[i][j].couleur = 2;} break;
case 3: {brick[i][j].couleur = 3;} break;
}
}
}
}
void themeLoveC(void){
for (int i=0; i<6; i++){
for (int j=0; j<20; j++){
brick[i][j].couleur=2;
}
}
//Le i
for (int k=1 ; k<5 ; k++){
brick[k][3].couleur=1;
}
//Le coeur
brick[4][8].couleur=3;
brick[3][7].couleur=3;
brick[3][9].couleur=3;
brick[2][6].couleur=3;
brick[2][8].couleur=3;
brick[2][10].couleur=3;
brick[3][8].couleur=3;
brick[1][6].couleur=3;
brick[1][7].couleur=3;
brick[1][9].couleur=3;
brick[1][10].couleur=3;
brick[2][9].couleur=3;
brick[2][7].couleur=3;
//Le c
for (int k=1 ; k<5 ; k++){
brick[k][13].couleur=1;
}
brick[1][14].couleur=1;brick[1][15].couleur=1;
brick[4][14].couleur=1;brick[4][15].couleur=1;
}
// Initialize game variables // Initialize game variables
void InitGame(void) void InitGame(void)
{ {
...@@ -139,70 +234,26 @@ void InitGame(void) ...@@ -139,70 +234,26 @@ void InitGame(void)
brick[i][j].couleur=0; //Valeur par défaut brick[i][j].couleur=0; //Valeur par défaut
} }
} }
choixTheme = GetRandomValue(0,1); choixTheme = GetRandomValue(0,3);
if (choixTheme==0){ if (choixTheme==0){
for (int i = 0; i < LINES_OF_BRICKS; i++) themeAleatoire();
{
for (int j = 0; j < BRICKS_PER_LINE; j++)
{
int random = GetRandomValue(0,3);
switch(random){
case 0: {brick[i][j].couleur = 0;} break;
case 1: {brick[i][j].couleur = 1;} break;
case 2: {brick[i][j].couleur = 2;} break;
case 3: {brick[i][j].couleur = 3;} break;
}
} }
else if (choixTheme==1){
themeTempete();
} }
else if (choixTheme==2){
themeLoveC();
} }
else { else {
//Cas coeur themeCoeur();
for (int i=0; i<6; i++){
for (int j=2; j<9; j++){
brick[i][j].couleur=2;
brick[i][j+9].couleur=2;
}
}
brick[4][5].couleur=3;
brick[4][14].couleur=3;
brick[3][4].couleur=3;
brick[3][13].couleur=3;
brick[3][6].couleur=3;
brick[3][15].couleur=3;
brick[2][3].couleur=3;
brick[2][12].couleur=3;
brick[2][5].couleur=3;
brick[2][14].couleur=3;
brick[2][7].couleur=3;
brick[2][16].couleur=3;
brick[1][3].couleur=3;
brick[1][12].couleur=3;
brick[1][4].couleur=3;
brick[1][13].couleur=3;
brick[1][6].couleur=3;
brick[1][15].couleur=3;
brick[1][7].couleur=3;
brick[1][16].couleur=3;
brick[2][6].couleur=1;
brick[2][15].couleur=1;
brick[2][4].couleur=1;
brick[2][13].couleur=1;
brick[3][5].couleur=1;
brick[3][14].couleur=1;
} }
} }
void briqueCouleurBleue(int i, int j){ void briqueCouleurBleue(int i, int j){
if ((brick[i][j].couleur== 1)){ brick[i][j].active = false;
int k= i; int k= i;
int l= j; int l= j;
if (k==0){ if (l==19 && k==0){
brick[k+1][l].active=false;
brick[k][l-1].active=false;
brick[k][l+1].active=false;
}
else if (l==19 && k==0){
brick[k+1][l].active=false; brick[k+1][l].active=false;
brick[k][l-1].active=false; brick[k][l-1].active=false;
} }
...@@ -220,6 +271,11 @@ void briqueCouleurBleue(int i, int j){ ...@@ -220,6 +271,11 @@ void briqueCouleurBleue(int i, int j){
brick[k-1][l].active=false; brick[k-1][l].active=false;
brick[k][l+1].active=false; brick[k][l+1].active=false;
} }
else if (k==0){
brick[k+1][l].active=false;
brick[k][l-1].active=false;
brick[k][l+1].active=false;
}
else{ else{
brick[k+1][l].active=false; brick[k+1][l].active=false;
brick[k-1][l].active=false; brick[k-1][l].active=false;
...@@ -227,23 +283,35 @@ void briqueCouleurBleue(int i, int j){ ...@@ -227,23 +283,35 @@ void briqueCouleurBleue(int i, int j){
brick[k][l+1].active=false; brick[k][l+1].active=false;
} }
score+=4; score+=4;
}
} }
void briqueCouleurNoire(int i, int j){ void briqueCouleurNoire(int i, int j){
if ((brick[i][j].couleur== 2)){
brick[i][j].active=true;
brick[i][j].couleur=0; brick[i][j].couleur=0;
}
} }
void briqueCouleurViolette(int i, int j){ void briqueCouleurViolette(int i, int j){
if ((brick[i][j].couleur== 3)){ brick[i][j].active = false;
ball.position.y=screenHeight*1/8; ball.position.y=screenHeight*1/8;
ball.speed.x+= -1/2;
}
} }
void briqueGrise(int i, int j){
brick[i][j].active = false;
}
void couleurBrique (int i, int j){
if ((brick[i][j].couleur== 0)){
briqueGrise(i,j);
}
else if (brick[i][j].couleur== 1){
briqueCouleurBleue(i,j);
}
else if (brick[i][j].couleur== 2){
briqueCouleurNoire(i,j);
}
else {
briqueCouleurViolette(i,j);
}
}
// Update game (one frame) // Update game (one frame)
void UpdateGame(void) void UpdateGame(void)
{ {
...@@ -319,11 +387,9 @@ void UpdateGame(void) ...@@ -319,11 +387,9 @@ void UpdateGame(void)
((ball.position.y - ball.radius) > (brick[i][j].position.y + brickSize.y/2 + ball.speed.y)) && ((ball.position.y - ball.radius) > (brick[i][j].position.y + brickSize.y/2 + ball.speed.y)) &&
((fabs(ball.position.x - brick[i][j].position.x)) < (brickSize.x/2 + ball.radius*2/3)) && (ball.speed.y < 0)) ((fabs(ball.position.x - brick[i][j].position.x)) < (brickSize.x/2 + ball.radius*2/3)) && (ball.speed.y < 0))
{ {
brick[i][j].active = false;
ball.speed.y *= -1; ball.speed.y *= -1;
briqueCouleurBleue(i,j); couleurBrique(i,j);
briqueCouleurNoire(i,j);
briqueCouleurViolette(i,j);
score +=1; score +=1;
} }
// Hit above // Hit above
...@@ -331,11 +397,9 @@ void UpdateGame(void) ...@@ -331,11 +397,9 @@ void UpdateGame(void)
((ball.position.y + ball.radius) < (brick[i][j].position.y - brickSize.y/2 + ball.speed.y)) && ((ball.position.y + ball.radius) < (brick[i][j].position.y - brickSize.y/2 + ball.speed.y)) &&
((fabs(ball.position.x - brick[i][j].position.x)) < (brickSize.x/2 + ball.radius*2/3)) && (ball.speed.y > 0)) ((fabs(ball.position.x - brick[i][j].position.x)) < (brickSize.x/2 + ball.radius*2/3)) && (ball.speed.y > 0))
{ {
brick[i][j].active = false;
ball.speed.y *= -1; ball.speed.y *= -1;
briqueCouleurBleue(i,j); couleurBrique(i,j);
briqueCouleurNoire(i,j);
briqueCouleurViolette(i,j);
score +=1; score +=1;
} }
// Hit left // Hit left
...@@ -343,11 +407,9 @@ void UpdateGame(void) ...@@ -343,11 +407,9 @@ void UpdateGame(void)
((ball.position.x + ball.radius) < (brick[i][j].position.x - brickSize.x/2 + ball.speed.x)) && ((ball.position.x + ball.radius) < (brick[i][j].position.x - brickSize.x/2 + ball.speed.x)) &&
((fabs(ball.position.y - brick[i][j].position.y)) < (brickSize.y/2 + ball.radius*2/3)) && (ball.speed.x > 0)) ((fabs(ball.position.y - brick[i][j].position.y)) < (brickSize.y/2 + ball.radius*2/3)) && (ball.speed.x > 0))
{ {
brick[i][j].active = false;
ball.speed.x *= -1; ball.speed.x *= -1;
briqueCouleurBleue(i,j); couleurBrique(i,j);
briqueCouleurNoire(i,j);
briqueCouleurViolette(i,j);
score +=1; score +=1;
} }
// Hit right // Hit right
...@@ -355,11 +417,9 @@ void UpdateGame(void) ...@@ -355,11 +417,9 @@ void UpdateGame(void)
((ball.position.x - ball.radius) > (brick[i][j].position.x + brickSize.x/2 + ball.speed.x)) && ((ball.position.x - ball.radius) > (brick[i][j].position.x + brickSize.x/2 + ball.speed.x)) &&
((fabs(ball.position.y - brick[i][j].position.y)) < (brickSize.y/2 + ball.radius*2/3)) && (ball.speed.x < 0)) ((fabs(ball.position.y - brick[i][j].position.y)) < (brickSize.y/2 + ball.radius*2/3)) && (ball.speed.x < 0))
{ {
brick[i][j].active = false;
ball.speed.x *= -1; ball.speed.x *= -1;
briqueCouleurBleue(i,j); couleurBrique(i,j);
briqueCouleurNoire(i,j);
briqueCouleurViolette(i,j);
score +=1; score +=1;
} }
} }
......
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