ShellSnake_upgraded
 
Loading...
Searching...
No Matches
shellsnake.h File Reference

jeu de snake pour terminal More...

#include <ncurses.h>
#include <unistd.h>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#include <string.h>

Go to the source code of this file.

Data Structures

struct  Tab2
 coordonnées d'une case du tableau à double entrée plateau More...
 

Macros

#define TAILLEX   31
 
#define TAILLEY   19
 
#define INTERVALLE   1.3
 

Functions

void affichPlateau (char **plateau, int largeur, int hauteur)
 affiche le plateau de jeu représentant l'état de la partie
 
void initPlateau (char **plateau, int largeur, int hauteur)
 initialise le plateau avant le démarrage de la partie(contours,fond et serpent)
 
void placerPomme (char **plateau, int largeur, int hauteur, int cellulesVides[][2], int tlogCellulesVides)
 placer une pomme aléatoirement sur le plateau
 
void creerTableauSansSerpent (char **plateau, int largeur, int hauteur, int cellulesVides[][2], int *tlogCellulesVides)
 creer un tableau contenant toutes les positions disponibles pour placer une pomme
 
Tab2 deplacementTete (char **plateau, int largeur, int hauteur, Tab2 tete, Tab2 dir)
 détermine les nouvelles coordonnées de la tête
 
void majPlateau (char **plateau, int largeur, int hauteur, Tab2 corps[], Tab2 tete, int taille, Tab2 dir)
 met à jour la position du serpent sur le tableau plateau de jeu
 
void testCollisions (char **plateau, int largeur, int hauteur, Tab2 tete, int *surPomme, int *collision)
 vérifie si la tête est en collision avec un mur, sa queue ou une pomme
 
int lancerPartie (int largeur, int hauteur, float vitesse, int nbPommes)
 lance une partie de snake
 
char ** allouerPlateau (int hauteur, int largeur)
 alloue le plateau de jeu sur le tas
 
void libererPlateau (char **plateau, int hauteur)
 libère le plateau de jeu alloué en début de partie
 
void afficheMenu (WINDOW *win1, WINDOW *win2, char colorTab[][10], char sizeTab[][10], char speedTab[][10], int pos, int itSize, int itSpeed, int itColor, int nbPommes, int score)
 affiche le Menu du jeu
 
void menu (void)
 menu du jeu qui permet de parametrer sa partie
 
int customMenuSize (int tailleCustom, int vitesseCustom, int *largeur, int *hauteur, float *vitesse, int itColor)
 affiche des sous fenêtres pour que le joueur choisisse ses préférences
 

Detailed Description

jeu de snake pour terminal

Author
tristan.gnl
Date
28/02/2025

Function Documentation

◆ afficheMenu()

void afficheMenu ( WINDOW * win1,
WINDOW * win2,
char colorTab[][10],
char sizeTab[][10],
char speedTab[][10],
int pos,
int itSize,
int itSpeed,
int itColor,
int nbPommes,
int score )

affiche le Menu du jeu

Parameters
[in]win1fenêtre principale du menu
[in]win2fenêtre secondaire du menu
[in]colorTabtableau des options de couleur
[in]sizeTabtableau des options de taille
[in]speedTabtableau des options de vitesse
[in]posposition verticale du curseur du joueur sur le menu
[in]itSizeitérateur sur l'indice du sizeTab
[in]itSpeeditérateur sur l'indice du speedTab
[in]itColoritérateur sur l'indice du colorTab
[in]nbPommesnombre de pommes choisi
[in]scorescore du joueur de la dernière partie

◆ affichPlateau()

void affichPlateau ( char ** plateau,
int largeur,
int hauteur )

affiche le plateau de jeu représentant l'état de la partie

Parameters
[in]plateautableau à double entrée contenant des charactères
[in]largeurlargeur du plateau à afficher
[in]hauteurhauteur du plateau à afficher

◆ allouerPlateau()

char ** allouerPlateau ( int hauteur,
int largeur )

alloue le plateau de jeu sur le tas

Parameters
[in]hauteurhauteur du plateau à allouer
[in]largeurlargeur du plateau à allouer
Returns
le plateau de jeu alloué

◆ creerTableauSansSerpent()

void creerTableauSansSerpent ( char ** plateau,
int largeur,
int hauteur,
int cellulesVides[][2],
int * tlogCellulesVides )

creer un tableau contenant toutes les positions disponibles pour placer une pomme

Parameters
[in]plateautableau à double entrée du jeu
[in]largeurlargeur du plateau
[in]hauteurhauteur du plateau
[out]cellulesVidestableau contenant les coordonnées disponibles pour placer une pomme
[out]tlogCellulesVidestaille logique du tableau cellulesVides

◆ customMenuSize()

int customMenuSize ( int tailleCustom,
int vitesseCustom,
int * largeur,
int * hauteur,
float * vitesse,
int itColor )

affiche des sous fenêtres pour que le joueur choisisse ses préférences

Parameters
[in]tailleCustomvrai si le joueur à choisi de customiser la taille du plateau, faux sinon
[in]vitesseCustomvrai si le joueur à choisi de customiser la vitesse du jeu, faux sinon
[in,out]largeurlargeur du plateau
[in,out]hauteurhauteur du plateau
[in,out]vitesseintervalle entre chaque affichage du plateau
[in]itColoritérateur sur l'indice du colorTab pour connaître la couleur à afficher
Returns
vrai si l'utilisateur à voulu quitter cette fenêtre, faux sinon

◆ deplacementTete()

Tab2 deplacementTete ( char ** plateau,
int largeur,
int hauteur,
Tab2 tete,
Tab2 dir )

détermine les nouvelles coordonnées de la tête

Parameters
[in]plateautableau à double entrée du jeu
[in]largeurlargeur du plateau de jeu
[in]hauteurhauteur du plateau de jeu
[out]teteles coordonnées de la tête du serpent
[in]dirla direction dans laquelle le joueur souhaite se diriger
Returns
les nouvelles coordonées de la tête du serpent

◆ initPlateau()

void initPlateau ( char ** plateau,
int largeur,
int hauteur )

initialise le plateau avant le démarrage de la partie(contours,fond et serpent)

Parameters
[out]plateaule tableau à initialiser
[in]largeurlargeur du tableau à initialiser
[in]hauteurhauteur du tableau à initialiser

◆ lancerPartie()

int lancerPartie ( int largeur,
int hauteur,
float vitesse,
int nbPommes )

lance une partie de snake

Parameters
[in]hauteurhauteur du plateau
[in]largeurlargeur du plateau
[in]vitesseintervalle entre chaque affichage du plateau
[in]nbPommesle nombre de pommes à positionner sur le plateau
Returns
le score final du joueur

◆ libererPlateau()

void libererPlateau ( char ** plateau,
int hauteur )

libère le plateau de jeu alloué en début de partie

Parameters
[in]plateaule tableau à libérer
[in]hauteurhauteur du plateau à libérer

◆ majPlateau()

void majPlateau ( char ** plateau,
int largeur,
int hauteur,
Tab2 corps[],
Tab2 tete,
int taille,
Tab2 dir )

met à jour la position du serpent sur le tableau plateau de jeu

Parameters
[in,out]plateautableau à double entrée du jeu
[in]largeurlargeur du plateau
[in]hauteurhauteur du plateau
[in,out]corpstableau contenant les coordonnées de chaque segment du serpent et de la tete
[in]teteles coordonnées de la tête du serpent
[in]tailletaille du serpent et taille logique de corps[]
[in]dirla direction dans laquelle le joueur souhaite se diriger

◆ placerPomme()

void placerPomme ( char ** plateau,
int largeur,
int hauteur,
int cellulesVides[][2],
int tlogCellulesVides )

placer une pomme aléatoirement sur le plateau

Parameters
[out]plateautableau à double entrée du jeu
[in]largeurlargeur du plateau
[in]hauteurhauteur du plateau
[in]cellulesVidestableau contenant les coordonnées disponibles pour placer une pomme
[in]tlogCellulesVidestaille logique du tableau cellulesVides

◆ testCollisions()

void testCollisions ( char ** plateau,
int largeur,
int hauteur,
Tab2 tete,
int * surPomme,
int * collision )

vérifie si la tête est en collision avec un mur, sa queue ou une pomme

Parameters
[in]plateautableau à double entrée du jeu
[in]largeurlargeur du plateau de jeu
[in]hauteurhauteur du plateau de jeu
[in]teteles coordonnées de la tête du serpent
[out]surPommeégal à 1 si le serpent est sur une pomme 0 sinon
[out]collisionégal à 1 si le serpent est sur sa queue ou un mur 0 sinon