핑퐁게임 조작법
오락실 기계 중에서도 나이가 제일 많은 축에 드는 게 퐁이야. 막대 두 개가 공 하나를 주고받는, 탁구를 그대로 화면에 옮겨놓은 물건이지.
예전에 파이썬으로 만들어둔 걸 자바스크립트로 다시 지어서 브라우저에서 바로 돌아가게 옮겼어. 내려받을 것도 가입할 것도 없어.
- 게임 시작 : 1, 2, 3 (난이도를 고르면 바로 시작돼)
- 패들 이동 : ↑, ↓
- 일시정지 : 스페이스바
- 판이 끝난 뒤 : R은 같은 난이도로 다시, 1·2·3은 난이도를 바꿔서 다시
오른쪽 시안색 막대가 내 패들이고 왼쪽 마젠타가 컴퓨터야.
핑퐁 게임 규칙
한 판은 짧아. 먼저 5점을 내는 쪽이 이기고 거기서 끝나거든.
점수가 나면 3초를 세고 다시 서브가 들어가는데 어느 쪽으로 갈지는 그때그때 무작위야. 준비도 안 됐는데 공이 튀어나와서 억울하게 한 점 내주는 일은 없게 해뒀어.
걱정 안 해도 되는 것도 하나 있어. 랠리가 아무리 길어져도 공이 점점 빨라지진 않아. 서브 때 정해진 속도가 그 점수 끝날 때까지 그대로거든.
난이도 3단계
난이도를 올리면 뭐가 달라지는 거냐고 녀석한테 물어봤어. 값 다섯 개가 같이 움직인다더라고.
| 바뀌는 값 | 쉬움 | 보통 | 어려움 |
|---|---|---|---|
| 컴퓨터 패들 속도 | 5 | 8 | 12 |
| 컴퓨터 조준 오차 | ±25 | ±18 | ±10 |
| 공 가로 속도 | 7 | 10 | 13 |
| 받아친 공의 최대 세로 속도 | 8 | 15 | 25 |
| 내 패들 속도 | 6 | 6 | 6 |
맨 아랫줄이 눈에 걸리지. 내 패들 속도는 세 난이도가 전부 똑같아. 어려움에서 내가 굼떠지는 게 아니라 상대가 정확해지는 거야.
조준 오차라는 게 뭐냐고 되물었더니, 컴퓨터가 공을 겨냥할 때 일부러 빗맞히는 폭이래. 쉬움에선 25만큼 빗나갈 수 있는데 패들 절반 높이가 45니까 절반 넘게 어긋난 자리를 지키고 서 있을 때도 있다는 뜻이지.
어려움일수록 각도가 커진다
받는 위치에 따라 튕기는 각이 달라져. 패들 한가운데로 받으면 공이 거의 일직선으로 돌아가고, 위아래 끝으로 갈수록 크게 꺾여.
그런데 표 넷째 줄을 다시 보면 그 꺾이는 최대치가 난이도마다 달라. 어려움에선 25까지 올라가는데 그때 공 가로 속도가 13이거든. 가로보다 세로가 두 배 가까이 가파른 각이 나온다는 얘기야.
쉬움은 가로 7에 세로 8이라 45도 언저리에서 그쳐. 어려움이 그냥 어렵기만 한 판은 아닌 셈이지. 상대가 정확해지는 대신 내 손에 쥐어지는 무기도 같이 날카로워지거든.
컴퓨터가 조준을 새로 뽑는 시점도 정해져 있어. 내가 받아친 그 순간에 한 번 뽑고 다음 내 차례가 올 때까지 그 값으로 버틴대. 한 번 크게 빗나가게 만들어두면 그 랠리 내내 그 오차를 안고 움직인다는 거지.
코드 한 줄을 붙잡고 늘어진 첫 판이야
이 퐁은 어디서 가져다 붙인 게 아니야. 화면 크기부터 공 속도, 컴퓨터가 얼마나 빗맞힐지까지 값이 전부 코드 안에 적혀 있고 그걸 하나씩 정한 게 나야.
"그럼 이 줄 전체를 한국말로 해석해줘" 하면서 한 줄에 몇 번을 투자하고 나서야 어렴풋이 감이 오더라고.
만드는 과정은 퐁 게임을 브라우저에 옮긴 이야기에 있고, 만들고 나서 세 번을 다시 고친 얘기는 퐁 게임 에러노트에 정리해뒀어.






