ㅋ, 약간 낚는 제목이긴 한데, 여튼, 페이스북의 2인 대결 테트리스에서 이길 수 있는 방법을 얘기해 보자. 나보다 잘하는 사람이 많을텐데 이런 글을 쓰는 것이 조금 망설여지긴 하는데, 50단계에서 하다 보면 참 답답한 사람이 많아서 써본다.
(ㅋㅋㅋ, 한 일주일 전부터 테트리스를 끊었는데, 마지막으로 순위를 확인했을 때 43 등인가 그랬다, 페이스북에서 테트리스를 하는 사람 전체를 기준으로. 아래 녹화 영상은 오래된 것이라 상당히 느리게 하고 패턴도 지금보다 단순하다. 최고랭크가 바뀌어도 쉽게 올라갔다, 50에서 100 으로 바뀌었을 때 10번 이내로 지고 올라갔고, 100에서 105인가로 바뀌었을 때도 10번 이내로 지고 올라갔다. 10판을 하면 대략 3번 정도는 100 줄을 넘기고, 상대를 잘 만나면 120줄을 넘기는 경우도 자주 있다. 그런데, 속도가 빨라지고 패턴이 좀 더 다양해 졌을 뿐 아래의 전략은 거의 그대로 유지되었다. 단 하나, 실수를 해도 별로 의미 없다. 지금의 내 방식은 실수를 해도 금새 복구가 되고, 세로 두 칸 남기고 하는 전략을 구사하다 위에서 막히는 불상사가 생겨도 대부분 쉽게 복구된다. 이 때는 속도가 중요하고, 실수로 놓여진 블럭이 포함된 줄을 지워서 실수로 놓인 블럭을 없애고자 하는 것이 중요하다. 보통은 실수로 놓인 블럭 밑에 구멍난 부분에 모양을 채워 넣느라 시간을 낭비하더군. - 2012.12.30 에 추가)
우선, 여기서 말할 몇 가지 전략에도 불구하고, 속도가 무지하게 빠른 사람은 이기기가 정말 힘들다. 나의 경우 한 80줄을 넘어가는 사람은 이기기가 참 힘들더군. 그리고, 어떤 전략에도 실수를 하게 되면 이기기가 힘들다.
특정 모양을 기다리지 않는다. 특히 1자.
한두칸 막히는 것에 너무 연연하지 않는다.
상대방을 파악한다.
폭탄을 잘 지우고 보낸다.
다음 모양을 고려한다.
T-spin은 상황에 맞게끔 쓴다.
쌓여 있는 모양의 높이가 평평하도록 유지한다.
특정 모양을 기다리지 않는다. 특히 1자. 아주 전형적인 실수이다. 주로 I 자를 많이 기다리는데, 그러지 않는다. 하다 보면 마음 속에서 특정 모양이 나올때까지 기다리고 있다는 것을 알게 된다. 그럴 때는 일단 지울 수 있는 것은 재빨리 지우자. 안 그러다 보면, 즉 특정 모양을 기다리다 보면 한 쪽에만 계속 쌓이게 된다. 그러면 쉽게 KO를 당하게 된다. 또한, 많이 쌓여 있는 상황에서는 우선 한 줄이라도 지워야 하므로 될 수 있으면 지울 수 있는 것은 전부 빨리 지워버린다. 같은 맥락에서, 시간과 KO 상황을 보았을 때 이미 이겼다는 판단이 서면 이 때는 I 자를 기다려도 상관이 없겠지. 또한, 사람은 습관에 의해, 특정 모양에 따라 특정한 상황에만 사용하는 경향이 있다. 즉, I 자는 한 번에 서너칸을 지울 수 있을 때만 사용하는 경향같은 것. 그러지 않는다. I 자로 한 칸만 지울 수 있는 경우라 하더라도 일단 그렇게 하는 것이 필요한 경우가 있다. 따라서 모양을 사용하는 방식은 언제나 상황에 따라 판단해야 한다. ㄱ 자 모양으로 한 줄만 지워지게 놓는 경우도 나는 꽤 자주 있다.
한두칸 막히는 것에 너무 연연하지 않는다. 역시나, 한두칸이 막히는 것에 연연해서 이 곳에 맞는 모양을 기다리다 보면 벌써 위에서 언급한 것과 충돌한다. 그리고 막상 기다리던 모양이 나와도 그리 많이 지워지지 않을 수 있다. 그냥 기다렸기 때문에 중요하게 생각되었을 뿐이지 막상 나와서 옳다구나 지우지만 그냥 두서너칸이 지워질 뿐이다.
상대방을 파악한다. 보통 가장 옆 두 칸을 비워 놓게 쌓는 식으로 공격을 시작한다. 그런데 어떤 상대는 공격을 일찍 시작하는 경우가 있고, 어떤 상대는 공격을 늦게 시작하는 경우가 있다. 한두판 해보면 이 상대가 어느 시점에 공격을 시작하는지 알 수 있다. 또한 어떤 상대는 t-spin 으로 공격을 주로 하는 경우가 있다. t-spin 의 단점은 T 모양을 내려야 하기 때문에 시간이 걸린다는 것, 즉 공격에 시간이 걸리기 때문에 모양이 쉽게 쌓인다는 것이다. 이럴 땐 공격을 빨리 하면 쉽게 공략된다. 하여튼 이런 식으로 상대방을 파악하고, 그에 적절하게 우승 전략을 마련한다.
폭탄을 잘 지우고 보낸다. 여기서 '잘' 이란 전략적으로 보낸다는 것인데, 사실 줄을 매우 빨리 지우는 사람들이 주로 실수하는 부분이 이 부분이다. 그리고 내가 느린 속도임에도 그들을 이길 수 있는 방법이 바로 이 부분이기도 하다. 즉, 폭탄이 같은 x축에 두 줄 이상이 쌓이지 않게 해야 한다. 즉, 보낼 때 콤보도 적절히 보내야 한다. 안 그러고 세칸, 네칸을 한번에 지워서 보내게 되면 폭탄이 두 줄의 같은 x축에 위치하게 되는데, 이렇게 되면 상대방은 이런 폭탄을 터뜨리면 일단 한 줄을 보낼 수 있고, 또한 두 줄이 지워진다. 반면 콤보로 보내면 폭탄이 하나밖에 없기 때문에 상대방이 이런 폭탄을 지워도 나한테 한 줄이 오지 않고, 상대방도 그냥 한 줄만 지워진다. 즉, 한꺼번에 세네줄을 한꺼번에 지우면 반격을 맞을 가능성이 매우 높다. 따라서 나처럼 콤보를 주로 사용하거나 콤보를 적절히 조합해서 보낸다. 아래 영상에서, 내가 보낸 폭탄은 여기저기 흩어져 있는 반면 상대방이 나한테 보내는 것은 연이어 있는 것을 볼 수 있다. 이러면 반격당하기 쉽다. 지우는 것도, 일단 급한 상황이면 폭탄을 지울 수 있도록 모양을 적절히 배치한다.
다음 모양을 고려한다. 이것은 너무나도 당연한 것. 지금의 모양을 배치할 때 다음의 모양을 고려해서 하면 된다. 내가 하는 아래 영상을 보면 I 자 모양을 기다리는듯 한 부분이 여럿 있는데, 이런 경우는 주로 다음 번에 I 자가 나오거나 I 자가 홀드 되어 있기 때문이다.
T-spin은 상황에 맞게끔 쓴다. 무리하게 t-spin 을 하는 사람들이 있다. t-spin 은 T 모양을 한 칸씩 내려야 하기 때문에 모양이 빨리 지워지지 않는다. 즉, 상대방의 반격에 비해 내가 모양을 지워 나가는 속도가 느리다는 것이다. 그래서 상대방이 빠르게 공격해 오면 모양이 급격히 쌓인다. 이런 상황에서도 여전히 t-spin 만을 고집하는 사람들이 있다. 그러다 보면 3, 4ko 를 당한다. 차라리, 처음 시작할 때나 아니면 이길 가능성이 높을 때에만 t-spin 을 하는 편이 낫다.
쌓여 있는 모양의 높이가 평평하도록 유지한다. 그래야 한 모양으로 줄을 지울 확률이 올라간다. 안 그러면 한두줄을 지우기 위해서 필요한 모양이 많아지게 되고, 그렇게 되면 급한 순간에 공격/방어에 필요한 시간이 많이 필요하기 때문에 지게 된다.
이외에도, 아닌 것 같아도 모양이 나오는 것은 uniform distribution, 즉 모든 모양이 나올 확률은 같다. 어느 한 모양만 많이 나오는 것이 아니다. 따라서 특정 모양을 기다린다면 대충 이쯤이면 이 모양이 나오겠지, 하는 추정을 이용할 수 있다. 이런 추정을 이용하면 서너수, 혹은 그 이상의 앞수까지 어느 정도 내다 보고 할 수 있기도 하다. 수학과 사람이 테트리스 전략에 대해 논문을 쓴 적이 있는데, 결론은 몇 수를 내다보느냐가 승패에 큰 영향을 주지 않는다는 것이었다. 이것은 꽤 흥미로운 이야기인데, 당장 한 수 밖을 보는 것은 어느 정도 승패에 영향을 줄 수는 있겠지만 서너수 밖까지 고려해서 모양을 쌓는 것이 그리 중요한 것은 아니라는 얘기. 그러니까, 그런 것에서 느껴지는 안도감 혹은 그렇게 해서 잘 하고 있다는 것은 그냥 느낌에 불과해 보인다. 또한 이것은 내가 위에서 말한, 급한 경우에는 일단 지울 수 있는 것부터 지우자, 하는 것이 그리 나쁜 전략은 아니라는 것을 뒷받침해 준다. 괜히, 이 모양을 여기 놓으면 아래 한 칸이 비니까 다른 곳에 꼭 맞춰 놓아야지, 하는 순간 특정 모양을 기다리게 되는 것이다. 그러지 말고, 일단 이번 모양에서는 이 칸이 막혀도 두서너 모양이 더 나오면 결국 쉽게 비워져 있던 곳이 채워지는 경우가 많으므로 너무 칸을 딱딱 맞춰 놓을 필요는 없다. 또한 모양의 특성도 파악을 해 놓으면 좋은데, 예를 들면, Z 자 모양은 T 자 모양으로 대체할 수 있는 경우가 많다. 그런데 Z자 모양은 방향성이 있는 반면 T자 모양은 방향성이 없이 모든 방향으로 변환될 수 있다. 따라서 바닥에 깔린 모양이 특정 Z자 모양만이 맞는 경우, T자와 Z 자를 적절히 조합하면 더 잘 지울 수 있다. 1
다음은 내가 게임하는 것을 찍은 영상. 한 30단계에서 계속 져서, 도대체 왜 지나 알아보기 위해 다른 사람과 게임하는 것을 카메라로 찍어서 플레이 하면서 위와 같은 사실들을 알아냈고, 다시 그것을 토대로 경기, 50단계까지 어느 정도 빠르게 올라 갔다,ㅋ. 아래는 일부러 보낸 줄 수가 내가 적은 것만을 고른 것인데, 실제로도 한 70~80% 정도의 경기에서 내가 KO수가 더 많아서 이길 뿐 여전히 보낸 줄 수는 차이가 많이 난다. 내가 하는 방식은 다른 사람들이랑 좀 많이 다른데, 쓸데없이 칸을 막는 듯이 보이는 것처럼 하는 경우도 있고, 두 줄을 만들어서 보낼 수 있는데 그냥 한 줄만 지우는 경우도 있다. 전부는 아니지만 꽤 많은 경우, 이와 같은 게임 방식은 다음의 모양을 보았기 때문이거나 특정 상황에서 필요해서 한 선택이다. 이런 것이 효과가 있다는 것을 느끼는 이유는, 집중해서 이런 전략을 숙고한 채 경기를 하면 이길 확률이 그냥 할 때보다 더 높은 것 같기 때문이다. 아래 영상에서 보면 느낄 수 있는데, 난 위와 같은 생각들을 하면서 경기하기 때문에 모양이 왔다갔다 할 때가 많다.
(왼쪽이 나)
- 내가 직접 테트리스를 만들어서 게임을 해보니 그렇더군, ㅋ. [본문으로]
'컴퓨터 > 전산, 그 외' 카테고리의 다른 글
프로그래머와 수학 2 (3) | 2011.08.15 |
---|---|
사용자 친화적 오류 메세지 (0) | 2011.08.06 |
운영체제 사용시 느낀 점 (0) | 2011.06.05 |
백만 개의 데이터(파일)을 다룰 수 있다 (1) | 2011.04.02 |
자바의 garbage collector가 파일을 곧바로 닫지 않는 문제 (0) | 2011.03.21 |