Peer Working : Ajout de nouveaux modes de jeux
This commit is contained in:
parent
f52863c44e
commit
64c5fc17a6
@ -2,10 +2,12 @@
|
||||
#define JEU_H
|
||||
|
||||
|
||||
void afficherScore(int score);
|
||||
void lancer_jeu1(void);
|
||||
void lancer_jeu2(void);
|
||||
void lancer_jeu3(void);
|
||||
void lancer_jeu4(void);
|
||||
void lancer_jeu5(void);
|
||||
|
||||
|
||||
#endif /*JEU_H*/
|
17
include/obstacle.h
Normal file
17
include/obstacle.h
Normal file
@ -0,0 +1,17 @@
|
||||
#ifndef OBSTACLE_H
|
||||
#define OBSTACLE_H
|
||||
|
||||
#include "../include/grille.h"
|
||||
#include "../include/serpent.h"
|
||||
|
||||
typedef struct {
|
||||
int x;
|
||||
int y;
|
||||
} Obstacle;
|
||||
|
||||
void dessinerObstacle(Obstacle obstacle);
|
||||
int estCollisionObstacle(Obstacle obstacle, Segment serpent[], int longueur);
|
||||
Obstacle creerObstacle(int largeurGrille, int hauteurGrille);
|
||||
void placerObstacle(Obstacle obstacles[], int nombreObstacles, int largeurGrille, int hauteurGrille);
|
||||
|
||||
#endif /*OBSTACLE_H*/
|
@ -11,5 +11,6 @@ int tuerSerpent(Segment serpent[], int longueur);
|
||||
void mettreAJourSerpent(Segment serpent[], int *longueur, int *direction_x, int *direction_y);
|
||||
void dessinerSerpent(Segment serpent[], int *longueur);
|
||||
int seMangerQueue(Segment serpent[], int longueur);
|
||||
void attendreSerpent(unsigned long int microseconds);
|
||||
|
||||
#endif /*SERPENT_H*/
|
||||
|
12
include/timer.h
Normal file
12
include/timer.h
Normal file
@ -0,0 +1,12 @@
|
||||
#ifndef TIMER_H
|
||||
#define TIMER_H
|
||||
|
||||
|
||||
unsigned long int attendre(void);
|
||||
unsigned long int creer_timer(void);
|
||||
int afficher_minute(int min);
|
||||
int afficher_seconde(int sec);
|
||||
|
||||
|
||||
|
||||
#endif /*TIMER_H*/
|
18
src/.vscode/c_cpp_properties.json
vendored
Normal file
18
src/.vscode/c_cpp_properties.json
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"configurations": [
|
||||
{
|
||||
"name": "linux-gcc-x64",
|
||||
"includePath": [
|
||||
"${workspaceFolder}/**"
|
||||
],
|
||||
"compilerPath": "/usr/bin/gcc",
|
||||
"cStandard": "${default}",
|
||||
"cppStandard": "${default}",
|
||||
"intelliSenseMode": "linux-gcc-x64",
|
||||
"compilerArgs": [
|
||||
""
|
||||
]
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
}
|
24
src/.vscode/launch.json
vendored
Normal file
24
src/.vscode/launch.json
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "C/C++ Runner: Debug Session",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"args": [],
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": false,
|
||||
"cwd": "/export/home/an23/stiti/PROJET DEV/SAE11_2023/src",
|
||||
"program": "/export/home/an23/stiti/PROJET DEV/SAE11_2023/src/build/Debug/outDebug",
|
||||
"MIMode": "gdb",
|
||||
"miDebuggerPath": "gdb",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
37
src/.vscode/settings.json
vendored
Normal file
37
src/.vscode/settings.json
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
{
|
||||
"C_Cpp_Runner.cCompilerPath": "gcc",
|
||||
"C_Cpp_Runner.cppCompilerPath": "g++",
|
||||
"C_Cpp_Runner.debuggerPath": "gdb",
|
||||
"C_Cpp_Runner.cStandard": "",
|
||||
"C_Cpp_Runner.cppStandard": "",
|
||||
"C_Cpp_Runner.msvcBatchPath": "C:/Program Files/Microsoft Visual Studio/VR_NR/Community/VC/Auxiliary/Build/vcvarsall.bat",
|
||||
"C_Cpp_Runner.useMsvc": false,
|
||||
"C_Cpp_Runner.warnings": [
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Wpedantic",
|
||||
"-Wshadow",
|
||||
"-Wformat=2",
|
||||
"-Wconversion",
|
||||
"-Wnull-dereference",
|
||||
"-Wsign-conversion"
|
||||
],
|
||||
"C_Cpp_Runner.enableWarnings": true,
|
||||
"C_Cpp_Runner.warningsAsError": false,
|
||||
"C_Cpp_Runner.compilerArgs": [],
|
||||
"C_Cpp_Runner.linkerArgs": [],
|
||||
"C_Cpp_Runner.includePaths": [],
|
||||
"C_Cpp_Runner.includeSearch": [
|
||||
"*",
|
||||
"**/*"
|
||||
],
|
||||
"C_Cpp_Runner.excludeSearch": [
|
||||
"**/build",
|
||||
"**/build/**",
|
||||
"**/.*",
|
||||
"**/.*/**",
|
||||
"**/.vscode",
|
||||
"**/.vscode/**"
|
||||
],
|
||||
"C_Cpp_Runner.useAddressSanitizer": false
|
||||
}
|
173
src/jeu.c
173
src/jeu.c
@ -1,29 +1,29 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <graph.h>
|
||||
#include <time.h> /* à supprimer prochainement */
|
||||
#include "../include/grille.h"
|
||||
#include "../include/serpent.h"
|
||||
#include "../include/pomme.h"
|
||||
#include "../include/jeu.h"
|
||||
#include "../include/menu.h"
|
||||
#include "../include/timer.h"
|
||||
#include "../include/obstacle.h"
|
||||
|
||||
|
||||
void afficherScore(int score) {
|
||||
char scoreStr[20];
|
||||
/* Efface l'ancien score */
|
||||
ChoisirCouleurDessin(CouleurParComposante(0, 0, 0));
|
||||
RemplirRectangle(178, 946, 200, 40);
|
||||
RemplirRectangle(178, 946, 130, 40);
|
||||
/* Convertit le score en chaîne de caractères */
|
||||
snprintf(scoreStr, sizeof(scoreStr), "%d", score);
|
||||
/* Affiche le nouveau score */
|
||||
ChoisirCouleurDessin(CouleurParComposante(255, 255, 255));
|
||||
EcrireTexte(178, 976, scoreStr, 2);
|
||||
EcrireTexte(179, 976, scoreStr, 2);
|
||||
}
|
||||
|
||||
|
||||
void lancer_jeu1(void) {
|
||||
struct timespec delai = {0, 55000000}; /* A SUPPRIMER QUAND ON AURA LA FONCTION ATTENDRE*/
|
||||
Segment serpent[100];
|
||||
int longueur = 10;
|
||||
int direction_x = 1;
|
||||
@ -35,6 +35,7 @@ void lancer_jeu1(void) {
|
||||
FermerGraphique();
|
||||
InitialiserGraphique();
|
||||
CreerFenetre(0, 0, 1200, 1000);
|
||||
ChoisirTitreFenetre("Snake By Moncef & Marco");
|
||||
|
||||
initialiserSerpent(serpent, &longueur);
|
||||
dessinerGrille();
|
||||
@ -42,6 +43,7 @@ void lancer_jeu1(void) {
|
||||
pomme = creerPomme();
|
||||
dessinerPomme(pomme);
|
||||
|
||||
|
||||
while (1) {
|
||||
gestionDeplacements(serpent, &direction_x, &direction_y);
|
||||
mettreAJourSerpent(serpent, &longueur, &direction_x, &direction_y);
|
||||
@ -56,26 +58,28 @@ void lancer_jeu1(void) {
|
||||
if (tuerSerpent(serpent, longueur)) {
|
||||
int choixGameOver;
|
||||
afficherMenuGameOver();
|
||||
|
||||
afficherScore(score);
|
||||
/* Attend le choix du joueur après le game over */
|
||||
choixGameOver = attendreChoixGameOver();
|
||||
}
|
||||
|
||||
|
||||
|
||||
dessinerSerpent(serpent, &longueur);
|
||||
|
||||
afficherScore(score);
|
||||
|
||||
nanosleep(&delai, NULL);
|
||||
attendreSerpent(150000);
|
||||
}
|
||||
}
|
||||
|
||||
void lancer_jeu2(void) {
|
||||
struct timespec delai = {0, 55000000}; /*50 000 000 nanosecondes (0.05 seconde)*/
|
||||
int i;
|
||||
Segment serpent[100];
|
||||
int longueur = 10;
|
||||
int direction_x = 1;
|
||||
int direction_y = 0;
|
||||
unsigned long int vitesse = 200000; /*vitesse de base*/
|
||||
int score = 0;
|
||||
char scoreStr[20];
|
||||
Pomme pommes[5];
|
||||
@ -83,6 +87,7 @@ void lancer_jeu2(void) {
|
||||
FermerGraphique();
|
||||
InitialiserGraphique();
|
||||
CreerFenetre(0, 0, 1200, 1000);
|
||||
ChoisirTitreFenetre("Snake By Moncef & Marco");
|
||||
|
||||
initialiserSerpent(serpent, &longueur);
|
||||
dessinerGrille();
|
||||
@ -117,72 +122,26 @@ void lancer_jeu2(void) {
|
||||
|
||||
afficherScore(score);
|
||||
|
||||
nanosleep(&delai, NULL);
|
||||
attendreSerpent(vitesse);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void lancer_jeu3(void) {
|
||||
struct timespec delai = {0, 40000000}; /*40 000 000 nanosecondes (0.04 seconde)*/
|
||||
Segment serpent[100];
|
||||
int longueur = 10;
|
||||
int direction_x = 1;
|
||||
int direction_y = 0;
|
||||
int score = 0;
|
||||
char scoreStr[20];
|
||||
Pomme pomme;
|
||||
|
||||
FermerGraphique();
|
||||
InitialiserGraphique();
|
||||
CreerFenetre(0, 0, 1200, 1000);
|
||||
|
||||
initialiserSerpent(serpent, &longueur);
|
||||
dessinerGrille();
|
||||
|
||||
pomme = creerPomme();
|
||||
dessinerPomme(pomme);
|
||||
|
||||
while (1) {
|
||||
gestionDeplacements(serpent, &direction_x, &direction_y);
|
||||
mettreAJourSerpent(serpent, &longueur, &direction_x, &direction_y);
|
||||
|
||||
if (serpent[0].x == pomme.x && serpent[0].y == pomme.y) {
|
||||
longueur++;
|
||||
score += 5;
|
||||
pomme = creerPomme();
|
||||
dessinerPomme(pomme);
|
||||
}
|
||||
|
||||
if (tuerSerpent(serpent, longueur)) {
|
||||
int choixGameOver;
|
||||
afficherMenuGameOver();
|
||||
|
||||
/* Attend le choix du joueur après le game over */
|
||||
choixGameOver = attendreChoixGameOver();
|
||||
}
|
||||
|
||||
dessinerSerpent(serpent, &longueur);
|
||||
|
||||
afficherScore(score);
|
||||
|
||||
/*Permet de gérer la vitesse du serpent*/
|
||||
nanosleep(&delai, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
void lancer_jeu4(void) {
|
||||
struct timespec delai = {0, 28000000}; /*40 000 000 nanosecondes (0.04 seconde)*/
|
||||
Segment serpent[100];
|
||||
int longueur = 10;
|
||||
int direction_x = 1;
|
||||
int direction_y = 0;
|
||||
int score = 0;
|
||||
unsigned long int vitesse = 300000; /*vitesse de base*/
|
||||
char scoreStr[20];
|
||||
Pomme pomme;
|
||||
Segment serpent[100];
|
||||
|
||||
FermerGraphique();
|
||||
InitialiserGraphique();
|
||||
CreerFenetre(0, 0, 1200, 1000);
|
||||
ChoisirTitreFenetre("Snake By Moncef & Marco");
|
||||
|
||||
|
||||
initialiserSerpent(serpent, &longueur);
|
||||
dessinerGrille();
|
||||
@ -199,6 +158,9 @@ void lancer_jeu4(void) {
|
||||
score += 5;
|
||||
pomme = creerPomme();
|
||||
dessinerPomme(pomme);
|
||||
|
||||
/* Augmenter la vitesse à chaque pomme mangée*/
|
||||
vitesse -= 5000; /* Réduire la durée d'attente (augmenter la vitesse)*/
|
||||
}
|
||||
|
||||
if (tuerSerpent(serpent, longueur)) {
|
||||
@ -210,12 +172,97 @@ void lancer_jeu4(void) {
|
||||
}
|
||||
|
||||
dessinerSerpent(serpent, &longueur);
|
||||
afficherScore(score);
|
||||
|
||||
attendreSerpent(vitesse);
|
||||
}
|
||||
}
|
||||
|
||||
void lancer_jeu3(void) {
|
||||
int i,j;
|
||||
int longueur = 10;
|
||||
int direction_x = 1;
|
||||
int direction_y = 0;
|
||||
int score = 0;
|
||||
unsigned long int vitesse = 100000;
|
||||
char scoreStr[20];
|
||||
Pomme pomme;
|
||||
int nombreObstacles = 10;
|
||||
Obstacle *obstacles = malloc(nombreObstacles * sizeof(Obstacle));
|
||||
Segment serpent[100];
|
||||
|
||||
|
||||
|
||||
FermerGraphique();
|
||||
InitialiserGraphique();
|
||||
CreerFenetre(0, 0, 1200, 1000);
|
||||
ChoisirTitreFenetre("Snake By Moncef & Marco");
|
||||
|
||||
initialiserSerpent(serpent, &longueur);
|
||||
dessinerGrille();
|
||||
|
||||
pomme = creerPomme();
|
||||
dessinerPomme(pomme);
|
||||
|
||||
placerObstacle(obstacles, nombreObstacles, LARGEUR_GRILLE, HAUTEUR_GRILLE);
|
||||
|
||||
while (1) {
|
||||
gestionDeplacements(serpent, &direction_x, &direction_y);
|
||||
mettreAJourSerpent(serpent, &longueur, &direction_x, &direction_y);
|
||||
|
||||
if (serpent[0].x == pomme.x && serpent[0].y == pomme.y) {
|
||||
longueur++;
|
||||
score += 5;
|
||||
pomme = creerPomme();
|
||||
dessinerPomme(pomme);
|
||||
|
||||
|
||||
vitesse -= 5000;
|
||||
}
|
||||
|
||||
if (tuerSerpent(serpent, longueur)) {
|
||||
int choixGameOver;
|
||||
afficherMenuGameOver();
|
||||
afficherScore(score);
|
||||
/* Attend le choix du joueur après le game over */
|
||||
choixGameOver = attendreChoixGameOver();
|
||||
}
|
||||
|
||||
/*Vérifier la collision avec les obstacles*/
|
||||
for (i = 0; i < nombreObstacles; i++) {
|
||||
if (estCollisionObstacle(obstacles[i], serpent, longueur)) {
|
||||
int choixGameOver;
|
||||
afficherMenuGameOver();
|
||||
|
||||
/* Attend le choix du joueur après le game over */
|
||||
choixGameOver = attendreChoixGameOver();
|
||||
if (choixGameOver == 1) {
|
||||
/*Réinitialiser le jeu*/
|
||||
longueur = 10;
|
||||
score = 0;
|
||||
vitesse = 28000000;
|
||||
initialiserSerpent(serpent, &longueur);
|
||||
dessinerGrille();
|
||||
pomme = creerPomme();
|
||||
dessinerPomme(pomme);
|
||||
placerObstacle(obstacles, nombreObstacles, LARGEUR_GRILLE, HAUTEUR_GRILLE);
|
||||
} else if (choixGameOver == 2) {
|
||||
FermerGraphique();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*Dessiner le serpent et les obstacles*/
|
||||
dessinerSerpent(serpent, &longueur);
|
||||
for (j = 0; j < nombreObstacles; j++) {
|
||||
dessinerObstacle(obstacles[j]);
|
||||
}
|
||||
|
||||
afficherScore(score);
|
||||
|
||||
/*Permet de gérer la vitesse du serpent*/
|
||||
nanosleep(&delai, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
/*Attendre en fonction de la vitesse actuelle*/
|
||||
attendreSerpent(vitesse);
|
||||
|
||||
}
|
||||
free(obstacles);
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ int main(void) {
|
||||
int choixModesDeJeu = 0;
|
||||
InitialiserGraphique();
|
||||
CreerFenetre(0, 0, 1200, 1000);
|
||||
ChoisirTitreFenetre("Snake By Moncef & Marco");
|
||||
|
||||
|
||||
while (1) {
|
||||
@ -35,6 +36,5 @@ int main(void) {
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
11
src/menu.c
11
src/menu.c
@ -22,10 +22,10 @@ void afficherMenuModesDeJeu() {
|
||||
ChargerImageFond("../img/modes_de_jeu.png");
|
||||
|
||||
/* Affiche les boutons des modes de jeu */
|
||||
afficherBouton(38.7, 639.9, 280.3, 742.9, "Classique", CouleurParComposante(168, 116, 67), CouleurParNom("nom_de_la_couleur_bordure"), CouleurParNom("nom_de_la_couleur_texte"), 2);
|
||||
afficherBouton(332.6, 639.9, 574.2, 742.9, "MultiPommes", CouleurParComposante(168, 116, 67), CouleurParNom("nom_de_la_couleur_bordure"), CouleurParNom("nom_de_la_couleur_texte"), 2);
|
||||
afficherBouton(626.2, 639.9, 867.8, 742.9, "Rapide", CouleurParComposante(168, 116, 67), CouleurParNom("nom_de_la_couleur_bordure"), CouleurParNom("nom_de_la_couleur_texte"), 2);
|
||||
afficherBouton(919.7, 639.9, 1161.3, 742.9, "Ultra rapide", CouleurParComposante(168, 116, 67), CouleurParNom("nom_de_la_couleur_bordure"), CouleurParNom("nom_de_la_couleur_texte"), 2);
|
||||
afficherBouton(38.7, 639.9, 280.3, 742.9, "Classique", CouleurParComposante(168, 116, 67), CouleurParNom("black"), CouleurParNom("black"), 2);
|
||||
afficherBouton(332.6, 639.9, 574.2, 742.9, "MultiPommes", CouleurParComposante(168, 116, 67), CouleurParNom("black"), CouleurParNom("black"), 2);
|
||||
afficherBouton(626.2, 639.9, 867.8, 742.9, "Obstacles", CouleurParComposante(168, 116, 67), CouleurParNom("black"), CouleurParNom("black"), 2);
|
||||
afficherBouton(919.7, 639.9, 1161.3, 742.9, "Acceleration", CouleurParComposante(168, 116, 67), CouleurParNom("black"), CouleurParNom("black"), 2);
|
||||
}
|
||||
|
||||
|
||||
@ -116,7 +116,8 @@ int attendreChoixMenu(){
|
||||
|
||||
void afficherBouton(double x1, double y1, double x2, double y2, const char *texte, couleur arriere_plan, couleur bordure, couleur couleur_texte, int taille_texte) {
|
||||
/* Copie la chaîne constante dans une nouvelle chaîne non constante */
|
||||
char *texte_modifiable = strdup(texte);
|
||||
char *texte_modifiable = malloc(strlen((const char *)texte) + 1);
|
||||
strcpy(texte_modifiable, (const char *)texte);
|
||||
|
||||
/* Affiche le bouton avec la couleur d'arrière-plan spécifiée */
|
||||
ChoisirCouleurDessin(arriere_plan);
|
||||
|
41
src/obstacle.c
Normal file
41
src/obstacle.c
Normal file
@ -0,0 +1,41 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <graph.h>
|
||||
#include <time.h>
|
||||
#include "../include/grille.h"
|
||||
#include "../include/serpent.h"
|
||||
#include "../include/obstacle.h"
|
||||
#include "../include/pomme.h"
|
||||
|
||||
|
||||
|
||||
void dessinerObstacle(Obstacle obstacle) {
|
||||
ChoisirCouleurDessin(CouleurParComposante(10, 10, 10)); /*choix de la couleur de l'opstacle */
|
||||
RemplirRectangle(obstacle.x * TAILLE_CASE, obstacle.y * TAILLE_CASE, TAILLE_CASE, TAILLE_CASE);
|
||||
}
|
||||
|
||||
|
||||
int estCollisionObstacle(Obstacle obstacle, Segment serpent[], int longueur) {
|
||||
int i;
|
||||
for (i = 0; i < longueur; i++) {
|
||||
if (serpent[i].x == obstacle.x && serpent[i].y == obstacle.y) {
|
||||
return 1; /*Collision avec un obstacle*/
|
||||
}
|
||||
}
|
||||
return 0; /*Pas de collision*/
|
||||
}
|
||||
|
||||
Obstacle creerObstacle(int largeurGrille, int hauteurGrille) {
|
||||
Obstacle obstacle;
|
||||
obstacle.x = rand() % largeurGrille;
|
||||
obstacle.y = rand() % hauteurGrille;
|
||||
return obstacle;
|
||||
}
|
||||
|
||||
void placerObstacle(Obstacle obstacles[], int nombreObstacles, int largeurGrille, int hauteurGrille) {
|
||||
int i;
|
||||
for (i = 0; i < nombreObstacles; i++) {
|
||||
obstacles[i] = creerObstacle(largeurGrille, hauteurGrille);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include <stdio.h>
|
||||
#include <graph.h>
|
||||
#include "../include/serpent.h"
|
||||
#include "../include/main.h"
|
||||
#define TAILLE_CASE 20
|
||||
#define LARGEUR_GRILLE 60
|
||||
#define HAUTEUR_GRILLE 40
|
||||
@ -8,9 +9,12 @@
|
||||
|
||||
void initialiserSerpent(Segment serpent[], int *longueur) {
|
||||
int i;
|
||||
int centreX = LARGEUR_GRILLE / 2;
|
||||
int centreY = HAUTEUR_GRILLE / 2;
|
||||
|
||||
for (i = 0; i < 10; ++i) {
|
||||
serpent[i].x = 10 - i;
|
||||
serpent[i].y = 10;
|
||||
serpent[i].x = centreX - i;
|
||||
serpent[i].y = centreY;
|
||||
}
|
||||
|
||||
*longueur = 10;
|
||||
@ -32,6 +36,9 @@ void gestionDeplacements(Segment serpent[], int *direction_x, int *direction_y)
|
||||
} else if (touche == XK_Right && *direction_x == 0) {
|
||||
*direction_x = 1;
|
||||
*direction_y = 0;
|
||||
} else if (touche == XK_Escape) {
|
||||
FermerGraphique();
|
||||
main();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -59,11 +66,18 @@ void mettreAJourSerpent(Segment serpent[], int *longueur, int *direction_x, int
|
||||
int i;
|
||||
int ancienX = serpent[*longueur - 1].x;
|
||||
int ancienY = serpent[*longueur - 1].y;
|
||||
|
||||
/* Déterminer la couleur de fond en fonction de la position de la case dans la grille */
|
||||
couleur couleurFond = (ancienX + ancienY) % 2 == 0 ? CouleurParComposante(170, 215, 82) : CouleurParComposante(180, 220, 90);
|
||||
|
||||
/* Remplir la case avec la couleur de fond appropriée */
|
||||
ChoisirCouleurDessin(couleurFond);
|
||||
RemplirRectangle(ancienX * TAILLE_CASE, ancienY * TAILLE_CASE, TAILLE_CASE, TAILLE_CASE);
|
||||
|
||||
/* Remplir la case avec la couleur de la grille à cet endroit précis */
|
||||
ChoisirCouleurDessin(CouleurParComposante(170, 215, 82));
|
||||
RemplirRectangle(0, 0, TAILLE_CASE, TAILLE_CASE);
|
||||
|
||||
for (i = *longueur - 1; i > 0; --i) {
|
||||
serpent[i] = serpent[i - 1];
|
||||
}
|
||||
@ -73,6 +87,7 @@ void mettreAJourSerpent(Segment serpent[], int *longueur, int *direction_x, int
|
||||
tuerSerpent(serpent, *longueur); /*Appeler la fonction pour vérifier si le serpent est mort*/
|
||||
}
|
||||
|
||||
|
||||
void dessinerSerpent(Segment serpent[], int *longueur) {
|
||||
int i;
|
||||
for (i = 0; i < *longueur; ++i) {
|
||||
@ -80,3 +95,10 @@ void dessinerSerpent(Segment serpent[], int *longueur) {
|
||||
RemplirRectangle(serpent[i].x * TAILLE_CASE, serpent[i].y * TAILLE_CASE, TAILLE_CASE, TAILLE_CASE);
|
||||
}
|
||||
}
|
||||
|
||||
void attendreSerpent(unsigned long int microseconds) {
|
||||
unsigned long int attente_jusqu_a = Microsecondes() + microseconds;
|
||||
while (Microsecondes() < attente_jusqu_a) {
|
||||
/*Attendre jusqu'au temps données en paramètre de la fonction*/
|
||||
}
|
||||
}
|
10
src/timer.c
10
src/timer.c
@ -4,12 +4,11 @@
|
||||
#define cycle 1000000L
|
||||
|
||||
unsigned long int attendre(void) {
|
||||
int x=1;
|
||||
unsigned long int temps_pause;
|
||||
unsigned long int t1 = Microsecondes();
|
||||
while(x==1){
|
||||
if(Touche()==XK_space){
|
||||
x=0;
|
||||
while (1) {
|
||||
if (ToucheEnAttente() && Touche() == XK_space) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
temps_pause = Microsecondes() - t1;
|
||||
@ -68,7 +67,6 @@ void creer_timer(void){
|
||||
while(x=1){
|
||||
if(Microsecondes()>seconde){
|
||||
sec++;
|
||||
printf("%d\n",sec);
|
||||
afficher_seconde(sec);
|
||||
seconde=Microsecondes()+cycle;
|
||||
if(sec==60){
|
||||
@ -90,6 +88,7 @@ void creer_timer(void){
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
int main(void){
|
||||
InitialiserGraphique();
|
||||
CreerFenetre(1000,0,1000,1000);
|
||||
@ -97,3 +96,4 @@ int main(void){
|
||||
FermerGraphique();
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
*/
|
Loading…
Reference in New Issue
Block a user