Programming
-
랜덤함수프로그래밍 언어 C, C++ 2021. 1. 17. 22:07
랜덤(Random), 난수란게 순서나 규칙이 눈에 보이지 않아야 하며, 연속적인 임의의 수여야 합니다. 이전과 이후의 수열이 예측되지 않도록 독립적인 임의성을 가져야 하며, 수의 범위내에 있는 모든 수가 최대한 동일한 확률에 가까워야 하는 분포도여야 한다. 다행인건 기본적인 함수는 제공해준다. 게임에서 간단하게 쓰려면 이 정도까지만 해도 괜찮을(?)지도 모른다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include #include #include void main() { // 앱이 구동되면 한번만 호출.(seed 값 1번 설정) // main이 호출 되는 시점 또한 랜덤하기 때문에, // time(NULL)이 seed값으로 무난하게 쓰인다. srand((unsigned)t..
-
정의 vs 선언 2프로그래밍 언어 C, C++ 2021. 1. 16. 02:17
jamesbbun.tistory.com/15 정의 vs 선언 1 Java, C# 고급 언어를 먼저 사용하고 C, C++을 나중에 시작했다면, 컴파일 에러가 많이 힘들게 할 것이다. 어쩌면 편한 언어를 사용해왔기 때문에 오히려 처음 프로그래밍 언어를 배우는 사람보다 jamesbbun.tistory.com 내용을 이어간다. A.h 1 2 3 4 #pragma once extern int number; cs #pragma once 라는 매크로가 보일것인데, 중복으로 include되는 것을 막는 매크로이다. 아래에 있는것과 동일하다. 간단하게 설명하면 _A가 정의되어 있으면, 포함시키지 않는다. _A가 정의되어 있지 않으면, _A를 정의하고 해당 파일 내용을 포함시킨다. 1 2 3 4 5 6 7 #ifndef ..
-
정의 vs 선언 1프로그래밍 언어 C, C++ 2021. 1. 16. 02:16
Java, C# 고급 언어를 먼저 사용하고 C, C++을 나중에 시작했다면, 컴파일 에러가 많이 힘들게 할 것이다. 어쩌면 편한 언어를 사용해왔기 때문에 오히려 처음 프로그래밍 언어를 배우는 사람보다 더 힘들게 하는것일 수도 있다. 고급 언어와 같은 부류처럼 *.c, *.cpp 파일만 존재하면 좋을텐데, 불행히도 *.h, *.hpp 파일들이 느닷없이 등장한다. 사실 이게 가장 큰 차이점이기도 하고, 이게 C, C++ 언어를 배우는데 걸림돌 중에 하나가 아닐까 싶다. 특히, 고급 언어를 능숙 능란하게 다루는 개발자에게는 더욱 정 떨어지게 만든다. ㅎㅎ 쉽게 설명된 곳이 없거나, 혹은 찾기 어려웠을것이다. 근데, 사실 한가지만 알면 모든 의문의 실마리 풀려 버릴것이다. 그 키워드는 놀랍게도 정의, 선언에 모..
-
프로그래머 워밍업 1프로그래밍 언어 C, C++ 2021. 1. 7. 18:13
평범한 사람보다 게임 플레이가 월등히 많은 편이며, 특별한 이벤트, 피할수 없는 플래그 발생, 크리티컬한 사건 따위가 발생하지 않았는데도, 어느날 갑자기 게임 제작 욕심이 생긴 당신이라면 개발자의 피가 흐르고 있다는 증거이다!! 어쩌면 21세기의 게임업계의 한 획을 거을지도 모르는 인물일 수도 있다. 아무리 게임 개발에 필요한 우월한 유전자를 많이 물려받은 잠재적 초능력 개발자라 하더라도, 이제 부터가 진짜 중요하다. 1. 검색한다. 구글님이 알려주시면 뭔가 믿음이 간다. 너무나도 익숙한 나무위키에서 잘 정리도 되어 있고, 고민하는 사람들을 위해서 작성한 글들이 생각보다 많이 보인다. 알것도 같고, 모르는것도 같다? 2. 공유하는 곳을 찾자. 궁금한것을 묻고 답해주는 곳은 많지만, 얻은 정보가 신뢰할 만..
-
Visual Studio 2019 셋팅프로그래밍 언어 C, C++ 2021. 1. 4. 21:53
필요한 셋팅을 하나씩 포스트할 예정이다. 이번에는 말도 많고 탈도 많은 언어 인코딩에 대해서 작성한다. 프로그램을 구동시킨다. 여기는 임시로 DRVN이라는 솔루션을 만들었고, 원하는 이름으로 하나 만들면 되겠다. 그럼 해당 솔루션 폴더에 가서, .editorconfig 파일을 만든다. 파일을 열어서 작성한다. 이 화면은 visual code에서 작성한 장면이다. 오타가 날수도 있으니, 코드도 같이 올린다. 1 2 3 4 5 root = true [*] charset = utf-8 cs 프로젝트명 우클릭 후 속성으로 들어간다. C/C++ > 명령줄 > 추가 옵션에 /utf-8 입력후 확인 이제 코드를 작성하고 저장하거나 빌드를 하게 되면 무조건 utf-8로 모두 저장이 된다. 왜? utf-8로 작성해야 하..
-
연속 vs 불연속 1프로그래밍 언어 C, C++ 2021. 1. 4. 21:52
정의 vs 선언1 에서 선언은 할당을 포함한다고 언급했다(할당=메모리확보) 링크 참조 jamesbbun.tistory.com/15 정의 vs 선언 1 Java, C# 고급 언어를 먼저 사용하고 C, C++을 나중에 시작했다면, 컴파일 에러가 많이 힘들게 할 것이다. 어쩌면 편한 언어를 사용해왔기 때문에 오히려 처음 프로그래밍 언어를 배우는 사람보다 jamesbbun.tistory.com 선언을 한다는건 또 다른 아주 중요한 의미를 하나 더 가지고 있다. 한번의 선언에서 확보한 하나의 메모리는 메모리내에서는 주소가 연속적이다. 이 점이 메모리를 직접 접근하지 못하는 고급 언어와는 다른 점이자, 특별함이자 장점이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 #include #include voi..
-
연속 vs 불연속 2프로그래밍 언어 C, C++ 2021. 1. 4. 21:51
연속 vs 불연속 1 이어 작성한다. jamesbbun.tistory.com/9 연속 vs 불연속 1 정의 vs 선언1 에서 선언은 할당을 포함한다고 언급했다(할당=메모리확보) 링크 참조 jamesbbun.tistory.com/15 정의 vs 선언 1 Java, C# 고급 언어를 먼저 사용하고 C, C++을 나중에 시작했다면, 컴파일 에러 jamesbbun.tistory.com 지난 포스터에서 말했듯이, 컴파일 에러를 막더라도 런타임 에러는 막을수 없다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 void main() { int i, j; //int a[4][2] = { {0, 1}, {2, 3}, {4, 5}, {6, 7} }; //동적 할당으로 위의 값처럼 ..