캐스팅 데이터 형식 변환 밑에 예시에서 int 크기를 short로 변환하려하면 오류가 날 수 있다 더 큰곳에서 작은곳으로 옮길때 캐스팅 문법 사용 다른 자료형으로 옮길때 안전하게 캐스팅 문법 사용 스트링 포맷 int-> string , string -> int 로 변
둘 다 1씩 증가시키는 로직은 똑같은데 어떤 디자인을 선택해서 구현할 지 생각해보면a = Program.AddOne2(a);Console.WriteLine(a); 가 훨씬 더 좋다고 할수있는데 첫번째처럼 ref의 참조로 진짜값으로 작업을 하다보면 그냥 값을 테스트하는
간단한 TextRPG 그동안 배웠던것을 토대로 간단한 TextRPG를 만들어 보자. 진행 흐름 클래스를 고르면 플레이어를 생성한 후 게임에 진입한다. 게임에 진입하면 1.필드로 간다 , 2. 로비로 돌아가기 필드로 가면 랜덤으로 몬스터가 소환되고 전투 모드로 돌입할지
그 동안 프로그래밍을 할 때 무의식적으로 static을 써왔는데 개념을 간단히 이해만 하고 넘어가보려한다.class Knight 에 선언된 static public int counter을 보자면 static이 붙어있으니 클래스 Knight 자체에 종속적인 변수라고 보면
이 중 상속성에 대해 알아보자.라는 클래스가 있을 때, 다른 직업 Mage, Archer같은 클래스를 만든다면 같은 속성인 id , hp ,attack을 똑같이 선언하여 사용한다면 너무 비효율적일 것이다.그래서 Player라는 클래스를 생성하고 Mage , Archer
객체지향의 OOP 마지막 특징으로 다형성을 알아보자.코드를 보고 설명하자면 EngterGame코드를 실행할때 player의 직업에 따라 Move함수를 호출하고 싶은데 저 코드를 실행해보면이라고 나올 것이다.우리가 원하는 값은 mage가 게임에 들어갔으니 Mage 이동을
1.클래스 Map을 만들기2.Map클래스 안에 1과0으로된 타일 배열만들기3.tiles을 1은 빨간원 0은 초록원으로 랜더링해보기여기서 2차원배열의 tiles의 첫번째,두번째 차원의 길이를 가져오는 방법을 썼는데바로 tiles.GetLength 이다 GetLength(
나만의 특별한 리스트를 만들고 싶다고 가정할 때 데이터 형식을 여러가지 지원을 해줘야하는데 무식한 방법으로는 버전마다 하나씩 만들어주는 것 이런식으로 하나씩 다 만드는 것은 너무 비효율적이다. 다른 방법으로는 무엇이 있을까 ? 1.모든 타입을 다 소화할 수있는 o
이번에는추상 클래스와 인터페이스에 대해 알아보자.행위에 강요를 주는 문법이라 생각하면 된다.몬스터라면 꼭 Shout을 정의해야한다고 가정을 해보면 이걸 강제 할수있는 방법이 바로 추상 클래스를 사용하는 것이다.제약 : Monster라면 반드시 Shout 함수를 오버라이
C++에서는 없지만 C바로 Property라는 것인데 예를 들어 설명하자면,우리가 어떤 클래스를 만든다고 가정해보자.이런식으로 public 변수로 선언하고 코드가 복잡해지면 다른사람들과 코드를 받아서 수정해야하는 상황에서 잘못하여 변수를 건드리게 되면 어디서 바꾼지 고
Delegate(대리자) 코드를 작성할때 순차적으로 만들어 왔는데 상대에게 거꾸로 요청할 수 있는 상황이 빈번하게 일어나는데 이러한 일을 대리자로 처리할 수 있다. 한줄로 설명하자면, 함수 자체를 인자로 넘겨주는 방법 이라고 생각하면 된다.
Lamda식 우리가 코드를 만들다 보면 일일이 확인하는 함수를 만든다거나 찾는 함수를 만들 때가 있는데 이러한 함수들은 찾는것에 종류등에 따라 여러개 만들어야할 수 있는 상황이 생긴다. 그래서 종류에따라 함수들을 만들면 너무 비효율적인데 이러한 상황에서 사용할 수 있는
프레임 관리를 코드를 통해 알아보자.마지막 시간을 측정하여 저장하는 변수 lastTick현재시간을 측정하는 변수 currentTick30FPS (1/30초) 이하면 continue로 다음 입력,로직,렌더링 실행if문에서 currentTick - lastTick 의 시
C\_data 배열의 초기 사이즈는 1로 설정한다. (빈 리스트를 만들었을 때 사이즈)Count는 데이터가 추가,삭제 될때 유동적으로 관리한다.Capacity는 실제 우리가 예약된 데이터의 개수니까 \_data의 크기랑 같을 것이다. 그러므로 \_data.Length와
연결리스트 이해를 위해 작성생각해야할 것들1\. LinkedList2\. LinkedListNodeLinkedList를 이해하기위해 방을 비유해서 코드한 방을 기준으로 이전 방과 다음 방을 빠르게 접근할 수있다.이전에 배운것을 보자면이런식으로 Room Next나Prev
이전에 간단히 렌더링 하는 것을 해봤는데 본격적으로 Map 만드는 연습메인 함수에서 Board의 size가 25,25인 MapMazes for Programmers 책에서 나온 가장 기본적인 미로 생성 알고리즘 중 하나위에서 기본적인 맵을 기반으로 알아보려 한다.결과를
이전에 만들었던 맵을 바탕으로 Player 클래스를 만들고 랜덤으로 이동하는 프로그램을 만들어보자.막상 플레이어 클래스를 만들었지만 무엇을 먼저 해야하는지 감이 안잡힌다.그래서 천천히 밑에서부터 주석과 글을 참조해서 이해하자.첫번째로 해야할 것을 생각해보면 Board클
미로에서 길찾기에서 사용 가능한 오른손 법칙을 알아보자. 어떤 미로에 갇혔을 때, 벽에 오른손을 대고 계속 가다보면 출구를 찾을 수 있다는 개념이다. 사실, 최단거리를 찾아주는 것도 아니고 그냥 길을 가는 알고리즘이라고 볼 수 있다. 이전에 했던 플레이어 임의의 이동
후입선출 LIFO : Last in First outPush까지 실행 결과Pop까지 실행 결과data1 = 104data2 = 103Peek : 다음 Pop을 했을 때처럼 데이터를 가져올 수 있다. 다만 stack에서 삭제하지않고 데이터만 가져오는거라 Count 영향
Depth-First-Search 이름에서 부터 탐색기법이라는 것을 알 수 있는데대표적인 그래프 탐색 알고리즘 중 하나이다.그래프에서 깊이 우선적으로 탐색하는 알고리즘으로 간단히 말해서 한쪽 방향으로 탐색을 끝낸 후 다시 탐색 안한 부분으로 올라와서 또 한쪽 방향으로
오른손법칙때 사용한 미로맵 포스팅 클릭이전에 오른손법칙으로 길찾는 방법은 사실 길찾는 방법이 아니고 움직이는 방법이라 볼 수 있는데이제부터는 미로맵을 그래프로 만들고 BFS로 탐색 후 길찾는 법을 알아보자.필요한 변수 선언BFS로 미로맵을 탐색모든 미로맵을 저장했으니
다익스트라 알고리즘은 그래프의 기본적인 알고리즘이라 할 수 있는데특정 정점에서 다른 모든 정점으로 가는 최단 경로를 찾아낼 수 있는 알고리즘이다.정점들은 간선에 가중치를 가지고있는데 그 가중치들의 최소비용을 계산하여 다른 노드로 이동할 때 가장 최적의 동선을 찾아주는데
트리(Tree) 계층적 구조를 갖는 데이터를 표현하기 위한 자료구조 노드 : 데이터를 표현 간선 : 노드의 계층 구조를 표현하기 위하여 사용
우선순위 큐
A* 알고리즘 A*는 다익스트라와 비슷하며 시작점과 끝점을 알고 있고 끝점으로 가기위해 가는길의 비용과 더불어 추가로 가까워질수록 추가적인 수치를 계산하면서 간다고 생각하면 된다.