-
Notifications
You must be signed in to change notification settings - Fork 0
/
todo.txt
53 lines (34 loc) · 1.61 KB
/
todo.txt
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
-Include build instructions
(español warning)
Dibujo ultra seguroTM
0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7 7 6 5 4 3 2 3 4 5 6 7
8 6 5 4 3 2 1 2 3 4 5 6
9 5 y 3 2 1 x 1 2 3 4 5
1. Apunta para cada casilla a cuantos pasos está el enemigo mas cercano
2. Piensa un dibujo de longitud L
3. Si todas las casillas del dibujo tienen valores v > L, el dibujo se puede empezar
Esa es la idea básica.
Ampliación:
Idea: puede aparecernos un enemigo en una casilla pintada enemiga.
Si en un turno dado se hace el cálculo de distancias más cortas a enemigos y tenemos un problema, se tendrá que calcular un dibujo ajuste.
Opción 1: Acabar el dibujo lo antes posible. Funciona y es simple.
Opción 2: Repensar el dibujo para tener longitud menor que el nuevo valor. El dibujo tiene la característica especial de que está empezado.
Paso 1:
Implementar una matriz que guarde las distancias de enemigos y un algoritmo que las calcule. La opción obvia es un BFS desde cada unidad. Busca una más optimizada.
Usa BFS por capas. Si una casilla tiene un valor más pequeño que el que tendrá si la encolas, no la encoles
Por lo tanto, programa un BFS genérico y haz una función que lo use para rellenar la matriz.
Paso 2:
Pensar un diseñador de dibujos que use la distancia de enemigos como restricción.
Escoger el que maximice área/pasos con pasos máximos. Si hay varias opciones, escoger el que sea menos arriesgado
Paso 3:
Haz que el diseñador de dibujos sea lo suficientemente general como para tener en cuenta dibujos ya empezados.
Paso 4:
Observa cómo se comporta y cámbialo si ves que las unidades se molestan entre sí.