42seoul46 [so_long] 01. MiniLibX https://harm-smits.github.io/42docs/libs/minilibx/prototypes.html#initialization-functions Prototypes Find code examples, optimization tricks, and much more. harm-smits.github.io 이 분의 정리를 제 나름대로 번역...이라기보다는 독해했습니다.... # MiniLibX X-Window, Cocoa 프로그래밍 지식없이, 그래픽 소프트웨어를 생성할 수 있는 쉬운 방법으로 간단한 윈도우 상성, 드로잉 툴, 이미지, 기본 이벤트 관리를 제공한다. MiniLibX의 API를 올바르게 사용하기 위해서는 mlx.h를 인클루드해야한다. mlx.h는 함수들의 프로토타입만을 포함하고 .. 2022. 4. 11. [so_long] 02. 텍스처, 스프라이트 그리고 .ber # 스프라이트 , Sprites sprites : 2D 그래픽 오브젝트, 한장씩 독립된 이미지의 단위 ex) 게임을 구성할 때 필요한 블록이나, 캐릭터, 아이템등을 스프라이트로 만들어두면 계속해서 재사용하여 편하게 게임을 구성할 수 있다. # 텍스처 , Textures 게임 오브젝트를 덮거나, 랩핑하는 이미지, 또는 동영상 파일로 시각적 효과를 만들어낸다. 2D에서는 스프라이트로 저장되고 3D에서는 사물을 감싸서 질감을 표현한다. (게임 속 캐릭터, 사물등을 좀 더 사실감있게 표현) - 텍스처는 GPU에 2^n 크기로 저장된다. - 스프라이트는 한 장의 텍스처에 여러 개를 모아 놓을 수 있다. >>> 메모리 절약을 위해 텍스처 아틀라스 방법을 사용할 수 있음. # ber 파일 음... 이건 찾아도 뭐가 .. 2022. 4. 11. [so_long] 0. 과제 이해하기 목표는....! 4월 8일 안에 끝내기...! 할 수 있다...! [ so_long ] : 그리고 모든 물고기들에게 감사를..! 물고기에게 왜 감사한데..? 무슨 유머야? 나도 이해하고 싶다... :) # Description This project is a small 2D game with minilibx. You'll learn about textures, sprites and tiles. 이 프로젝트는 minilibx를 이용한 작은 2D게임입니다. 텍스처, 스프라이트 그리고 타일에 대해 배울 수 있어요. # Keywords - Applicative / # Skills - Graphics - Imperative / 명령형 - programming 2D 게임을 만들기 위해서는 맵 타일, 타일셋, 스프라.. 2022. 3. 29. [push_swap] 0. 과제 이해하기 Description This project involves sorting data on a stack, with a limited set of instructions, and the smallest number of moves. To make this happen, you will have to manipulate various sorting algorithms and choose the most appropriate solution(s) for optimized data sorting. 이 프로젝트는 제한된 명령어 집합과 가장 적은 수의 이동으로 스택의 데이터를 정렬하는 것을 포함한다. 이를 위해서는 다양한 정렬 알고리즘을 조작하고 최적화된 데이터 정렬에 가장 적합한 솔루션을 선택해야 합니다. #ke.. 2022. 3. 5. [minitalk] 발전방향 평가는 통과했지만 나도 내 코드가 더 발전해야할 부분이 있음을 이미 알고 있었기 때문에 평가를 통해 얻은 피드백을 잊어버리기전에 기록해두려한다. - static 에 대해 정확히 공부할 것 static을 사용했을때 언제 불러오는지 알고 있다면 초기화가 언제되는지, 자동으로 되는지 혹은 내가 직접해야하는지도 알 수 있었을 것이다. 그랬다면 server.c의 핸들러 함수를 쓸데없이 전역변수 쓰지않고, 더 간결한 코드로 구현할 수 있었을 것 같다. - 산술 연산 줄인다고 했음에도 나는 산술연산을 아직 쓰고 있다. 나의 로직이 애초에 이진수로 변환하여 시그널을 보내는 것이기에 애초에 client에서 server로 시그널을 보낼때 비트 연산자를 이용해서 전달하면 비트 연산만 사용하게되어 시간이 더 단축될 수 있다... 2022. 2. 26. [ minitalk ] 구현과정 두개의 시그널, SIGUSR1와 SIGUSR2만을 이용해서 서버 프로그램에 데이터를 보내야한다. 사전지식에 대한 이야기는 앞의 게시글에서 가득 했으니 넘어가고 과제를 풀어나가는 생각의 흐름만 기록해보자. + 두가지의 신호만 사용할 수 있다. 우선 통신하는데 단지 2가지의 시그널만을 이용해야한다는 점을 통해서 이진법을 떠올릴 수 있다. 우리는 C언어 공부를 통해 각 데이터형이 몇바이트로 이루어지는지, 한 바이트는 몇 비트인지를 공부하면서 이진법으로 왠만한 문자열(아스키코드값내의 문자)을 모두 표기할 수 있음을 알고 있다. 따라서 문자열을 문자로, 문자를 비트로 쪼개어 1(SIGUSR1)과 0(SIGUSR2)로 표현 및, 시그널을 보내면 된다. 각 문자는 아스키코드값에 따라 숫자로 나타낼 수 있으며 8자리의.. 2022. 2. 25. [ minitalk ] getpid() | pause() | sleep() | usleep() | exit() getpid 실행 중인 프로세스 ID를 구하는 함수 #include pid_t getpid(void); 이 함수는 언제나 successful (https://man7.org/linux/man-pages/man2/getpid.2.html glibc 버전 2.25부터 ID 캐시가 제거됨: getpid ()에 대한 호출은 항상 캐시된 값을 반환하는 대신 실제 시스템 호출 ) (** getppid() : 부모 프로세스 ID를 구하는 함수) pause 시그널을 기다리는 함수 #include int pause(void); 시그널을 잡으면 -1을 반환하고, 실패하면 EINTR sleep 초단위로 지정한 만큼 혹은 지정한 시간 안에 시그널이 올 때까지 프로세스를 멈추는 함수 #include unsigned int sl.. 2022. 2. 24. [ minitalk ] 시그널 함수 <signal.h> # signal 시그널 처리하는 방법을 설정하는 함수 void (*signal(int signum, void (*handler)(int)))(int); 이전에 설정된 시그널 핸들러를 반환한다. : void *()(int) - int signum : 시그널 넘버 - void (*handler)(int) : 시그널을 처리할 핸들러 + 시그널의 종류 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20.. 2022. 2. 23. [minitalk] 1. UNIX signal # UNIX : 범용 다중 사용자 방식의 대화식, 시분할처리 시스템용 운영체제 - 교육, 연구 기관에서 즐겨 사용된다. - 1970년대 초, 벨 연구소의 켄 톰슨, 데니스 리치등이 소형 컴퓨터용으로 처음 개발하였다. - 오늘날의 유닉스 시스템을 활용하여 다양한 운영체제를 개발하고 있다. - 다양한 시스템 사이에서 서로 이식할 수 있다. - 멀티 태스킹과 다중 사용자를 지원하도록 설계되었다. 일반 텍스트 파일, 명령행 인터프리터, 계층적인 파일 시스템, 장치 및 특정한 형식의 프로세스 간 통신을 파일로 취급 등. 소프트웨어 공학 측면에서, 유닉스는 C의 사용과 유닉스 철학이라는 부분이 특징이다. * 개인 컴퓨터 시장에서 현존하는 유닉스 운영체제는 애플의 macOS가 유일 [ 참고 : https://ko.w.. 2022. 2. 22. 이전 1 2 3 4 5 6 다음