cub3d는 유명한 존 카맥과 존 로메로가 설립한 이드 소프트웨어에서 개발하고, 1992년 아포기 소프트웨어에서 출시한, 울펜슈타인 3D를 구현해보는 과제입니다.
42seoul에서 제공하는 miniLibX를 통해 다양한 함수를 사용할 수 있으니 구현하기전에 어떤 함수가 있는지 헤더파일을 먼저 보는게 중요합니다!
여러분의 프로그램은 벽 대신 아이템(스프라이트)을 표시할 수 있어야 합니다.
여러분의 프로그램은 바닥과 천장의 색을 서로 다르게 설정할 수 있어야 합니다.
언젠가 Deepthougt가 여러분의 프로젝트를 평가할 수 있는 눈을 가지게 될 경우를 위해, 여러분의 프로그램은 두 번째 인자가 "--save"일 때 첫 번째 렌더링된 이미지를 bmp 형식으로 저장해야 합니다.
두번재 인자가 없을 경우, 프로그램은 다음 규칙을 준수하면서 화면 창에 영상을 표시합니다.
여러분의 프로그램은 먼저 .cub 확장자가 있는 화면에 대한 설명이 들어있는 파일을 첫 번째 인수로 받아들여야 합니다.
지도에는 4개의 문자로만 구성되어야 합니다. (빈 공간인 경우 0, 벽인 경우 1, 아이템인 경우 2, 플레이어의 출발 위치와 태어난 위치에서 바라보는 방향인 N, S, E, W)
지도는 벽으로 둘러쌓여 있어야 합니다. 그렇지 않다면 프로그램은 오류를 반환해야 합니다.
지도 내용을 제외하고는, 각각의 요소들은 하나 혹은 그 이상의 빈 줄로 분리될 수 있습니다.
항상 마지막에 있어야 하는 지도 내용을 제외하고는, 각각의 요소들은 어떠한 순서로도 파일안에 구성될 수 있습니다.
지도를 제외하고, 요소에서 각 유형의 정보는 하나 이상의 공백으로 구분될 수 있습니다.
지도는 파일 내에서 보이는 것처럼 불러 올 수 있어야합니다. 공백은 지도의 유효한 부분이며, 그 처리는 여러분의 몫입니다. 규칙대로 만들어진 어떠한 종류의 지도는 불러올 수 있어야 합니다.
.cub 파일의 예:
R 1920 1080
NO ./path_to_the_north_texture
SO ./path_to_the_south_texture
WE ./path_to_the_west_texture
EA ./path_to_the_east_texture
S ./path_to_the_sprite_texture
F 220,100,0
C 225,30,0
1111111111111111111111111
1000000000110000000000001
1011000001110000002000001
1001000000000000000000001
111111111011000001110000000000001
100000000011000001110111111111111
11110111111111011100000010001
11110111111111011101010010001
11000000110101011100000010001
10002000000000001100000010001
10000000000000001101010010001
11000001110101011111011110N0111
11110111 1110101 101111010001
11111111 1111111 111111111111
모든 보너스 포인트를 얻기 위해서는 최소한 14개를 검증해야 하므로, 현명하게 선택하되 시간을 낭비하지 않도록 주의하십시오!