ㅁㅇㅇ
ㅇㅁㅇ
ㅇㅁㅇ 이런식이라든가
ㅁㅇㅁ
ㅇㅁㅇ
ㅇㅇㅇ
아 그러고보니
ㅁㅇㅇ
ㅇㅇㅇ
ㅁㅇㅇ
ㅁㅇㅇ 4칸짜리 유형도 존재하네
라고했는데
12 3
8ㅁ4
765
기준으로 방향성으로 잡으면 맨위는 기준점에서 5 6 방향성을 가지고 두번째는 5 3 세번째는 1이 패턴이다르고 그밑1과 또밑1이 같은패턴이라고 가정하고 탐색하면되잖아
int patternMatchData[3][patternLen] = {
{5,6}
{5,3}
{-1,1,1} -value일때는 1번방향에 패턴이없을때
}
bool patternMisMatch[wlen][heln][3] =>true 로 멤셋
findPattern(w,h,patternIdx){
switch(patternIdx){
case 0 :
break;
case 1 :
break;
case 2 :
break;
}
}
foreach( w in wlen){
foreach(h in heln){
foreach(patternidx){
if(patternMisMatch[w][h][pattenIdx] && data_arr[w][h] == ㅁ){
findPattern(w,h,patternIdx);
}
}
}
}
이런식으로 짜서 case0번패턴검색하고 1번패턴 검샣가고 2번패턴검색하는형식으로 만듬되지않을까?
아 123 456 789가 아니라 시계방향 회전으로 말한거였군 - DCW
ㅇㅇ 이제 저기서 조금 더다듬고 mismatch dp배열처럼 사용해서 가지치기하면 성능좀더 좋아질듯
어차피 패턴이개수도 미정이면 벡터배열로만들어서 처리하면될거같아
고맙구만.. 코드까지 쳐주고 - DCW
어차피 저거 슈도코드고 존나대충친거니까 이제 이해해서 다시 네껄로만들면 그게 네가짠쏘스지뭐
원래 개발은 복붙이진리니까
낄낄.. 갈길이 멀구나 - DCW
만약 점프해야하는상황이면 음수로 플래그변수처럼 사용하면되니까
아니야 나도갈길이 멀당
덕분에 애니팡 만들어볼 용기가 생김 - DCW
그리고 이런건 진짜 알고리즘이 개중요함. 퍼즐게임수행속도는 게임알고리즘에 따라 천지차이임 왠만하면 C++치환하면 inline부터시작해서 성능 최대한 끌어올리는게 좋다
기껏 동작했는데 수행속도느리면 100퍼센트 로직이 효율성이낮아서그런건데 그거 뒤엎고 다시짤라면 맥빠진다.
진짜 작년에 반복문 배울때만 해도 수행속도같은거 생각도 안했는데ㅋㅋㅋ 점점 그 중요성을 느낀다.. - DCW
foreach(1 to 100) plus+= value; 이런걸 101*50 한줄로처리하는게 결국알고리즘이니까여. 진짜 게임은 로직이 개중요 그래서 내가 망한듯
코딩 두드리기전에 생각부터 하는 습관을 좀 길러야겠음. 정신차리고나면 중괄호 10개정도 만들어져있고 중간중간에 필요하게된 변수 위에가서 선언하고있음 - DCW
알고리즘짤때 가장중요한건 키보드에 먼저 손을가는게 아니라고들었음. 코딩할때는 이미 종이나 펜에 해당알고리즘에 대한 슈도코드가 어느정도 그려지고 손을대야지 안그럼 노답
조별과제도 코딩하다보니 기능이 일괄적으로 함수에 들어가있는것도 아니고 개판이더라... 돌아가긴 한다만 반성좀 해야겠음 ㄹㅇ; 길이 두배쯤 되는 프로그램 만들었으면 오뚜기 3분 스파게티였겠지 - DCW
nyangduck//왠만->웬만 (왠지 빼고 웬임) [리듬 맞춤법 봇♬]