-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjeu.h
82 lines (65 loc) · 2.18 KB
/
jeu.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/* Tetris_SDL
Copyright (C) 2012 BAUMANN Matthieu
Tetris_SDL is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.*/
#ifndef JEU_H
#define JEU_H
#include <stdlib.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
struct liste;
/* Structures */
struct Case
{
size_t x, y;
};
struct Piece
{
struct Case cases[4];
size_t type;
size_t taille_box;
int box_x, box_y;
size_t taille_rot;
int actu_rot;
void (*rotation)(struct Piece* piece);
};
struct Plateau
{
size_t rows, columns;
int** map;
};
/* Fonctions de jeu */
/* Fonctions de creations */
struct Plateau* creerPlateau(const size_t _c, const size_t _r);
struct Piece* creerI(struct Plateau* _p);
struct Piece* creerO(struct Plateau* _p);
struct Piece* creerT(struct Plateau* _p);
struct Piece* creerL(struct Plateau* _p);
struct Piece* creerJ(struct Plateau* _p);
struct Piece* creerS(struct Plateau* _p);
struct Piece* creerZ(struct Plateau* _p);
/* Fonctions de rotations */
void rotationI(struct Piece* piece);
void rotationO(struct Piece* piece);
void rotationT(struct Piece* piece);
void rotationL(struct Piece* piece);
void rotationJ(struct Piece* piece);
void rotationZ(struct Piece* piece);
void rotationS(struct Piece* piece);
/* Fonctions de traitements */
int memePiece(const struct Piece* _p, const size_t x, const size_t y);
int collision(struct Piece* _p, struct Plateau* _plat);
void deplacerPiece(struct Piece* _p, struct Plateau* _plat, size_t _d);
void viderMap(const int row, struct Plateau* p);
/* Fonction principale */
struct Scores* jeu(SDL_Surface* screen, struct liste* liste_musiques);
#endif