Проблема в игре из символов
В символьной игре необходимо чтобы свет от фонарика(символы >, < ...) не проходил сквозь стены(символ 'o'). У фонарика есть несколько направлений, все работают кроме направления вверх. (тут некоторые части кода, весь код не вижу смысла показывать так как всё остальное нормально работает и не затрагивает проблему)
if(flashlight == 1){
for(int y = 0; y < MAP_HEIGHT; y++){
for(int x = 0; x < MAP_WIDTH; x++){
if(direction == "up" && x == playerX && y < playerY){
if(map[y][x] =='o') break;
else map[y][x] = '^';
}
}
}
for(int x = 0; x < MAP_WIDTH; x++){
for(int y = 0; y < MAP_HEIGHT; y++){
if(direction == "down" && x == playerX && y > playerY){
if(map[y][x] == 'o') break;
else map[y][x] = 'v';
}
}
}
}
...
case 'w':{
if(map[playerY-1][playerX] != 'o'){
playerY--;
direction = "up";
}
break;
...
case 'f':{
if(flashlight == 1) flashlight = 0;
else flashlight = 1;
break;
}
Ответы (1 шт):
Автор решения: bipll
→ Ссылка
Ну да, луч фонаря начинается сверху и плавно идет к игроку, но по пути утыкается в стену.
if(flashlight == 1) {
if(direction == "up") {
for(int y = playerY - 1; y >= 0 && map[y][playerX] != 'o'; --y) {
map[y][playerX] = '^';
}
}
}