폭탄찾기게임


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
Posted by misty_
,