본문 바로가기

[ C/ C++ 프로그래밍 ]

[ 알고리즘 문제풀기 ] LCDDISPLAY ㅇ 문제 ㅇ 실행결과 화면에 뿌려줄 숫자하고 숫자 패턴 만드는데 시간 다 보냈다ㅠ, 생각외로 약간 힘들 문제였다 ㅠ ㅇ 소스 및 실행파일 : 더보기
스마트 포인터 ㅇ 출처 : http://springand.tistory.com/51 #include using namespace std; // 스마트 포인터: // 1. 정의: 다른 type의 포인터 역활을 하는 객체. // 2. 장점: 일반 포인터가 아니라 객체이다 (즉생성자, 소멸자, 복사, 대입)의 // 과정을 함수로 제어할 수 있다. // 3. 주로->, *를 재정의 한다 // 또한 소멸자를 사용 garbage collector 기능을 수행. // 4. template으로 만들어야 한다. class Test { public: int x; void foo() { cout foo() // Test *p = new Test; // p->foo(); // delete p; } */ 더보기
[ 루아 ] 루아, 좀더 알아보기 [ 참고 및 출처 ] 루아를 이용한 민첩하고 효과적인 게임 개발 ○ 함수 함수는 게임 개발 스크립트의 행동을 조직화하는 기본적인 수단이다. 함수는 하나의 식별(실제로는 하나의 변수)를 통해서 호출할 수 있는 루아 코드 블록으로, 작업에 필요한 매개변수를 전달받거나 작업의 결과를 돌려기도 한다. 함수들이 정의되어 있는 스크립트 파일을 dofile 등을 dofile 등을 이용해서 불러 올때, 그 함수들을이 실제로 실행되는 것은 아니고, 함수의 코드를 메모리에 올리고 그것을 함수 이름 변수에 배정하는 작업만 한다. - 단일 인수 fuctin SetName ( myString ) print(" ") print(" Your Name is : ", myString ) print(" ") end ※ myString는.. 더보기
[ 루아 ] 루아 입문 [ 참고 및 출처 ] 루아를 이용한 민첩하고 효과적인 게임 개발 이미 "예제로 배우는 루아책"을 통해서 앞에서 변수, 연산자등 문법에 대해서 공부했다. 여기서는 간단하게 복습하고 넘어간다. 루아 스크립트 : 루아를 담은 텍스트 파일, 확장자는 보통 .lua 탭 , 줄바꿈, 들여쓰기 등을 이용한 텍스트 포매팅 상관하지 않음 ==> 사람이 보기 쉽게 하기 위해서 명령들 사이의 빈칸은 중요 =>변수 이름과 함수 호출을 구분하기 위해 청크(chunk) : 루아에서 하나의 명령 또는 일련의 명령등(스크립트 파일 전체 등), 작을 수도 있고(print 명령하나), 수 메가바이트이상(스크립트파일 등) 될수도 있다. dofile : 주어진 스크립트 파일을 즉시 실행, 경로 구분에는 역슬래시 하나가 아니라 두개(\\)를.. 더보기
[ 루아 ] 게임 개발에서 루아의 역할 [ 참고 및 출처 ] 루아를 이용한 민첩하고 효과적인 게임 개발 '접착제'언어로 사용할 때 빛을 발한다. 루아처럼 핵심 언어의 함수와 연동함으로써 확장될 수 있는 스크립팅 언어를 그런 접착제 언어로 사용할 수 있는데, 핵심은 성능 상의 이점이 있는 C++로 속도가 중요한 함수를 작성하고, 그것을 루아에 '접착'함으로써 스크립트 프로그래머가 그런 C++함수를 사용할 수 있도록 만드는 것이다. 예) 디자이너가 3차원 물체를 게임 세계에 배치 할 있게 한다고 하면, 렌더링 시스템은 전적으로 C++로만 작성, 루아는 C++을 호출해서 특정 3차원 모형의 객체를 생성하고, 그것을 게임 세계의 특정 위치에 배치 한다. 그 3차원 물체의 애니메이션 역시 루아로 제어한다. 물체를 실시간으로 변환하는데 필요한 복잡한 수.. 더보기
[ MFC ] C++의 주제들 - 2 ㅇ 참고 및 출처 : ㅇ #와 ## # : 스트링(string)화 연산자 ## : 토큰 연결 (token concatenation) 연산자 #는 파운드 기호라고 읽고, ## 는 더블 파운드 기호라고 읽는다. 소스코드에 대한 처리(proccessing)란, 컴파일러가 기계어 코드를 생성하는 과정(컴파일)을 의미한다. 그래서 컴파일 전에 사용되는 명령문을 전처리 명령문(preprocessing command) 혹은 컴파일러 지시자(compiler directive)라고 한다. 컴파일하기 전에 어떤 일을 지시하는 것이다. 위의 두가지 연산자는 전처리명령문에 사용되기 때문에, 전처리 연산자로 구분된다. #은 큰따옴표(")가 없는 문자 순서(string sequence)를 문자열로 만든다. 예) #hello_Wo.. 더보기
[ MFC ] C++의 주제들 - 1 ㅇ 참고 및 출처 : ○ 비트 플래그 특정한 상태의 기록을 나타내기 위해서 사용된 변수를 깃발(Flag)변수라고 한다. 어떤 부호 없는 정수타입 변수(unsigned int)의 이진 비트열 각각의 비트들이 이러한 깃발 변수로 사용되었을 때, 이를 비트 플래그(bit flag)라고 한다. 예를 들어 윈도우win32 시스템에서 정수 타입 변수는 32비트 이므로 32가지의 On/Off 상태를 기록할 수 있다. 만약 상태의 개수가 각각 4가지라면, 상태를 나타내는데 2비트가 필요하므로 16가지의 깃발 변수로 사용할 수 있다. 각 비트의 상태를 변경하기 위해 비트 마스크(bit mask)를 사용한다. 비트 마스크(bit mask)는 비트 연산자 &,|를 사용하여 특정한 비트를 1(bit set)로 혹은 0(bit.. 더보기
[ 루아 ] 스크립팅 언어란? [ 참고 및 출처 ] 루아를 이용한 민첩하고 효과적인 게임 개발 스크립팅 언어는 컴퓨터의 기능성을 사람이 손쉽게 사용할 수 있도록 하는 수단이다. 원래 스크립팅 언어는 일괄적인 명령 수행 도구로 쓰였다. ==> 초기의 스크립팅 언어를 일괄(Batch)언어 또는 작업 제어(job-control)언어라고 불렀던 이유도 여기에서 비롯된다 ex) MS-DOS 시절의 *.bat 파일 스크립팅 언어들은 빠른 개발을 위해 쓰이며( 실행속도와 효율은 조금 희생하더라도), 비 프로그래머가 읽고 쓰기 쉬운 텍스트 기반 구문을 채용하는 경우가 많다. 핵심은, 일정한 교양을 갖춘 사용자라면 프로그래머의 개입 없이도 스스로 그크립트를 작성하고 사용할 수 있다는 점이다. 스크립팅 언어의 능력을 확장하기 위해, 다른 어떤 저수준 .. 더보기
[ 루아 ] 왜 루아인가? [ 참고 및 출처 ] 루아를 이용한 민첩하고 효과적인 게임 개발 스크립팅 언어는 소프트웨어 언제니어가 작성한, 컴파일된 코드 위의 한 계층에 놓인다. 그러한 스크립팅 언어는 실행시점에서 컴파일되는 경우가 많으며, 또한 프로그래머나 게임 디자이너가 자료를 조작, 처리하기 쉬운 단순한 언어인 경우가 일반적이다. ○ 스크립팅 언어를 사용하는 이유?? 디자이너 관점에서 볼 때, 스크립팅 언어로 게임을 개발한다는 것은 기술과 게임플레이 코드 사이의 매우 명확한 경계를 만드는 것이라 할수 있다. 스크립트를 사용하는 프로젝트에서는 저 수준의 실제 작동부를 C++ 같은 핵심 언어가 담당하고 인터페이스 처리, 자료 관리, 인공지능, 사건 처리 등의 고수준 작업은 스크립팅 언어가 담당하는 경우가 많다. 이러한 책임의 분리.. 더보기
[ MFC ] 본격적인 윈도우 프로그램 ㅇ 참고 및 출처 : ㅇ 본격적인 윈도우 프로그램 윈도우 운영체제는 관리하는 모든 객체(object)의 정보를 담고 있는 구조체(structure)를 리스트(list)로 유지한다. 객체들은 가시적일 수도 있고, 그렇지 않을 수도 있는데 객체의 예로 프로세스, 윈도우, 디바이스 컨텍스트(device context)를 들 수 있으며, 이중에서 윈도우는 가시적이며, 프로세스와 디바이스 컨텍스트는 가시적이지 않다. 프로세스: 실행중인 프로그램 디바이스 컨텍스트 : 윈도우의 표면에 그리기 작업을 수행할 때 필요한 정보를 담고 있는 구조체, 모든 그리기 함수는 다비아스 컨텍스트를 필요로 한다. 핸들 : 윈도우 운영체제가 유지하는 객체를 표현하는 구조체와 관련된것, 각 프로세스를 구분하기 위해 각각의 구조체에 다른 .. 더보기