변수 및 함수
-
cell: 칸, ver: 세로 벽, hor: 가로 벽
- cell(x, y): ver(x, y) ver(x+1, y) hor(x, y) hor(x, y+1)로 둘러싸임
모든 오브젝트(칸, 벽)에 대해 (x, y)의 인덱스를 가질 때, 그것은 해당 오브젝트의 좌하단의 실제 좌표이다.
-
pos: (x,y) 현재 발사자가 서 있는 위치의 칸 인덱스
-
stPos: (x,y) = pos + (0.5, 0.5) 발사자의 실제 위치
-
tarMir: 적중된 거울 정보
- tarMir.pos: 거울의 좌하단 좌표
- tarMir.len: 거울의 길이
- tarMir.dir: 거울의 방향, ver 혹은 hor
-
parRay: list<pair<float, float> > 현재 단계에서 나아가고 있는 빛줄기
- 초기설정: {(0,1)}
- SubtractRay(list<pair<float, float> >parRay, pair<float, float> sub)
- parRay에서 sub만큼을 빼는 것
- parRay의 모든 원소에 대해 parRay.first, parRay.second, sub.first, sub.second를 float[4] arr에 넣고 오름차순 정렬