주제 : C#으로 구현하는 A Star Algorithm

개발환경 : Visual Studio 2010

사용언어 : C#



또다시 일주일만에 글을 씁니다.


일주일만에 대략적인 알고리즘을 구현하였습니다.


2주일이 걸렸습니다.


기타 부수적인 것들은 천천히 할려고 합니다.


3탄 글에서 만든 것에서 또 많은 변화가 있었습니다.


1. 어떻게 하면 클래스 관계를 깔끔하게 처리할 수 있을까?

2. 에이스타 알고리즘에 필요한 opennode와 closednode를 어떻게 해야 하나?


이 두 개 때문에 많은 변화가 생겼고 시간 또한 오래 잡아먹었습니다.


클래스 관계는 이래저래 생각해본 결과

Board 클래스를 static으로 하는것보다는 CellGroup에 상속 시키는게 나은거 같아 변경하였고

그에 따라 부수적으로 Cell, CellGroup 클래스의 변경도 뒤따랐습니다.

물론, 변경 이외에도 보강도 하였습니다.


두 번째로 opennode와 closednode를 어떻게 해야하나 에서 많이 시간을 잡아먹었습니다.


내가 만들어 쓰자니 귀찮고

C#에 딱 알맞는 게 있나 보니 없었고

그러다가 찾은 PowerCollections 라이브러리를 발견하여

오! 여기에 있겠는데!! 하다가 시간만 날려먹었습니다. ㅡㅡ;

결국 제가 만들어 쓰기로 하였습니다.

그래도 이 프로젝트에 PowerCollections의 Pair은 적합하다고 판단하여

소스를 또... ㅡㅡ; 전면적으로 수정하였습니다.


그러고 오늘 드디어 대략적인 구현이 끝났습니다.


설명을 쓰자니.. 주석에 써논걸 또 쓰는거 같아

자잘한 기능까지 구현이 끝나면 그냥 파일을 통째로 올리겠습니다.

나름 주석을 잘 달았거든요..


클래스 관계도




실행 화면

이거 그냥 동영상 올리기 하니깐 화질이 구리더라구요..

유투브나 이런데 올리고 링크를 퍼오는 법을 배워야겠습니다..



Posted by 투명테잎