-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBolinha.h
71 lines (57 loc) · 2.46 KB
/
Bolinha.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
/**
* USP Sao Carlos, ICMC
* Agario Evolutivo
*
* Classe dos personagens, que sao capazes de se mover e absorver outros personagens e comidas
*
* @author Andre Santana Fernandes <11208537>
* @author Diogo Castanho Emídio <11297274>
* @author Leonardo Antonetti da Motta <11275338>
* @author Marcus Vinicius Santos Rodrigues <11218862>
* @author Olavo Morais Borges Pereira <11297792>
*
*/
#ifndef BOLINHA_H
#define BOLINHA_H
#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif
#include <iostream>
#include <vector>
#include <math.h>
#include "Comida.h"
#include "RedeNeural.h"
using namespace std;
class Bolinha {
private:
double r,g,b; // Cor
double horizontal; // Movimentacao horizontal
double vertical; // Movimentacao vertical
bool active; // Esta vivo
Comida *closestFood; // Comida mais proxima
Bolinha *closestEnemy; // Inimigo mais proximo
public:
double x; // x
double y; // y
double mass; // massa
RedeNeural *redeNeural; // Rede neural
// Construtor
Bolinha(double _axonsIn[][N_NEURONS], double _axonsOut[][N_OUTPUTS], double _mass, double _x, double _y, double _r, double _g, double _b, double _horizontal, double _vertical, vector<Bolinha>& players);
double Mass(); // Retorna a massa
double Radius(); // Calcula o raio com base na massa
double Speed(); // Calcula a velocidade com base na massa
void Draw(); // Desenha
void Move(); // Move o jogador
void Collide(vector<Bolinha>& players); // Calcula a colisao com outros jogadores
void Collide(vector<Comida>& comidas); // Calcula a colisao com outras comidas
double DistanceToClosestFood(); // Calcula a distancia ate a comida mais proxima
double AngleToClosestFood(); // Calcula o angulo ate a comida mais proxima
double DistanceToClosestEnemy(); // Calcula a distancia ate o inimigo mais proximo
double AngleToClosestEnemy(); // Calcula o angulo ate o inimigo mais proximo
double ClosestEnemyMass(); // Retorna a massa do inimigo mais proximo
bool isActive(); // Verifica se esta vivo
void setActive(bool active); // Define se esta vivo
};
#endif