본문 바로가기
반응형

분류 전체보기68

[C#] 다차원 배열 다차원 배열의 초기화 int[,] array1 = { { 2, 5, 3 }, { 4, 4, 1 }, { 1, 7, 3 } }; //또는 int[,] array2 = new int[,]{ { 2, 5, 3 }, { 4, 4, 1 }, { 1, 7, 3 } }; 다차원 배열의 접근 int item1 = array[0,0]; int item2 = array[0,1]; 다차원 배열의 길이 //Length = 행*열 = 배열안에 모든 값의 개수 int totalLength = array.Length; //GetLength(int dimension) = 해당 차원에 배열 길이를 반환 //주로 사용하게될 함수 int Length = array.GetLength(0); 2020. 12. 22.
객체지향의 사실과 오해(3) 3. 타입과 추상화 일단 컴퓨터를 조작하는 것이 추상화를 구축하고, 조작하고, 추론하는 것에 관한 모든 것이라는 것을 깨닫고 나면 컴퓨터 프로그램을 작성하기 위한 중요한 전제 조건은 추상화를 정황하게 다루는 능력이라는 것이 명확해진다. -키스 데블린(Keith Devlin)[Devlin 2003] 추상화 어떤 양상, 세부 사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법이다. 복잡성을 다루기 위해 추상화는 두 차원에서 이뤄진다[Kramer 2007] 구체적인 사물들 간의 공통점은 취하고 차이점은 버리는 일반화를 통해 단순하게 만드는 것이다. 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것이다. 모든 경.. 2020. 12. 21.
스택을 이용하여 큐 만들기 template class StackToQueue { stack inStack; stack outStack; public: void Enqueue(T data) { inStack.push(data); } T Dequeue() { if (isEmpty()) return 0; T data; while (!inStack.empty()) { data = inStack.top(); inStack.pop(); outStack.push(data); } data = outStack.top(); outStack.pop(); while (!outStack.empty()) { T temp = outStack.top(); outStack.pop(); inStack.push(temp); } return data; } bool .. 2020. 12. 8.
큐를 이용하여 스택만들기 template class QueueToStack { queue inQueue; queue outQueue; public: void Push(T data) { inQueue.push(data); } T Pop() { if (IsEmpty()) return 0; while (inQueue.size() > 1) { T temp = inQueue.front(); inQueue.pop(); outQueue.push(temp); } T data = inQueue.front(); inQueue.pop(); while (!outQueue.empty()) { T temp = outQueue.front(); outQueue.pop(); inQueue.push(temp); } return data; } bool IsEmp.. 2020. 12. 8.
객체지향의 사실과 오해(1~2) 1. 협력하는 객체들의 공동체 시너지를 생각하라. 전체는 부분의 합보다 크다. -스티븐 코비(Stephen R. Covery) 객체지향의 본질 객체지향이란 시스템을 상호작용하는 자율적인 객체들의 공동체를 바라보고 객체를 이용해 시스템을 분할하는 방법이다. 자율적인 객체란 상태와 행위를 함께지니며 스스로 자기 자신을 책임지는 객체를 의미한다. 객체는 시스템의 행위를 구현하기 위해 다른 객체와 협력한다. 각 객체는 협력 내에서 정해진 역할을 수행하며 역할은 관련된 책임의 집합이다. 객체는 다른 객체와 협력하기 위해 메시지를 전송하고, 메시지를 수신한 객체는 메시지를 처리하는데 적합한 메서드를 자율적으로 선택한다. ※ 클래스는 객체들의 협력 관계를 코드로 옮기는 도구에 불과하다. 2. 이상한나라의 객체 객체지.. 2020. 12. 8.
C++ 연산자의 우선순위표 C++ 연산자의 우선순위표 우선순위 연산자 설명 결합 방향 1 :: 범위 지정 연산자 - 2 ++ 후위 증가 연산자 왼쪽에서 오른쪽으로 -- 후위 감소 연산자 왼쪽에서 오른쪽으로 () 함수 호출 왼쪽에서 오른쪽으로 [] 첨자 연산자 왼쪽에서 오른쪽으로 . 멤버 연산자 왼쪽에서 오른쪽으로 -> 멤버 접근 연산자 왼쪽에서 오른쪽으로 typeid 타입 인식 왼쪽에서 오른쪽으로 const_cast 상수 타입 변환 왼쪽에서 오른쪽으로 dynamic_cast 동적 타입 변환 왼쪽에서 오른쪽으로 reinterpret_cast 재해석 타입 변환 왼쪽에서 오른쪽으로 static_cast 정적 타입 변환 왼쪽에서 오른쪽으로 3 ! 논리 NOT 연산자 오른쪽에서 왼쪽으로 ~ 비트 NOT 연산자 오른쪽에서 왼쪽으로 + 양의 .. 2020. 11. 19.
구독중인 게임 개발 유튜버 1.retr0 www.youtube.com/channel/UCRWq4MPqifkmT2GyL2d2ZAQ 레트로 retr0 레트로(retr0)는 I_Jemin이 창설한, 유튜브에서 가장 간결하고 직관적인 무료 게임 프로그래밍 튜토리얼을 제작하고 업로드 하는 채널입니다. 또한 해외 개발자들과 협업하여 커뮤니티 자막을 사용 www.youtube.com 2.골드메탈 www.youtube.com/channel/UCw_N-Q_eYJo-IJFbNkhiYDA 골드메탈 게임 개발 & 그림 그리기 & 게임 플레이 각종 컨텐츠를 방송하는 스트리머 골드메탈 채널입니다. 주 컨텐츠는 게임 개발이며 유니티 엔진을 기반으로 컨텐츠를 진행합니다. - 2019.03.15 구독자 5천 www.youtube.com 3.설우개의 Game D.. 2020. 11. 19.
C# 연산자 종류 연산자 타입 연산자 예제 산술 연산자 +, -, *, /, % int a = (x + y - z) * (b / c) % d; 할당 연산자 =, +=, -=, *=, /=, %= int a = 100; sum += a; [설명] sum += a 는 sum = sum + a 를 축약한 표현이다. 증감 연산자 ++, -- int i = 1; i++; [설명] i++ 는 i = i + 1 를 축약한 표현이다. 논리 연산자 && (And), || (Or), ! (Not) if ((a > 1 && b =, , 2020. 11. 19.
코딩 잘 하는 법(코딩 표기법) 코드를 작성할 때 변수나 함수명을 지을때 다양한 방법이 있는데, 그 방법들에 대해 알아보자. 1. 카멜 표기법(Camel Case) private int maxCount = 0; private bool isMax = false; private string userName = "user"; 이렇게 두 단어 이상을 연달아 사용할때 이어지는 첫 단어는 대문자로 표기하는 방식이다. max+count = maxCount is + max = isMax user+name = userName; 2. 파스칼 표기법(Pascal Case) private int MaxCount = 0; private bool IsMax = false; private string UserName = "user"; public int GetM.. 2020. 11. 11.
Unity Asset - Bolt 설치하기 안녕하세요. 유니티 에셋 볼트에 대해 다뤄 보겠습니다. 볼트는 유니티용 비주얼 스크립팅 에셋입니다. 볼트를 사용하면 코드를 직접 작성하지 않아도 유니티 프로젝트의 로직을 만들수 있습니다. 볼트는 언리얼의 블루프린트같은 시각적 그래프가 있어서 프로그래머, 기획자, 디자이너 모두 로직을 설계할 수 있습니다. 볼트는 2020년 7월 22일 무료화 선언을 했습니다. 현재는 유니티 에셋 스토어에서 무료로 받아볼 수 있습니다. assetstore.unity.com/packages/tools/visual-scripting/bolt-163802?_ga=2.225699167.45210945.1603376352-1170668531.1559967765 Bolt | 비주얼 스크립팅 | Unity Asset Store Get .. 2020. 10. 23.
[C#]URI 문자열을 이스케이프된 표현으로 변환합니다. Uri.EscapeUriString(String) URI 문자열을 이스케이프된 표현으로 변환합니다. [함수원형] public static string EscapeUriString(string stringToEscape); [Parameters] 이름 타입 설명 stringToEscape string 이스케이프할 문자열입니다. [출처]docs.microsoft.com/ko-kr/dotnet/api/system.uri.escapeuristring?view=netcore-3.1 프로젝트를 하다가 파일 다운로드가 안되는 이슈가 있었다. iOS 기기에서 특정 파일이 다운로드가 되지 않았고, 해당 파일의 이름이 한글로 되어있었다. 한글 파일을 이스케이프 해보니 string이 모두 깨져버렸다. 이를 해결하기 위해 한.. 2020. 10. 8.
[UNITY]AssetBundle 압축 종류 BuildAssetBundleOptions.None: 이 번들 옵션은 직렬화된 데이터 파일의 압축된 단일 LZMA 스트림인 LZMA 압축 포맷을 사용합니다. LZMA 압축 포맷은 번들을 사용하기 전에 전체 번들의 압축을 풀어야 합니다. 따라서 파일 크기는 가장 작아지지만, 압축 해제 때문에 로드 시간이 조금 길어지게 됩니다. BuildAssetBundleOptions를 사용하는 경우 번들의 에셋을 사용하기 위해 모든 번들의 압축을 풀어야 합니다. 번들의 압축이 풀린 이후에는 디스크에서 LZ4 압축 포맷을 사용하여 다시 압축됩니다. LZ4는 번들의 에셋을 사용하기 위해서 모든 번들의 압축을 풀 필요가 없습니다. 이 옵션은 번들의 에셋을 사용하기 위해서 모든 에셋을 로드해야 하는 경우 사용하기에 적합합니다... 2020. 10. 6.
728x90