랜덤으로 사각형을 10개 생성한 뒤 좌표 하나(x,y)를 입력하면 

그 사각형 중 몇개와 충돌했는지 출력하는 프로그램이다.


1
2
3
4
5
6
7
8
9
10
11
#pragma once
class Rect
{
public:
    Rect();
    ~Rect();
    int Collision(int x, int y);
private:
    int x, y;
    int w, h;
};
cs

헤더파일


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
#include "stdafx.h"
#include "Rect.h"
#include <time.h>
#include <iostream>
using namespace std;
 
 
Rect::Rect()
{
    x = rand() % 5;
    y = rand() % 5;
    w = rand() % 5+1;
    h = rand() % 5+1;
}
 
 
Rect::~Rect()
{
}
 
int Rect::Collision(int a, int b)
{
    int check = 0;
    if (x < a && a < (x + w))
    {
        if (y < b && b < (y + h))
        {
            check = 1;
        }
    }
    return check;
}
 
cs

cpp파일


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
#include "stdafx.h"
#include "Rect.h"
#include <time.h>
#include <iostream>
using namespace std;
 
 
int main()
{
    srand(time(0));
    Rect cc[10];
    
    for (int j = 0; j < 5; j++)
    {
        int sum = 0;
        int x = 0;
        int y = 0;
        cout << "x, y를 입력하세요 : ";
        cin >> x >> y;
 
        for (int i = 0; i < 10; i++)
        {
            sum += cc[i].Collision(x, y);
        }
        cout << "충돌회수 : " << sum << "\n";
    }
}
 
cs

메인 cpp

Posted by misty_
,