2010.08.28 13:45 WarGame

1년 전쯤에 Saphead가 주최한 Hackjam 대회가 있었습니다

문제마다 만화로 그려내서 상당히 재밌었는데요

폴더 정리를 하다가 문제를 발견해서 풀이를 올립니다

이번 문제는 Hacking에 대한 지식을 시험하기보다는

Hacker로서의 기본 소양인 코딩을 시험하는 문제였습니다

바로 Game of life의 룰을 숙지하고 이에 맞도록

코딩을 하는 것이 해당 문제의 목표였죠

해당 문제의 포트에 접속해보면

다음과 같은 화면을 보시게 됩니다

<그림1. 문제에 접속하면 맞이하는 화면>


#은 벽이고

*는 한 점을 나타내게 됩니다

좀 더 쉽게 이해하시려면 다음 사이트를 방문하셔서

직접 플레이 해보고 룰을 익히시는게 좋겠죠

http://www.bitstorm.org/gameoflife/

 
<그림2. Game of life의 실제 플레이 모습>



이제 문제가 이해가시나요?

아래 적혀진 < : 숫자 > 는 바로 얼마만큼 진행을 시키는가 입니다

그림1을 보면 저 벽을 유지한채로 12단계를 진행한 것을 Recive 하기를 원한다는거죠

OverFlow, FSB 등이 아닌지라 착실하게 풀어나가는 방법밖에 없습니다

이 게임의 룰은 다음과 같습니다


<그림3. Game of life의 룰>


자기 자신을 기준으로 8칸의 Cell을 검사한 뒤에 해당 룰을 따르게 되는데

그 Cell이 점유되어 있는가 없는가에 따라 약간 달라집니다

이웃이 없거나 , 1개 있을 경우 사라지고

2,3개는 그대로 남으며

4개 이상부터는 사라집니다

만약 Cell 내에 아무것도 없다면

3개의 이웃이 있을 경우 Cell을 점유합니다

문제를 풀어서 해당 port로 보내게 되면 아시겠지만..

한번만 풀면 돼는게 아니라 16라운드 까지 풀어야 합니다

1라운드 , 2라운드... 16라운드까지 풀어야

비로소 정답을 얻게 되죠

뭐 일단 1라운드를 깰 알고리즘을 짰다면

나머지는 별로 어렵진 않죠




문제가 포함하고 있는 문자열인 ###을 포함하지 않은 메세지를 받을 때까지

문제 풀이 루틴을 돕니다

다만 list 형식으로 일일히 나눠주고

다시 정답형식에 맞는 format 으로 바꿔주는게 귀찮더군요

아무튼 이렇게 돌려주면


<그림4. PassWord GET!>
Posted by LinkC
이전버튼 1 2 3 4 5 6 7 8 ··· 47 이전버튼

블로그 이미지
LinkC

태그목록

Tistory Cumulus Flash tag cloud by BLUEnLIVE requires Flash Player 9 or better.

공지사항

Yesterday301
Today84
Total298,301

달력

 « |  » 2018.02
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28      

최근에 받은 트랙백

글 보관함


. .