Soirée Peer Programming avec Marco ORFAO : Création des pommes, ajouts de nouveaux modes de jeux, création de fichier .h, correction de bug etc...
This commit is contained in:
parent
4f440ff76f
commit
54da386d6a
10
include/grille.h
Normal file
10
include/grille.h
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#ifndef GRILLE_H
|
||||||
|
#define GRILLE_H
|
||||||
|
|
||||||
|
#define TAILLE_CASE 20
|
||||||
|
#define LARGEUR_GRILLE 60
|
||||||
|
#define HAUTEUR_GRILLE 40
|
||||||
|
|
||||||
|
void dessinerGrille(void);
|
||||||
|
|
||||||
|
#endif /*GRILLE_H*/
|
6
include/main.h
Normal file
6
include/main.h
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#ifndef MAIN_H
|
||||||
|
#define MAIN_H
|
||||||
|
|
||||||
|
int main(void);
|
||||||
|
|
||||||
|
#endif /*MAIN_H*/
|
12
include/menu.h
Normal file
12
include/menu.h
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#ifndef MENU_H
|
||||||
|
#define MENU_H
|
||||||
|
|
||||||
|
|
||||||
|
void afficherMenuPrincipal(void);
|
||||||
|
void afficherMenuModesDeJeu(void);
|
||||||
|
void afficherMenuGameOver(void);
|
||||||
|
int attendreChoixGameOver(void);
|
||||||
|
int attendreChoixModesDeJeu(void);
|
||||||
|
int attendreChoixMenu(void);
|
||||||
|
|
||||||
|
#endif /*MENU_H*/
|
16
include/pomme.h
Normal file
16
include/pomme.h
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#ifndef POMME_H
|
||||||
|
#define POMME_H
|
||||||
|
|
||||||
|
#include "../include/grille.h"
|
||||||
|
#include "../include/serpent.h"
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
} Pomme;
|
||||||
|
|
||||||
|
Pomme creerPomme();
|
||||||
|
void dessinerPomme(Pomme pomme);
|
||||||
|
int verifierCollisionPommeSerpent(Pomme pomme, Segment serpent[], int longueur);
|
||||||
|
|
||||||
|
#endif /*POMME_H*/
|
@ -1,14 +1,13 @@
|
|||||||
#ifndef SERPENT_H
|
#ifndef SERPENT_H
|
||||||
#define SERPENT_H
|
#define SERPENT_H
|
||||||
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int x, y;
|
int x, y;
|
||||||
} Segment;
|
} Segment;
|
||||||
|
|
||||||
void initialiserSerpent(Segment serpent[], int *longueur);
|
void initialiserSerpent(Segment serpent[], int *longueur);
|
||||||
void gestionDeplacements(Segment serpent[], int *direction_x, int *direction_y);
|
void gestionDeplacements(Segment serpent[], int *direction_x, int *direction_y);
|
||||||
int tuerSerpent(Segment serpent[]);
|
int tuerSerpent(Segment serpent[], int longueur);
|
||||||
void mettreAJourSerpent(Segment serpent[], int *longueur, int *direction_x, int *direction_y);
|
void mettreAJourSerpent(Segment serpent[], int *longueur, int *direction_x, int *direction_y);
|
||||||
void dessinerSerpent(Segment serpent[], int *longueur);
|
void dessinerSerpent(Segment serpent[], int *longueur);
|
||||||
int seMangerQueue(Segment serpent[], int longueur);
|
int seMangerQueue(Segment serpent[], int longueur);
|
||||||
|
24
src/grille.c
24
src/grille.c
@ -1,12 +1,14 @@
|
|||||||
#include <graph.h>
|
#include <graph.h>
|
||||||
|
#include "../include/grille.h"
|
||||||
|
|
||||||
/* Dessine une grille de 60 colonnes sur 40 lignes */
|
|
||||||
void dessinerGrille() {
|
void dessinerGrille(void) {
|
||||||
ChargerImageFond("../img/grille.png");
|
/* Dessine une grille de 60 colonnes sur 40 lignes */
|
||||||
int i, j;
|
int i, j;
|
||||||
int tailleCase = 20;
|
int tailleCase = 20; /* Taille d'une case */
|
||||||
couleur couleur1 = CouleurParComposante(170, 215, 82); /* Vert clair */
|
couleur couleur1 = CouleurParComposante(170, 215, 82); /* Vert clair */
|
||||||
couleur couleur2 = CouleurParComposante(54, 103, 0); /* Vert foncé */
|
couleur couleur2 = CouleurParComposante(54, 103, 0); /* Vert foncé */
|
||||||
|
ChargerImageFond("../img/bas_grille.png"); /*Affiche l'image du bas => Score... Timer...*/
|
||||||
|
|
||||||
for (i = 0; i < 40; i++) {
|
for (i = 0; i < 40; i++) {
|
||||||
for (j = 0; j < 60; j++) {
|
for (j = 0; j < 60; j++) {
|
||||||
@ -18,16 +20,4 @@ void dessinerGrille() {
|
|||||||
RemplirRectangle(j * tailleCase, i * tailleCase, tailleCase, tailleCase);
|
RemplirRectangle(j * tailleCase, i * tailleCase, tailleCase, tailleCase);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* UNIQUEMENT POUR TESTER LA GRILLE
|
|
||||||
int main() {
|
|
||||||
InitialiserGraphique();
|
|
||||||
CreerFenetre(0, 0, 1200, 1000);
|
|
||||||
|
|
||||||
dessinerGrille();
|
|
||||||
|
|
||||||
Touche();
|
|
||||||
FermerGraphique();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
*/
|
|
38
src/main.c
38
src/main.c
@ -1,30 +1,40 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <graph.h>
|
#include <graph.h>
|
||||||
#include "../include/menu.h"
|
|
||||||
#include "../include/jeu.h"
|
#include "../include/jeu.h"
|
||||||
|
#include "../include/menu.h"
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
int main(){
|
int choixMenuPrincipal = 0;
|
||||||
|
int choixModesDeJeu = 0;
|
||||||
InitialiserGraphique();
|
InitialiserGraphique();
|
||||||
CreerFenetre(0, 0, 1200, 1000);
|
CreerFenetre(0, 0, 1200, 1000);
|
||||||
|
|
||||||
int choixMenuPrincipal = 0;
|
|
||||||
int choixModesDeJeu = 0;
|
|
||||||
|
|
||||||
while (1){
|
while (1) {
|
||||||
if(choixMenuPrincipal == 0){
|
if (choixMenuPrincipal == 0) {
|
||||||
afficherMenuPrincipal();
|
afficherMenuPrincipal();
|
||||||
choixMenuPrincipal = attendreChoixMenu();
|
choixMenuPrincipal = attendreChoixMenu();
|
||||||
}else if(choixMenuPrincipal == 1){
|
} else if (choixMenuPrincipal == 1) {
|
||||||
afficherMenuModesDeJeu();
|
afficherMenuModesDeJeu();
|
||||||
choixModesDeJeu = attendreChoixModesDeJeu();
|
choixModesDeJeu = attendreChoixModesDeJeu();
|
||||||
choixMenuPrincipal = 0;
|
if(choixModesDeJeu == 1){
|
||||||
}else if(choixMenuPrincipal == 2){
|
lancer_jeu1();
|
||||||
|
}
|
||||||
|
if(choixModesDeJeu == 2){
|
||||||
|
lancer_jeu2();
|
||||||
|
}
|
||||||
|
if(choixModesDeJeu == 3){
|
||||||
|
lancer_jeu3();
|
||||||
|
}
|
||||||
|
if(choixModesDeJeu == 4){
|
||||||
|
lancer_jeu4();
|
||||||
|
}
|
||||||
|
} else if (choixMenuPrincipal == 2) {
|
||||||
FermerGraphique();
|
FermerGraphique();
|
||||||
return 0;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
40
src/menu.c
40
src/menu.c
@ -2,6 +2,7 @@
|
|||||||
#include<stdlib.h>
|
#include<stdlib.h>
|
||||||
#include<graph.h>
|
#include<graph.h>
|
||||||
#include "../include/menu.h"
|
#include "../include/menu.h"
|
||||||
|
#include "../include/main.h"
|
||||||
|
|
||||||
void afficherMenuPrincipal(){
|
void afficherMenuPrincipal(){
|
||||||
ChargerImageFond("../img/menu_principal.png");
|
ChargerImageFond("../img/menu_principal.png");
|
||||||
@ -30,31 +31,54 @@ void afficherMenuModesDeJeu(){
|
|||||||
ChoisirCouleurDessin(CouleurParComposante(168,116,67));
|
ChoisirCouleurDessin(CouleurParComposante(168,116,67));
|
||||||
RemplirRectangle(38.7, 639.9, 241.6, 103);
|
RemplirRectangle(38.7, 639.9, 241.6, 103);
|
||||||
ChoisirCouleurDessin(CouleurParNom("black"));
|
ChoisirCouleurDessin(CouleurParNom("black"));
|
||||||
EcrireTexte(98.6, 700, "Classique", 2);
|
EcrireTexte(87.6, 700, "Classique", 2);
|
||||||
|
|
||||||
/*Affiche le bouton n°2*/
|
/*Affiche le bouton n°2*/
|
||||||
ChoisirCouleurDessin(CouleurParComposante(168,116,67));
|
ChoisirCouleurDessin(CouleurParComposante(168,116,67));
|
||||||
RemplirRectangle(332.6, 639.9, 241.6, 103);
|
RemplirRectangle(332.6, 639.9, 241.6, 103);
|
||||||
ChoisirCouleurDessin(CouleurParNom("black"));
|
ChoisirCouleurDessin(CouleurParNom("black"));
|
||||||
EcrireTexte(387.4, 700, "Facile", 2);
|
EcrireTexte(360.4, 700, "MultiPommes", 2);
|
||||||
|
|
||||||
/*Affiche le bouton n°3*/
|
/*Affiche le bouton n°3*/
|
||||||
ChoisirCouleurDessin(CouleurParComposante(168,116,67));
|
ChoisirCouleurDessin(CouleurParComposante(168,116,67));
|
||||||
RemplirRectangle(626.2, 639.9, 241.6, 103);
|
RemplirRectangle(626.2, 639.9, 241.6, 103);
|
||||||
ChoisirCouleurDessin(CouleurParNom("black"));
|
ChoisirCouleurDessin(CouleurParNom("black"));
|
||||||
EcrireTexte(686.1, 700, "Moyen", 2);
|
EcrireTexte(700.1, 700, "Rapide", 2);
|
||||||
|
|
||||||
/*Affiche le bouton n°4*/
|
/*Affiche le bouton n°4*/
|
||||||
ChoisirCouleurDessin(CouleurParComposante(168,116,67));
|
ChoisirCouleurDessin(CouleurParComposante(168,116,67));
|
||||||
RemplirRectangle(919.7, 639.9, 241.6, 103);
|
RemplirRectangle(919.7, 639.9, 241.6, 103);
|
||||||
ChoisirCouleurDessin(CouleurParNom("black"));
|
ChoisirCouleurDessin(CouleurParNom("black"));
|
||||||
EcrireTexte(979.7, 700, "Difficile", 2);
|
EcrireTexte(960.7, 700, "Ultra rapide", 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void afficherMenuCheatCode(){
|
|
||||||
ChargerImageFond("menu_cheat_code.png");
|
void afficherMenuGameOver(void) {
|
||||||
|
/* Affiche l'image game over */
|
||||||
|
ChargerImageFond("../img/game_over.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int attendreChoixGameOver() {
|
||||||
|
int x, y;
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
if (SourisCliquee()) {
|
||||||
|
SourisPosition();
|
||||||
|
x = _X;
|
||||||
|
y = _Y;
|
||||||
|
|
||||||
|
/* Vérifie si le bouton "Menu Principal" est cliqué */
|
||||||
|
if (x >= 379 && x <= 830.7 && y >= 530.3 && y <= 670.1) {
|
||||||
|
FermerGraphique();
|
||||||
|
main(); /* Renvoie vers le menu principal" */
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int attendreChoixModesDeJeu(){
|
int attendreChoixModesDeJeu(){
|
||||||
int x, y;
|
int x, y;
|
||||||
|
|
||||||
@ -83,10 +107,6 @@ int attendreChoixModesDeJeu(){
|
|||||||
if (x >= 919.7 && x <= 1161.3 && y >= 639.9 && y <= 742.9) {
|
if (x >= 919.7 && x <= 1161.3 && y >= 639.9 && y <= 742.9) {
|
||||||
return 4; /*Renvoie le choix bouton n°4*/
|
return 4; /*Renvoie le choix bouton n°4*/
|
||||||
}
|
}
|
||||||
/*Vérifie si le bouton d'accès aux cheats codes est cliqué*/
|
|
||||||
if (x >= 1126.1 && x <= 1193.5 && y >= 792.8 && y <= 860.2) {
|
|
||||||
return 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <graph.h>
|
#include <graph.h>
|
||||||
#include <unistd.h> /* en attendant de trouver une meilleur fonction pour le temps*/
|
|
||||||
#include "../include/grille.h"
|
|
||||||
#include "../include/serpent.h"
|
#include "../include/serpent.h"
|
||||||
|
|
||||||
#define TAILLE_CASE 20
|
#define TAILLE_CASE 20
|
||||||
#define LARGEUR_GRILLE 60
|
#define LARGEUR_GRILLE 60
|
||||||
#define HAUTEUR_GRILLE 40
|
#define HAUTEUR_GRILLE 40
|
||||||
@ -39,25 +36,25 @@ void gestionDeplacements(Segment serpent[], int *direction_x, int *direction_y)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int tuerSerpent(Segment serpent[]) {
|
int tuerSerpent(Segment serpent[], int longueur) {
|
||||||
/*Vérifier si le serpent est sorti de la grille*/
|
int i;
|
||||||
|
/*Vérifier si la tête du serpent est sortie de la grille après le déplacement*/
|
||||||
if (serpent[0].x < 0 || serpent[0].x >= LARGEUR_GRILLE || serpent[0].y < 0 || serpent[0].y >= HAUTEUR_GRILLE) {
|
if (serpent[0].x < 0 || serpent[0].x >= LARGEUR_GRILLE || serpent[0].y < 0 || serpent[0].y >= HAUTEUR_GRILLE) {
|
||||||
return 1; /*il est mort*/
|
return 1; /*il est mort*/
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
int seMangerQueue(Segment serpent[], int longueur) {
|
/*Vérifier si la tête du serpent entre en collision avec son propre corps*/
|
||||||
int i;
|
|
||||||
/*Vérifie si la tête du serpent entre en collision avec son propre corps*/
|
|
||||||
for (i = 1; i < longueur; ++i) {
|
for (i = 1; i < longueur; ++i) {
|
||||||
if (serpent[0].x == serpent[i].x && serpent[0].y == serpent[i].y) {
|
if (serpent[0].x == serpent[i].x && serpent[0].y == serpent[i].y) {
|
||||||
return 1; /*Le serpent s'est mangé sa propre queue*/
|
return 1; /*il est mort*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0; /*Aucune collision avec la queue*/
|
|
||||||
|
return 0; /*le serpent est en vie*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void mettreAJourSerpent(Segment serpent[], int *longueur, int *direction_x, int *direction_y) {
|
void mettreAJourSerpent(Segment serpent[], int *longueur, int *direction_x, int *direction_y) {
|
||||||
int i;
|
int i;
|
||||||
int ancienX = serpent[*longueur - 1].x;
|
int ancienX = serpent[*longueur - 1].x;
|
||||||
@ -73,7 +70,7 @@ void mettreAJourSerpent(Segment serpent[], int *longueur, int *direction_x, int
|
|||||||
serpent[0].x += *direction_x;
|
serpent[0].x += *direction_x;
|
||||||
serpent[0].y += *direction_y;
|
serpent[0].y += *direction_y;
|
||||||
|
|
||||||
tuerSerpent(serpent); /*Appeler la fonction pour vérifier si le serpent est mort*/
|
tuerSerpent(serpent,*longueur); /*Appeler la fonction pour vérifier si le serpent est mort*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void dessinerSerpent(Segment serpent[], int *longueur) {
|
void dessinerSerpent(Segment serpent[], int *longueur) {
|
||||||
|
Loading…
Reference in New Issue
Block a user