-
Notifications
You must be signed in to change notification settings - Fork 0
/
arkanoPiLib.h
executable file
·70 lines (57 loc) · 2.06 KB
/
arkanoPiLib.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
#ifndef _ARKANOPILIB_H_
#define _ARKANOPILIB_H_
#include <stdio.h>
// CONSTANTES DEL JUEGO
#define MATRIZ_ANCHO 10
#define MATRIZ_ALTO 7
#define LADRILLOS_ANCHO 10
#define LADRILLOS_ALTO 2
#define RAQUETA_ANCHO 3
#define RAQUETA_ALTO 1
typedef struct {
// Posicion
int x;
int y;
// Forma
int ancho;
int alto;
} tipo_raqueta;
typedef struct {
// Posicion
int x;
int y;
// Trayectoria
int xv;
int yv;
} tipo_pelota;
typedef struct {
// Matriz de ocupación de las distintas posiciones que conforman el display
// (correspondiente al estado encendido/apagado de cada uno de los leds)
int matriz[MATRIZ_ANCHO][MATRIZ_ALTO];
} tipo_pantalla;
typedef struct {
tipo_pantalla ladrillos; // Notese que, por simplicidad, los ladrillos comparten tipo con la pantalla
tipo_pantalla pantalla;
tipo_raqueta raqueta;
tipo_pelota pelota;
} tipo_arkanoPi;
extern tipo_pantalla pantalla_inicial;
//------------------------------------------------------
// FUNCIONES DE INICIALIZACION / RESET
//------------------------------------------------------
void ReseteaMatriz(tipo_pantalla *p_pantalla);
void ReseteaLadrillos(tipo_pantalla *p_ladrillos);
void ReseteaPelota(tipo_pelota *p_pelota);
void ReseteaRaqueta(tipo_raqueta *p_raqueta);
//------------------------------------------------------
// FUNCIONES DE VISUALIZACION (ACTUALIZACION DEL OBJETO PANTALLA QUE LUEGO USARA EL DISPLAY)
//------------------------------------------------------
void PintaMensajeInicialPantalla (tipo_pantalla *p_pantalla, tipo_pantalla *p_pantalla_inicial);
void PintaPantallaPorTerminal (tipo_pantalla *p_pantalla);
void PintaLadrillos(tipo_pantalla *p_ladrillos, tipo_pantalla *p_pantalla);
void PintaRaqueta(tipo_raqueta *p_raqueta, tipo_pantalla *p_pantalla);
void PintaPelota(tipo_pelota *p_pelota, tipo_pantalla *p_pantalla);
void ActualizaPantallaArkano(tipo_arkanoPi* p_arkanoPi);
void InicializaArkanoPi(tipo_arkanoPi *p_arkanoPi);
int CalculaLadrillosRestantes(tipo_pantalla *p_ladrillos);
#endif /* _ARKANOPILIB_H_ */