Correction de bugs
This commit is contained in:
parent
64c5fc17a6
commit
c1c53b53f2
BIN
img/bombe.png
Normal file
BIN
img/bombe.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.5 KiB |
@ -2,12 +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*/
|
@ -1,12 +1,10 @@
|
||||
#ifndef TIMER_H
|
||||
#define TIMER_H
|
||||
|
||||
|
||||
unsigned long int attendre(void);
|
||||
unsigned long int creer_timer(void);
|
||||
int afficher_minute(int min);
|
||||
void initialiser_timer(int *min, int *sec);
|
||||
int afficher_seconde(int sec);
|
||||
int afficher_minute(int min);
|
||||
void update_timer(int *min, int *sec);
|
||||
void pause(void);
|
||||
|
||||
|
||||
|
||||
#endif /*TIMER_H*/
|
||||
#endif /* TIMER_H */
|
||||
|
18
src/.vscode/c_cpp_properties.json
vendored
18
src/.vscode/c_cpp_properties.json
vendored
@ -1,18 +0,0 @@
|
||||
{
|
||||
"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
24
src/.vscode/launch.json
vendored
@ -1,24 +0,0 @@
|
||||
{
|
||||
"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
37
src/.vscode/settings.json
vendored
@ -1,37 +0,0 @@
|
||||
{
|
||||
"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
|
||||
}
|
54
src/jeu.c
54
src/jeu.c
@ -24,6 +24,7 @@ void afficherScore(int score) {
|
||||
|
||||
|
||||
void lancer_jeu1(void) {
|
||||
int fin = 1;
|
||||
Segment serpent[100];
|
||||
int longueur = 10;
|
||||
int direction_x = 1;
|
||||
@ -31,20 +32,18 @@ void lancer_jeu1(void) {
|
||||
int score = 0;
|
||||
char scoreStr[20];
|
||||
Pomme pomme;
|
||||
int min, sec;
|
||||
|
||||
FermerGraphique();
|
||||
InitialiserGraphique();
|
||||
CreerFenetre(0, 0, 1200, 1000);
|
||||
ChoisirTitreFenetre("Snake By Moncef & Marco");
|
||||
|
||||
initialiser_timer(&min, &sec);
|
||||
initialiserSerpent(serpent, &longueur);
|
||||
dessinerGrille();
|
||||
|
||||
pomme = creerPomme();
|
||||
dessinerPomme(pomme);
|
||||
|
||||
|
||||
while (1) {
|
||||
while (fin == 1) {
|
||||
update_timer(&min, &sec);
|
||||
gestionDeplacements(serpent, &direction_x, &direction_y);
|
||||
mettreAJourSerpent(serpent, &longueur, &direction_x, &direction_y);
|
||||
|
||||
@ -58,21 +57,22 @@ void lancer_jeu1(void) {
|
||||
if (tuerSerpent(serpent, longueur)) {
|
||||
int choixGameOver;
|
||||
afficherMenuGameOver();
|
||||
afficher_seconde(sec);
|
||||
afficher_minute(min);
|
||||
afficherScore(score);
|
||||
/* Attend le choix du joueur après le game over */
|
||||
choixGameOver = attendreChoixGameOver();
|
||||
}
|
||||
|
||||
|
||||
|
||||
dessinerSerpent(serpent, &longueur);
|
||||
|
||||
afficherScore(score);
|
||||
update_timer(&min, &sec);
|
||||
|
||||
attendreSerpent(150000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void lancer_jeu2(void) {
|
||||
int i;
|
||||
Segment serpent[100];
|
||||
@ -83,12 +83,10 @@ void lancer_jeu2(void) {
|
||||
int score = 0;
|
||||
char scoreStr[20];
|
||||
Pomme pommes[5];
|
||||
int min, sec;
|
||||
|
||||
FermerGraphique();
|
||||
InitialiserGraphique();
|
||||
CreerFenetre(0, 0, 1200, 1000);
|
||||
ChoisirTitreFenetre("Snake By Moncef & Marco");
|
||||
|
||||
initialiser_timer(&min, &sec);
|
||||
initialiserSerpent(serpent, &longueur);
|
||||
dessinerGrille();
|
||||
|
||||
@ -113,6 +111,9 @@ void lancer_jeu2(void) {
|
||||
if (tuerSerpent(serpent, longueur)) {
|
||||
int choixGameOver;
|
||||
afficherMenuGameOver();
|
||||
afficher_seconde(sec);
|
||||
afficher_minute(min);
|
||||
afficherScore(score);
|
||||
|
||||
/* Attend le choix du joueur après le game over */
|
||||
choixGameOver = attendreChoixGameOver();
|
||||
@ -121,8 +122,9 @@ void lancer_jeu2(void) {
|
||||
dessinerSerpent(serpent, &longueur);
|
||||
|
||||
afficherScore(score);
|
||||
update_timer(&min, &sec);
|
||||
|
||||
attendreSerpent(vitesse);
|
||||
attendreSerpent(vitesse); /*Gère la vitesse*/
|
||||
}
|
||||
}
|
||||
|
||||
@ -136,13 +138,10 @@ void lancer_jeu4(void) {
|
||||
char scoreStr[20];
|
||||
Pomme pomme;
|
||||
Segment serpent[100];
|
||||
|
||||
FermerGraphique();
|
||||
InitialiserGraphique();
|
||||
CreerFenetre(0, 0, 1200, 1000);
|
||||
ChoisirTitreFenetre("Snake By Moncef & Marco");
|
||||
int min, sec;
|
||||
|
||||
|
||||
initialiser_timer(&min, &sec);
|
||||
initialiserSerpent(serpent, &longueur);
|
||||
dessinerGrille();
|
||||
|
||||
@ -173,6 +172,7 @@ void lancer_jeu4(void) {
|
||||
|
||||
dessinerSerpent(serpent, &longueur);
|
||||
afficherScore(score);
|
||||
update_timer(&min, &sec);
|
||||
|
||||
attendreSerpent(vitesse);
|
||||
}
|
||||
@ -190,14 +190,9 @@ void lancer_jeu3(void) {
|
||||
int nombreObstacles = 10;
|
||||
Obstacle *obstacles = malloc(nombreObstacles * sizeof(Obstacle));
|
||||
Segment serpent[100];
|
||||
int min, sec;
|
||||
|
||||
|
||||
|
||||
FermerGraphique();
|
||||
InitialiserGraphique();
|
||||
CreerFenetre(0, 0, 1200, 1000);
|
||||
ChoisirTitreFenetre("Snake By Moncef & Marco");
|
||||
|
||||
initialiser_timer(&min, &sec);
|
||||
initialiserSerpent(serpent, &longueur);
|
||||
dessinerGrille();
|
||||
|
||||
@ -223,6 +218,8 @@ void lancer_jeu3(void) {
|
||||
if (tuerSerpent(serpent, longueur)) {
|
||||
int choixGameOver;
|
||||
afficherMenuGameOver();
|
||||
afficher_seconde(sec);
|
||||
afficher_minute(min);
|
||||
afficherScore(score);
|
||||
/* Attend le choix du joueur après le game over */
|
||||
choixGameOver = attendreChoixGameOver();
|
||||
@ -233,6 +230,9 @@ void lancer_jeu3(void) {
|
||||
if (estCollisionObstacle(obstacles[i], serpent, longueur)) {
|
||||
int choixGameOver;
|
||||
afficherMenuGameOver();
|
||||
afficher_seconde(sec);
|
||||
afficher_minute(min);
|
||||
afficherScore(score);
|
||||
|
||||
/* Attend le choix du joueur après le game over */
|
||||
choixGameOver = attendreChoixGameOver();
|
||||
@ -259,6 +259,8 @@ void lancer_jeu3(void) {
|
||||
}
|
||||
|
||||
afficherScore(score);
|
||||
update_timer(&min, &sec);
|
||||
|
||||
|
||||
/*Attendre en fonction de la vitesse actuelle*/
|
||||
attendreSerpent(vitesse);
|
||||
|
@ -20,15 +20,19 @@ int main(void) {
|
||||
afficherMenuModesDeJeu();
|
||||
choixModesDeJeu = attendreChoixModesDeJeu();
|
||||
if(choixModesDeJeu == 1){
|
||||
EffacerEcran(CouleurParNom("white"));
|
||||
lancer_jeu1();
|
||||
}
|
||||
if(choixModesDeJeu == 2){
|
||||
EffacerEcran(CouleurParNom("white"));
|
||||
lancer_jeu2();
|
||||
}
|
||||
if(choixModesDeJeu == 3){
|
||||
EffacerEcran(CouleurParNom("white"));
|
||||
lancer_jeu3();
|
||||
}
|
||||
if(choixModesDeJeu == 4){
|
||||
EffacerEcran(CouleurParNom("white"));
|
||||
lancer_jeu4();
|
||||
}
|
||||
} else if (choixMenuPrincipal == 2) {
|
||||
|
@ -49,7 +49,7 @@ int attendreChoixGameOver() {
|
||||
|
||||
/* Vérifie si le bouton "Menu Principal" est cliqué */
|
||||
if (x >= 379 && x <= 830.7 && y >= 530.3 && y <= 670.1) {
|
||||
FermerGraphique();
|
||||
EffacerEcran(CouleurParNom("white"));
|
||||
main(); /* Renvoie vers le menu principal" */
|
||||
}
|
||||
|
||||
|
@ -10,8 +10,9 @@
|
||||
|
||||
|
||||
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 id_bombe;
|
||||
id_bombe = ChargerSprite("../img/bombe.png");
|
||||
AfficherSprite(id_bombe,obstacle.x * TAILLE_CASE, obstacle.y * TAILLE_CASE);
|
||||
}
|
||||
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
#include <graph.h>
|
||||
#include "../include/serpent.h"
|
||||
#include "../include/main.h"
|
||||
#include "../include/timer.h"
|
||||
#define TAILLE_CASE 20
|
||||
#define LARGEUR_GRILLE 60
|
||||
#define HAUTEUR_GRILLE 40
|
||||
@ -39,6 +40,8 @@ void gestionDeplacements(Segment serpent[], int *direction_x, int *direction_y)
|
||||
} else if (touche == XK_Escape) {
|
||||
FermerGraphique();
|
||||
main();
|
||||
} else if (touche == XK_space) {
|
||||
pause();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
85
src/timer.c
85
src/timer.c
@ -1,23 +1,18 @@
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
#include<graph.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <graph.h>
|
||||
#include "../include/timer.h"
|
||||
|
||||
#define cycle 1000000L
|
||||
|
||||
unsigned long int attendre(void) {
|
||||
unsigned long int temps_pause;
|
||||
unsigned long int t1 = Microsecondes();
|
||||
while (1) {
|
||||
if (ToucheEnAttente() && Touche() == XK_space) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
temps_pause = Microsecondes() - t1;
|
||||
return temps_pause;
|
||||
void initialiser_timer(int *min, int *sec) {
|
||||
*min = 0;
|
||||
*sec = 0;
|
||||
}
|
||||
|
||||
int afficher_seconde(int sec){
|
||||
char timer[50];
|
||||
int x = 120 ,y = 100;
|
||||
int x = 230 ,y = 850;
|
||||
if(sec<=9){
|
||||
ChoisirCouleurDessin(CouleurParComposante(0, 0, 0));
|
||||
RemplirRectangle(x-3,y-25,40,30);
|
||||
@ -37,63 +32,51 @@ int afficher_seconde(int sec){
|
||||
|
||||
int afficher_minute(int min){
|
||||
char timer[50];
|
||||
int x = 80 ,y = 100;
|
||||
int x = 190 ,y = 850;
|
||||
if(min<=9){
|
||||
ChoisirCouleurDessin(CouleurParComposante(0, 0, 0));
|
||||
RemplirRectangle(x-3,y-25,40,30);
|
||||
ChoisirCouleurDessin(CouleurParComposante(255, 255, 255));
|
||||
EcrireTexte(x,y,"0",2);
|
||||
snprintf(timer,sizeof(timer),"%d",min);
|
||||
EcrireTexte(110,100,":",2);
|
||||
EcrireTexte(x+30,y,":",2);
|
||||
EcrireTexte(x+15,y,timer,2);
|
||||
} else {
|
||||
ChoisirCouleurDessin(CouleurParComposante(0, 0, 0));
|
||||
RemplirRectangle(x-3,y-25,40,25);
|
||||
ChoisirCouleurDessin(CouleurParComposante(255, 255, 255));
|
||||
snprintf(timer,sizeof(timer),"%d",min);
|
||||
EcrireTexte(110,100,":",2);
|
||||
EcrireTexte(x+30,y,":",2);
|
||||
EcrireTexte(x,y,timer,2);
|
||||
}
|
||||
return min;
|
||||
}
|
||||
|
||||
void creer_timer(void){
|
||||
int sec = 0,min=0,x=1;
|
||||
unsigned long int temps = 0,seconde,pause=0;
|
||||
seconde=Microsecondes()+cycle;
|
||||
afficher_seconde(sec);
|
||||
afficher_minute(min);
|
||||
EcrireTexte(110,100,":",2);
|
||||
while(x=1){
|
||||
if(Microsecondes()>seconde){
|
||||
sec++;
|
||||
afficher_seconde(sec);
|
||||
seconde=Microsecondes()+cycle;
|
||||
if(sec==60){
|
||||
sec=0;
|
||||
min++;
|
||||
afficher_seconde(sec);
|
||||
afficher_minute(min);
|
||||
}
|
||||
void update_timer(int *min, int *sec) {
|
||||
static unsigned long int temps_precedent = 0;
|
||||
unsigned long int temps_actuel = Microsecondes();
|
||||
unsigned long int temps_ecoule = temps_actuel - temps_precedent;
|
||||
|
||||
if (temps_ecoule >= cycle) {
|
||||
temps_precedent = temps_actuel;
|
||||
|
||||
if (*sec < 59) {
|
||||
(*sec)++;
|
||||
} else {
|
||||
*sec = 0;
|
||||
(*min)++;
|
||||
}
|
||||
if(ToucheEnAttente()==1){
|
||||
if(Touche()==XK_space){
|
||||
pause=attendre();
|
||||
}
|
||||
if(Touche()==XK_Escape){
|
||||
x=0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Afficher le timer */
|
||||
afficher_seconde(*sec);
|
||||
afficher_minute(*min);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
int main(void){
|
||||
InitialiserGraphique();
|
||||
CreerFenetre(1000,0,1000,1000);
|
||||
creer_timer();
|
||||
FermerGraphique();
|
||||
return EXIT_SUCCESS;
|
||||
void pause(void) {
|
||||
while (1) {
|
||||
if (ToucheEnAttente() && Touche() == XK_space) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
Loading…
Reference in New Issue
Block a user