/*
#include <stdio.h>
int main() {
int n, map[11][11] = {};
int player[8][2] = {}, player1[8][2] = {};
int i, j, player_number=0, death_status;
int k, y, o, p;
for(i=0; i<10; i++) {
for(j=0; j<10; j++) {
scanf("%d", &map[i][j]);
}
}
scanf("%d", &n);
for(i=0; i<n; i++) {
scanf("%d %d", &player[i][0], &player[i][1]);
}
for(i=0; i<10; i++) {
for(j=0; j<10; j++) {
if(map[i][j] >= 1) {
// 북쪽
for(o=1; o<=map[i][j]; o++) {
if(i-o >= 0 && map[i-o][j] != -1) {
map[i-o][j] = -2;
} else {
break;
}
}
// 남쪽
for(o=1; o<=map[i][j]; o++) {
if(i+o < 10 && map[i+o][j] != -1) {
map[i+o][j] = -2;
} else {
break;
}
}
// 서쪽
for(o=1; o<=map[i][j]; o++) {
if(j-o >= 0 && map[i][j-o] != -1) {
map[i][j-o] = -2;
} else {
break;
}
}
// 동쪽
for(o=1; o<=map[i][j]; o++) {
if(j+o < 10 && map[i][j+o] != -1) {
map[i][j+o] = -2;
} else {
break;
}
}
}
for(p=0; p<map[i][j]; p++) {
if(map[i][j] < 1) {
map[i][j] = -2;
}
}
}
}
for(i=0; i<10; i++) {
for(j=0; j<10; j++) {
printf("%d ", map[i][j]);
}
printf("\n");
}
printf("Character Information \n");
for(i=0; i<n; i++) {
player_number = player_number + 1;
if(map[player[i][0]][player1[i][1] == -2) {
death_status = 1; // 죽으세요
} else {
death_status = 0; // 사세요
}
if(death_status == 1) {
printf("player %d dead\n", player_number);
} else if(death_status == 0) {
printf("player %d survive\n", player_number);
}
}
return 0;
}
*/
#include <stdio.h>
int main() {
int n, map[11][11] = {};
int player[8][2] = {};
int i, j, player_number = 0, death_status;
int o;
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
scanf("%d", &map[i][j]);
}
}
// Tmi : 여기는 n을 스캔받는 곳이다
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d %d", &player[i][0], &player[i][1]);
player[i][0]--; //TMI : 처음 시작 좌표는 0이다 그니까 빼줘야함
player[i][1]--;
}
// TMI : 물폭탄은 차르봄바보다 100배 세다 ㅋㅋㅋ
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
if (map[i][j] >= 1) {
// tmi : 여기는 북쪽이다
for (o = 1; o <= map[i][j]; o++) {
if (i - o >= 0 && map[i - o][j] != -1) {
map[i - o][j] = -2;
} else {
break;
}
}
// 남쪽
for (o = 1; o <= map[i][j]; o++) {
if (i + o < 10 && map[i + o][j] != -1) {
map[i + o][j] = -2;
} else {
break;
}
}
// 서쪽
for (o = 1; o <= map[i][j]; o++) {
if (j - o >= 0 && map[i][j - o] != -1) {
map[i][j - o] = -2;
} else {
break;
}
}
// 동쪽
for (o = 1; o <= map[i][j]; o++) {
if (j + o < 10 && map[i][j + o] != -1) {
map[i][j + o] = -2;
} else {
break;
}
}
}
}
}
for(i=0; i<10; i++) {
for(j=0; j<10; j++) {
printf("%d ", map[i][j]);
}
printf("\n");
}
// 플레이어 생존 여부 확인 및 출력
printf("Character Information\n");
for (i = 0; i < n; i++) {
player_number++;
int x = player[i][0], y = player[i][1];
//tmi : map[player[i][0]player[i][1]]도 된다고 한다
if (map[x][y] == -2) {
death_status = 1; // 죽으세요
} else {
death_status = 0; // 사세요--*4VQ3RWE
}
if (death_status == 1) {
printf("player %d dead\n", player_number);
} else if (death_status == 0) {
printf("player %d survive\n", player_number);
}
}
return 0;
}
//map[i-o][j] 같은 map 배열에서 i-o같은 것들을 하는 이유
//o는 물폭탄이 나아가는 갯수를 새는 변수이다.(범위)
//그러니까 map[i][j]가 폭발 했을때 o칸 만큼 퍼지니 map[i-o][j]를 한다.
//understand?
힘들어요
alcls dutrkxsp
#include <stdio.h>
int main() {
int n, map[11][11] = {};
int player[8][2] = {};
int i, j, player_number = 0, death_status;
int o;
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
scanf("%d", &map[i][j]);
}
}
// Tmi : 여기는 n을 스캔받는 곳이다
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d %d", &player[i][0], &player[i][1]);
player[i][0]--; //TMI : 처음 시작 좌표는 0이다 그니까 빼줘야함
player[i][1]--;
}
// TMI : 물폭탄은 차르봄바보다 100배 세다 ㅋㅋㅋ
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
if (map[i][j] >= 1) {
// tmi : 여기는 북쪽이다
for (o = 1; o <= map[i][j]; o++) {
if (i - o >= 0 && map[i - o][j] != -1) {
map[i - o][j] = -2;
} else {
break;
}
}
// 남쪽
for (o = 1; o <= map[i][j]; o++) {
if (i + o < 10 && map[i + o][j] != -1) {
map[i + o][j] = -2;
} else {
break;
}
}
// 서쪽
for (o = 1; o <= map[i][j]; o++) {
if (j - o >= 0 && map[i][j - o] != -1) {
map[i][j - o] = -2;
} else {
break;
}
}
// 동쪽
for (o = 1; o <= map[i][j]; o++) {
if (j + o < 10 && map[i][j + o] != -1) {
map[i][j + o] = -2;
} else {
break;
}
}
}
}
}
int x = player[i][0], y = player[i][1];
int f, player_please_die = 0;
for(f=0; f<n; f++) {
player_please_die++;
if(map[x][y] != -2) {
map[x][y] = player_please_die;
}
}
for(i=0; i<10; i++) {
for(j=0; j<10; j++) {
printf("%d ", map[i][j]);
}
printf("\n");
}
// 플레이어 생존 여부 확인 및 출력
printf("Character Information\n");
for (i = 0; i < n; i++) {
player_number++;
//tmi : map[player[i][0]player[i][1]]도 된다고 한다
if (map[x][y] == -2) {
death_status = 1; // 죽으세요
} else {
death_status = 0; // 사세요
}
if (death_status == 1) {
printf("player %d dead\n", player_number);
} else if (death_status == 0) {
printf("player %d survive\n", player_number);
}
}
return 0;
}
alcls