복불복이나 사다리타기 같은 프로그램을 간단히 만들어보자라는 생각으로 잡았다가 은근히 일이 커져버렸다.;
Random으로 어떻게하면 뽑아낼 수 있을지, 요즘 고민되고 있는 Domain-Driven 방법을 어떻게하면 적용할 수 있을지를 고민하다가,
별것도 아닌것에 시간을 다 잡아먹어버린것 같다.;
ASP .NET MVC에서 AJAX도 사용해보고, Castle container도 사용해보고.. 이것저것 사용해보면서 재미를 느낀 짬짬이 취미생활.;
Domain Model 구성은 다음과 같다. 데이터를 따로 제공하지 않아도 되어서 Repository는 비어있는 상태
핵심이된 List Shuffle method.
Domain-Driven으로 3tier로 작성해주면서.. 참 이렇게 편하고 좋은 방법을 내가 돌아가고 있었구나.. 하는 후회가 엄청나게 된다.
많은 것을 더 배워야지 되는데. 나태해진 내 자신도 반성이 되고 말이야.;
Random으로 어떻게하면 뽑아낼 수 있을지, 요즘 고민되고 있는 Domain-Driven 방법을 어떻게하면 적용할 수 있을지를 고민하다가,
별것도 아닌것에 시간을 다 잡아먹어버린것 같다.;
ASP .NET MVC에서 AJAX도 사용해보고, Castle container도 사용해보고.. 이것저것 사용해보면서 재미를 느낀 짬짬이 취미생활.;
Domain Model 구성은 다음과 같다. 데이터를 따로 제공하지 않아도 되어서 Repository는 비어있는 상태
핵심이된 List Shuffle method.
01.
static
class
ShuffledList
02.
{
03.
public
static
List<
string
> Shuffle(
this
List<
string
> list)
04.
{
05.
string
[] shuffledList =
new
string
[list.Count];
06.
List<
int
> freeIndex =
new
List<
int
>();
07.
Random rand =
new
Random();
08.
09.
for
(
int
i = 0 ; i < list.Count ; i++)
10.
{
11.
freeIndex.Add(i);
12.
}
13.
14.
foreach
(
string
item
in
list)
15.
{
16.
int
indexOfNewIdx = rand.Next(freeIndex.Count);
17.
int
newIdxOfCard = freeIndex[indexOfNewIdx];
18.
19.
shuffledList[newIdxOfCard] = item;
20.
freeIndex.Remove(newIdxOfCard);
21.
}
22.
return
shuffledList.ToList();
23.
}
24.
}
25.
</
int
></
int
></
string
></
string
>
Domain-Driven으로 3tier로 작성해주면서.. 참 이렇게 편하고 좋은 방법을 내가 돌아가고 있었구나.. 하는 후회가 엄청나게 된다.
많은 것을 더 배워야지 되는데. 나태해진 내 자신도 반성이 되고 말이야.;