Skip to content
Snippets Groups Projects
Commit 807286d8 authored by antoinemeyer5's avatar antoinemeyer5
Browse files

fin de l'exercice pave de serpents

parent 693a9ac1
No related branches found
No related tags found
No related merge requests found
No preview for this file type
#include <SDL2/SDL.h> #include <SDL2/SDL.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <math.h>
#define PI 3.141592654
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
(void)argc; (void)argc;
(void)argv; (void)argv;
int vainqueur = 0;
SDL_Window SDL_Window
*window = NULL; *window = NULL;
...@@ -25,8 +25,14 @@ int main(int argc, char **argv) ...@@ -25,8 +25,14 @@ int main(int argc, char **argv)
SDL_Renderer *renderer; SDL_Renderer *renderer;
SDL_Rect rect; SDL_Rect rect;
int pale_1_x; int pale_1_x = 300;
int pale_1_y; int pale_1_y = 300;
int pale_2_x = 700;
int pale_2_y = 300;
int pale_3_x = 250;
int pale_3_y = 500;
if (SDL_GetDesktopDisplayMode(0, &mode) != 0) if (SDL_GetDesktopDisplayMode(0, &mode) != 0)
{ {
...@@ -70,67 +76,86 @@ int main(int argc, char **argv) ...@@ -70,67 +76,86 @@ int main(int argc, char **argv)
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
// dessin int i = 20;
/* couleur de fond */
SDL_SetRenderDrawColor(renderer, 157, 224, 144, 255); while(i>0){
SDL_RenderClear(renderer);
// dessin
//sol /* couleur de fond */
SDL_SetRenderDrawColor(renderer, 49, 150, 29, 255); SDL_SetRenderDrawColor(renderer, 157, 224, 144, 255);
rect.w = window_width; SDL_RenderClear(renderer);
rect.h = window_height/3;
rect.x = 0; //sol
rect.y = window_height - window_height/3; SDL_SetRenderDrawColor(renderer, 49, 150, 29, 255);
SDL_RenderFillRect(renderer, &rect); rect.w = window_width;
rect.h = window_height/3;
/* bloc du moulin */ rect.x = 0;
SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); rect.y = window_height - window_height/3;
rect.w = 150; SDL_RenderFillRect(renderer, &rect);
rect.h = 250;
rect.x = (window_width - rect.w)/2; /* bloc du moulin */
rect.y = window_height - rect.h - 150; SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
SDL_RenderFillRect(renderer, &rect); rect.w = 150;
rect.h = 250;
/*triangle moulin*/ rect.x = (window_width - rect.w)/2;
SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255); rect.y = window_height - rect.h - 150;
rect.w = 150; SDL_RenderFillRect(renderer, &rect);
rect.h = 50;
rect.x = (window_width - rect.w)/2; /*triangle moulin*/
rect.y = window_height - rect.h - 400; SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255);
SDL_RenderFillRect(renderer, &rect); rect.w = 150;
rect.h = 50;
//pales du moulin rect.x = (window_width - rect.w)/2;
//pale 1 du moulin rect.y = window_height - rect.h - 400;
pale_1_x = 50; SDL_RenderFillRect(renderer, &rect);
pale_1_y = 50;
SDL_SetRenderDrawColor(renderer, 163, 82, 2, 255); //pales du moulin
SDL_RenderDrawLine(renderer, //pale 1 du moulin
(window_width - rect.w)/2, int theta = 40;
window_height - rect.h - 400, int px = window_width/2;
pale_1_x, int py = window_height - rect.h - 375;
pale_1_y); float c = cos(theta), s = sin(theta);
float dx = pale_1_x - px, dy = pale_1_y - py;
pale_1_x = pale_1_x + c * dx - s * dy;
pale_1_y = pale_1_y + s * dx + c * dy;
/* afficher à l'ecran */
SDL_RenderPresent(renderer); SDL_SetRenderDrawColor(renderer, 163, 82, 2, 255);
SDL_RenderDrawLine(renderer,
px,
py,
// départ de la course pale_1_x,
/*while (vainqueur == 0) pale_1_y);
{
//pale 2 du moulin
if (cercle.x > display_width) dx = pale_2_x - px, dy = pale_2_y - py;
{ pale_2_x = pale_2_x + c * dx - s * dy;
vainqueur = 1; pale_2_y = pale_2_y + s * dx + c * dy;
} SDL_SetRenderDrawColor(renderer, 163, 82, 2, 255);
}*/ SDL_RenderDrawLine(renderer,
px,
// ecrire victoire py,
pale_2_x,
pale_2_y);
//pale 3 du moulin
dx = pale_3_x - px, dy = pale_3_y - py;
pale_3_x = pale_3_x + c * dx - s * dy;
pale_3_y = pale_3_y + s * dx + c * dy;
SDL_SetRenderDrawColor(renderer, 163, 82, 2, 255);
SDL_RenderDrawLine(renderer,
px,
py,
pale_3_x,
pale_3_y);
/* afficher à l'ecran */
SDL_RenderPresent(renderer);
SDL_Delay(1000);
SDL_RenderClear(renderer);
i = i - 2;
}
SDL_Delay(2000); SDL_DestroyRenderer(renderer);
// fermer fenetre // fermer fenetre
SDL_DestroyWindow(window); // la fenêtre SDL_DestroyWindow(window); // la fenêtre
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment