-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbelkan.h
127 lines (107 loc) · 2.99 KB
/
belkan.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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#ifndef AGENT__
#define AGENT__
#include <string>
#include <iostream>
#include <cstdlib>
#include "conexion.h"
using namespace std;
// -----------------------------------------------------------
// class Agent
// -----------------------------------------------------------
class Environment;
class Agent
{
public:
Agent(){
srand (time(NULL));
x_= 99;
y_= 99;
orientacion_=3;
role_="PlYR";
last_accion_=3;
REINICIADO_=false;
size_=200;
valorF, valorI, valorD=0;
cojoRegalo = false, darRegalo = false;
for (int i=0;i<200;i++)
for(int j=0;j<200;j++){
mapa_entorno_[i][j]='?';
mapa_objetos_[i][j]='?';
matriz_pulgarcito[i][j]=0;
}
for (int i=0;i<100;i++)
for(int j=0;j<100;j++){
mapa_solucion_[i][j]='?';
mataux[i][j]='?';
}
}
enum ActionType
{
actFORWARD, // avanzar
actTURN_L, // Girar Izquierda
actTURN_R, // Girar Derecha
actIDLE, // No hacer nada
actPICKUP, // Recoger un objeto
actPUTDOWN, // Soltar un objeto
actPUSH, // Meter en la mochila
actPOP, // Sacar de la mochila
actGIVE, // Dar un objeto a un personaje
actTHROW // Lanzar un objeto
};
void Perceive(Environment &env);
bool Perceive_Remote(conexion_client &Cliente, Environment &env);
void ActualizarInformacion(Environment *env);
void PasarVectoraMatrizPulgarcito(int fila, int columna, int m[200][200], char *v, int brujula);
void loQueLlevoASolucion();
ActionType Think();
ActionType andarAleatorio();
ActionType andarPulgarcito();
ActionType persiguelo(char *donde, char cosa);
ActionType entrarCastillos();
bool PuedeAndar();
bool NPCDelante();
bool estaCosa(char *donde, char cosa, int &enCual);
bool pisoRegalo();
bool tengoRegalo();
bool hayFamoso();
bool regaloEnMano();
bool tengoBikini();
ActionType ponerEnUso(char cosa1);
void extraerCoord(int &filas, int &columnas);
void girarMatSol(int dir);
int calcOrientacion();
void comenzarMapa();
void actualizarSolucion(int direntorno);
void FixLastAction(Agent::ActionType x){last_accion_=x;};
char mapa_entorno_[200][200]; // mapa que muestra el tipo de terreno
char mapa_objetos_[200][200]; // mapa que muestra los objetos que estan encima del terreno
char mapa_solucion_[100][100]; // Mapa que almacena la solucion que el alumno propone
int matriz_pulgarcito[200][200];
int mataux[100][100];
// Funciones de acceso a los datos
void GetCoord(int &fila, int &columna, int &brujula){fila=y_;columna=x_;brujula=orientacion_;};
private:
//Variables de interaccion con el entorno grafico
int size_;
//SENSORES
char VISTA_[10];
char SURFACE_[10];
bool REINICIADO_;
string MENSAJE_;
char EN_USO_;
char MOCHILLA_[5];
char PUNTUACION_[9];
bool FIN_JUEGO_;
char SALUD_;
//Variables de estado
int x_,y_, orientacion_;
int xs, ys, os;
int valorF, valorI, valorD;
int puede, nopuede;
bool cojoRegalo, darRegalo;
int k1[2], k1c[2], k2[2], k2c[2];
int last_accion_;
string role_;
};
string ActionStr(Agent::ActionType);
#endif