GwangYeol-Im / 42seoul_cub3d

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

42seoul_cub3d

Common Instructions

  • norm 규칙에 맞게 프로젝트 작성
  • 적절한 예외 처리 (seg fault, bus error etc.)
  • 메모리 누수 방지
  • Makefile 제출
  • Makefile rule
  • libft 허용 가능

Mandatory part

  • Program name: cub3d

  • Turn in files: All your files

  • Makefile: all, clean, fclean, re, bonus

  • Arguments: a map in format *.cub

  • External functions

    • open, close, read, write, malloc, free, perror, strerror, exit
    • All functions of the math library
    • All functions of the MinilibX
  • Libft authorized: Yes

  • miniLibX 사용하기

  • 윈도우 관리 (최소화, 창 전환)

  • 벽의 방향 (동, 서, 남, 북)에 따라 다른 질감의 벽을 표시하기

  • 벽 대신 아이템(스프라이트) 표시

  • 바닥과 천장의 색을 서로 다르게 설정

  • .cub 확장자를 가진 맵 파일을 첫 번쨰 인수로 받는다.

    • 지도는 4개의 문자로만 구성된다. (빈 공간: 0, 벽: 1, 아이템 2, 플레이어 출발 위치 + 바라보는 방향: N, S, E, W)
    • 지도는 벽으로 둘러쌓여 있어야 함. 그렇지 않으면 오류 반환
    • 지도 내용을 제외하고, 각 요소들은 하나 혹은 그 이상의 빈 줄로 분리될 수 있다.
    • 지도 내용은 항상 마지막에 위치, 나머지 요소들의 순서는 상관 없다.
    • 공백도 지도의 유효한 부분이며, 그 처리는 자율적으로
  • 프로그램의 두 번째 인자가 "--save" 일 경우, 첫 번쨰 렌더링된 이미지를 bmp 형식으로 저장하기

  • 두 번째 인자가 없을 경우, 프로그램은 다음 규칙을 준수하면서 화면 창에 영상을 표시

    • 왼쪽, 오른쪽 화살표 키는 미로에서 왼쪽과 오른쪽을 볼 수 있도록 처리
    • W, A, S, D 키는 미로를 통해 시점을 이동하도록 처리
    • ESC를 누르면 창이 닫히고 프로그램이 정상 종료되도록 처리
    • 창 상단의 빨간 십자가를 클릭하면 창이 닫히고 프로그램이 정상 종료되도록 처리
    • 지도에 표시된 화면 크기가 디스플레이 해상도보다 크면 현재 디스플레이 해상도에 따라 윈도우 크기 설정
    • miniLibX 이미지를 사용하기

About


Languages

Language:C 69.4%Language:Swift 15.7%Language:Roff 7.2%Language:JavaScript 5.2%Language:Makefile 1.6%Language:C++ 0.8%Language:CSS 0.1%Language:HTML 0.1%