폭탄찾기게임
10 * 10의 게임판이 있다.
폭탄은 랜덤으로 한군데에 존재하며 폭탄을 찾을 수 있는 10번의 기회가 주어진다.
폭탄을 발견하면 제거할 수 있으며, 기회안에 찾지못한다면 폭탄은 폭발한다.
폭탄과의 거리가 5이하라면 (5-거리)만큼 "삑"의 소리가 출력된다.
소스 코드
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 | srand(time(0)); int x = rand() % 10; // 폭탄의 x좌표 int y = rand() % 10; // 폭탄의 y좌표 int xx = 0; // 입력값 x좌표 int yy = 0; // 입력값 y좌표 int distance = 0; // 폭탄과의 거리 int dx = 0; // x좌표 폭탄과의 거리 int dy = 0; // y좌표 폭탄과의 거리 int detect = 0; // 폭탄의 폭발을 확인하는 변수 // 10번의 기회가 주어짐 for (int j = 0; j < 10; j++) { cout << j + 1 << "/ 좌표를 입력해주세요(x,y) 0~9" << "\n"; cin >> xx >> yy; // 입력값 예외처리 if (xx < 0 || xx>9 || yy < 0 || yy>9) { cout << "입력범위를 확인해주세요." << "\n"; break; } // x값차이 if (xx >= x) { dx = xx - x; } if (x > xx) { dx = x - xx; } // y값차이 if (yy >= y) { dy = yy - y; } if (y > yy) { dy = y - yy; } // 거리는 x차이 + y차이 distance = dx + dy; // 거리가 0이면 폭탄발견 if (distance == 0) { cout << "축하합니다. 폭탄을 제거하셨습니다." << "\n"; detect = 1; break; } // 폭탄과의 거리가 5 이하이면 소리를 냄 for (int i = 0; i < 5 - distance; i++) { cout << "삑"; } cout << "\n"; // 폭탄을 못찾으면 if (detect == 0 && j == 9) { cout << "폭탄이 폭발하였습니다. " << "폭탄의 위치는 " << x << "," << y << "입니다. \n"; } } | cs |
실행결과
'프로그래밍 공부 > C++' 카테고리의 다른 글
정적할당과 동적할당 (0) | 2018.03.12 |
---|---|
주소, 포인터 (0) | 2018.03.12 |
참조(Reference) (0) | 2018.03.12 |
스택, 큐 구현하기 (0) | 2018.03.10 |
구구단만들기 / 최대공약수, 최소공배수 구하기 (for문 연습) (0) | 2018.03.10 |