-
Notifications
You must be signed in to change notification settings - Fork 0
/
findplace2.c
100 lines (91 loc) · 2.14 KB
/
findplace2.c
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
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* findplace2.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: dspyrydo <[email protected]> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2017/07/22 17:48:35 by dspyrydo #+# #+# */
/* Updated: 2017/07/22 17:50:50 by dspyrydo ### ########.fr */
/* */
/* ************************************************************************** */
#include "filler.h"
void findenemymore(t_f *flf)
{
int x;
int y;
x = 0;
y = 0;
while (x < flf->mapx)
{
while (y < flf->mapy + 1)
{
if (flf->map[x][y] != flf->map2[x][y] && (flf->map[x][y] == \
flf->e || flf->map2[x][y] == flf->e))
{
flf->diffx[flf->ei] = x;
flf->diffy[flf->ei++] = y;
}
y++;
}
x++;
y = 0;
}
}
void findenemyfirst(t_f *flf)
{
int x;
int y;
x = 0;
y = 0;
while (x < flf->mapx)
{
while (y < flf->mapy + 1)
{
if (flf->map[x][y] == flf->e)
flf->bst[flf->bi].toenemy = checkdistance(x, y, flf);
y++;
}
x++;
y = 0;
}
}
int checkdistancefirst(t_f *flf, int ex, int ey)
{
int tx;
int ty;
int tmp;
flf->ex = ex;
flf->ey = ey;
tx = ex - flf->bst[flf->bi].corx;
ty = ey - flf->bst[flf->bi].cory;
modulus(&tx, &ty);
tmp = tx + ty;
if (tmp < 0)
tmp = tmp * -1;
return (tmp);
}
int checkdistancemore(t_f *flf, int ex, int ey)
{
int tx;
int ty;
int tmp;
int new;
int old;
tx = ex - flf->bst[flf->bi].corx;
ty = ey - flf->bst[flf->bi].cory;
modulus(&tx, &ty);
new = tx + ty;
old = (flf->ex - flf->bst[flf->bi].corx) + (flf->ey - \
flf->bst[flf->bi].cory);
modulus(&new, &old);
if (new < old)
{
flf->ex = ex;
flf->ey = ey;
tmp = tx + ty;
if (tmp < 0)
tmp = tmp * -1;
}
return (tmp);
}