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)
// 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
void InitGame(void)
{
......@@ -139,111 +234,84 @@ void InitGame(void)
brick[i][j].couleur=0; //Valeur par défaut
}
}
choixTheme = GetRandomValue(0,1);
choixTheme = GetRandomValue(0,3);
if (choixTheme==0){
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;
}
}
}
themeAleatoire();
}
else if (choixTheme==1){
themeTempete();
}
else if (choixTheme==2){
themeLoveC();
}
else {
//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;
themeCoeur();
}
}
void briqueCouleurBleue(int i, int j){
if ((brick[i][j].couleur== 1)){
int k= i;
int l= j;
if (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][l-1].active=false;
}
else if (l==0 && k==0){
brick[k+1][l].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;
}
else if (l==0 && k>0){
brick[k+1][l].active=false;
brick[k-1][l].active=false;
brick[k][l+1].active=false;
}
else{
brick[k+1][l].active=false;
brick[k-1][l].active=false;
brick[k][l-1].active=false;
brick[k][l+1].active=false;
}
score+=4;
brick[i][j].active = false;
int k= i;
int l= j;
if (l==19 && k==0){
brick[k+1][l].active=false;
brick[k][l-1].active=false;
}
else if (l==0 && k==0){
brick[k+1][l].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;
}
else if (l==0 && k>0){
brick[k+1][l].active=false;
brick[k-1][l].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{
brick[k+1][l].active=false;
brick[k-1][l].active=false;
brick[k][l-1].active=false;
brick[k][l+1].active=false;
}
score+=4;
}
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){
if ((brick[i][j].couleur== 3)){
ball.position.y=screenHeight*1/8;
ball.speed.x+= -1/2;
}
brick[i][j].active = false;
ball.position.y=screenHeight*1/8;
}
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)
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)) &&
((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;
briqueCouleurBleue(i,j);
briqueCouleurNoire(i,j);
briqueCouleurViolette(i,j);
couleurBrique(i,j);
score +=1;
}
// Hit above
......@@ -331,11 +397,9 @@ void UpdateGame(void)
((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))
{
brick[i][j].active = false;
ball.speed.y *= -1;
briqueCouleurBleue(i,j);
briqueCouleurNoire(i,j);
briqueCouleurViolette(i,j);
couleurBrique(i,j);
score +=1;
}
// Hit left
......@@ -343,11 +407,9 @@ void UpdateGame(void)
((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))
{
brick[i][j].active = false;
ball.speed.x *= -1;
briqueCouleurBleue(i,j);
briqueCouleurNoire(i,j);
briqueCouleurViolette(i,j);
couleurBrique(i,j);
score +=1;
}
// Hit right
......@@ -355,11 +417,9 @@ void UpdateGame(void)
((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))
{
brick[i][j].active = false;
ball.speed.x *= -1;
briqueCouleurBleue(i,j);
briqueCouleurNoire(i,j);
briqueCouleurViolette(i,j);
couleurBrique(i,j);
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