JS Crossword - 단서 = eval(answer)인 크로스워드
(lyra.horse)- JS Crossword는 답을
eval()로 실행한 결과가 단서가 되는 퍼즐로,7은3+4,[object Object]는[]+{}로 풀 수 있음 - 퍼즐은 잘 알려지지 않았거나 난해한 JavaScript 기능을 활용해, JavaScript에 어느 정도 익숙한 사람에게 권장됨
- 사용 가능한 문자는
A-Za-z0-9!"()*+-./<=>[]`{}로 제한되며, 공백·쉼표·세미콜론은 쓸 수 없고 대소문자를 구분함 - 답은
eval()샌드박스에서 평가되며, DevTools·MDN·검색은 허용되지만 AI로 푸는 것은 권장하지 않음 - 진행 상황은 로컬에 저장되고, 전체 보드를 풀면 엔딩과 리플레이 기능을 볼 수 있으며 통계는 수집하지 않음
퍼즐 규칙
- JS Crossword는 크로스워드 답을
eval()로 실행한 결과가 단서가 되는 퍼즐임 - 단서
7은3+4, 단서[object Object]는[]+{}로 풀 수 있음 - 잘 알려지지 않았거나 다소 난해한 JavaScript 기능을 사용하므로, JavaScript에 어느 정도 익숙한 사람에게 권장됨
- 사용할 수 있는 문자는
A-Za-z0-9!"()*+-./<=>[]`{}로 제한되며, 공백·쉼표·세미콜론은 사용할 수 없음 - 크로스워드는 대소문자를 구분하며, 최종 답은 영어 단어만으로 구성되어
A-Za-z와 일치해야 함 - 답은
eval()샌드박스 안에서 평가되며, 페이지 아래 플레이그라운드에서 직접 시험할 수 있음 - DevTools, MDN, 검색 같은 외부 리소스는 허용되지만, AI로 푸는 것은 권장하지 않음
- 입력 방향은 칸을 클릭하거나
ctrl을 눌러 바꿀 수 있고, 진행 상황은 로컬에 저장됨 - 색상은 정답 가능성, 잘못된 문자, 오류, 미리 채워진 칸을 구분함
완료와 공유
- 최종 답은
horses gonna answer로 표시됨 - 전체 보드를 풀면 별도 엔딩이 나오며, 오디오와 강한 시각 효과가 포함된다는 안내가 있음
- 완료 후 브라우저를 새로고침하고 JavaScript 콘솔에서
replayCapture()를 실행하면 플레이 리플레이를 볼 수 있음 - 리플레이 데이터는 모두 로컬에만 저장되며, 크로스워드 관련 데이터나 통계는 수집하지 않는다고 밝힘
- 엔딩 음악은 revolea - its giving music임
- 제작자는 Lyra Rebane이며, 플레이테스트에는 Jorian Woltjer가 참여함
- 의견 공유 링크: fedi, bsky, twitter
댓글과 토론
Lobste.rs 의견들
-
진한 선이 보이는데 무슨 뜻인지 궁금함. 문자열을 나누는 건가? 십자말풀이에서 그런 건 처음 봤음
수정: 관련 칸이 강조되는 걸 보니 확실히 그런 듯함. 이제는 당연해 보이지만 첫 단서에서는 꽤 헷갈렸음- 맞음, 답을 끊어 주는 선임. 십자말풀이에서는 꽤 표준적이고, 적어도 내 나라에서 만드는 퍼즐에는 흔함
-
해답이 유일하지 않다는 점이 약간 아쉬웠음.
tr:nth-child,td:nth-child표기법으로 보면2,6,10,18,13,14,16,16,18,8의 단일 칸들이 제약이 부족함
접근법이 여러 개인 것도 적어도 하나, 아마 더 있음. 38-down은this를 쓰도록 의도한 것 같지만, 완성 스크린샷을 올린 다른 사람은/h/s를 썼고 그것도 동작함
교차 칸에서 수정을 하면 하나는 고쳐지고 하나는 깨지는 식으로 정답 검증이 가끔 실패하거나 이상하게 동작했음. 초록색을 보려면 문자를 다시 입력해야 했음
페이지 새로고침 후 재생은 내 38-down을 해결된 것으로 인식하지만, 마지막 연출 재생은 그렇지 않았음. 더 크게는 9-down이 마지막 미해결이었고 22-across를 그와 호환되지 않는 방식으로 풀어 둔 상태였는데, 교차 칸을 바꿔 9-down을 고치자 22-across가 깨졌는데도 “whoaw!!”까지 뜨며 완료로 처리됐음. 새로고침 후 재생은 아직 끝나지 않았다고 제대로 인식함
몇 번은 글롭과 맞는 이름을 찾으려고 JavaScript 표준 라이브러리를 검색해야 했음. 로컬 MDN 사본이 없어서find -name "??x?x.html"같은 걸 못 했다면 어떻게 풀었을지 모르겠음
29-down은 아직도 반칙처럼 느껴짐. 그래도 정말 재미있었고, 내 오전 시간을 꽤 가져갔음 🙂- 플레이해 줘서 고마움 ^^!
유일하지 않은 해답은 의도한 것임. 여러 접근으로 푸는 것도 마찬가지임. 해커스러운 도전 과제라서, 영리한 다른 해법을 떠올릴 수 있다면 허용하는 게 맞다고 봄
교차 칸의 정답 검증 실패는 안정적으로 재현할 방법이 있는지 궁금함
교차 풀이 문제는 잘 잡아냈음. 아마 재미있는 비동기 JavaScript 경쟁 조건일 것 같고, 그래도 꽤 고치기 쉬울 듯함
- 플레이해 줘서 고마움 ^^!
-
정말 훌륭했음! 몇 시간 걸렸고 중간에 몇 번 쉬면서 곱씹어야 했지만 결국 풀었음. 이런 경험을 좋아하고, 정규식 십자말풀이도 아주 좋아함. 만들어서 공유해 줘서 고마움
-
절반 정도밖에 못 풀었지만, 그 과정에서 몇 가지를 배웠음. JavaScript에는 이상한 경계 사례만큼이나 오래된 찌꺼기도 많음
긴 단서들은 너무 열려 있어서 시작조차 하기 어려웠음. 마음에 들었던 건 1-down, 33-down임
어쨌든 인상적인 작품임 -
세상에, 이건 너무 어려움 :)
-
브라우저의 뒤로 가기 버튼을 가로채거나 방해하는 사이트는 스팸으로 표시해야 함
- 수정: 고쳤음. 일부 브라우저가
iframe.src대입을 탐색으로 간주한다는 걸 알게 됨
- 수정: 고쳤음. 일부 브라우저가