2022-03-08 08:36:06 -05:00
|
|
|
//TODO fix this bug
|
|
|
|
//there is a bug with the units arg
|
|
|
|
//it doesnt check weather EVERY spot in its path is vaiid so it allows the possibity of going thru walls if units is more than 1
|
2022-03-05 11:22:25 -05:00
|
|
|
int attempt_move(int x, int y, int units, int direction) {
|
|
|
|
int xfuture = x;
|
|
|
|
int yfuture = y;
|
|
|
|
switch (direction) {
|
|
|
|
case 0: // right
|
|
|
|
xfuture = xfuture + units;
|
|
|
|
if (readmap(xfuture, y) == '&') {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
case 1: // up
|
|
|
|
yfuture = yfuture - units; // we subtract because moving up
|
|
|
|
if (readmap(x, yfuture) == '&') {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
case 2: // left
|
|
|
|
xfuture = xfuture - units;
|
|
|
|
if (readmap(xfuture, y) == '&') {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
case 3: // down
|
|
|
|
yfuture = yfuture + units;
|
|
|
|
if (readmap(x, yfuture) == '&') {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|