전체 글 166

[C#] 정렬 1 (SortedDictionary)

금번 정리 내용은 정렬에 대한 내용이다. 정렬에 대한 내용은 두가지 방법으로 테스트를 해보았다. 해서 그 내용을 정리하여 기억하려 한다. 위의 코드는 간단하게 SortedDictionary 를 테스트 해 보았다. 1. SortedDictionary 를 선언. ( 키는 int64, value는 string )2. 우선 key 값이 큰 for 문으로 먼저 값을 삽입.3. 다음 key 값이 작은 for 문으로 값을 삽입.4. 출력. 출력 하면 다음과 같다. 삽입 한 순서가 아닌 정렬된 값으로 출력이 된다.SortedDictionary는 기본적으로 Key 값을 기준으로 정렬됨을 확인 할 수 있다.

C# 2014.03.11

[C#] 유한 상태 머신

간단한 유한 상태 머신을 정리하려 한다. 목표.1. 몬스터가 유저를 발견하고 접근 후 공격을 한다.2. 몬스터가 유저를 공격 후 상황에 따라 상태가 변한다. 흠... 이걸 어떻게 설명해야 하려나... 어떻게 짤라서 설명해야 할지 고민이 되니. 그냥 궁금하신 분들이 계실까봐 코드를 올립니다. 작성 환경은 비주얼 스튜디오 2010 입니다. 내용은 1. 룸 생성.2. 유저를 룸에 추가.3. 몬스터 생성.4. 몬스터 업데이트 타이머에 몬스터 추가.5. 몬스터 활동. 등등이 되겠습니다. 끝. 첨언... 올리고 나서 가만히 생각해 보니... 그냥 테스트 코드 였는데... 그래서 깔끔하지는 않습니다. 정리하기도 조금 번거로... 그렇습니다. 해서 다음에 기본적인 내용은 다시 포스팅 할 예정이지만, 우선 기본적인 동작..

C# 2013.11.19

[C#] Timer 사용법

C# 에서 지원해 주는 타이머에 대해서 정리 한다. 우선 타이머를 생성한다. 위에서는 5개의 타이머를 선언했지만, 실제 사용하는 건 두개 뿐인 예제이다.하나의 타이머에서는 전역변수 a를 증가 시키고 다른 하나에서는 a를 감소 시킬 예정이다. 그리고 증가 타이머는 전역변수 a의 값이 500을 넘어가면 중단을 시킬 예정이다. SetTimer 함수에서는 두개의 타이머를 생성하는데. 인자를 설명하면첫번째. 콜백 함수.두번째. 전달 인자.세번째. 함수 호출시 딜레이.네번째. 함수 호출 간격. 이 되는데. 생성은 이 형식 말고도 여러개가 있다. 필요에 따라서 다른 생성자를 사용해도 된다. 메인에서는 위의 타이머 생성 함수를 호출 해 주고,일정 카운트가 지나면 타이머 1번의 호출 시간을 변경해 봤다. 앞서 감소 함수..

C# 2013.11.19

[C#] Thread 사용법

c# 에서 thread를 사용하는 방법에 대해서 적어 보자. 1. thread를 만들기에 앞서 테스트를 위한 클래스를 하나 만들었다.2. 이 클래스는 값을 받고 받은 값을 출력하는 함수를 가진다. 본문에서는 Thread를 두개를 생성하는데.하나는 입력을 받아 출력하는 thread.하나는 함수를 호출 하는 thread 이다. 결과는 다음과 같고 중간에 보면 입력을 받은 부분도 있음을 확인 할 수 있다.

C# 2013.11.19

[C#] Random 함수 사용법.

c# 에서 간단하게 랜덤값을 발생 시키는 방법을 정리하려 한다. 방법은 다음과 같다. 1. 랜덤 클래스 선언. 2. 램덤 클래스의 next 함수를 통해서 값 발생. Next 함수는 두 인자를 가지는데 첫번째가 min, 두 번째가 max 범위이다.max 범위는 범위에 포함되지 않는데. 즉, max 이하가 아니라. max 미만의 범위이다. 그리고 너무 빠르게 연속적으로 실행하면 시드가 초기화 되지 않는 듯. 같은 값이 출력 된다.해서 예제에서는 0.5초 딜레이를 주었다.

C# 2013.11.19

[C#] SQL 연결.

C# 에서 SQL에 연결하는 방법에 대해서 정리하자. C# 에서는 SQL에 자체적으로 연결하는 방법을 지원하는데. 연결 방법은 다음과 같다. 1. using 에서 필요한 것들을 추가 해주고.2. SqlConnection 선언.3. 연결 문자열을 만들고 4. 연결. 그리고 쿼리를 날리는 예제는. 1. 쿼리 문자열을 만들고2. 쿼리를 실행하고3. 결과를 확인한다.4. 그리고 반드시!!! SqlDataReader를 Close 를 해줘야 한다. 그렇지 않으면 아직 Reader가 끝나지 않은 상태이기 때문에 다음 쿼리가 실행 되지 않는다. 비고.. 만들어진 쿼리가 아니라 sp를 호출 해도 된다. 예를 들면... 위의 string query 에 select 쿼리가 아니라. string query = "EXEC 저장..

C# 2013.11.19