Hacker News 의견들
  • 정말 재미있는 게임이었음. 개발자가 데이터를 잘 수집하고 있다면, 난이도 순으로 100단계를 묶어서 Steam에 출시해도 좋을 것 같음.
    다만 문이 위로 떠오르는 애니메이션은 2D 시각 논리를 깨뜨려서 혼란스러움.
    앞으로 새로운 게임 메커닉이 추가되길 기대함. 예를 들어

    • 먹이: 말이 매 턴마다 먹이를 향해 이동함. 건초더미나 설탕덩어리를 유인물로 두면 좋을 듯함
    • 목표 지점: 말을 울타리로 유도해 특정 칸에 들어가게 하는 퍼즐
    • 홍수: 물이 가장자리에서부터 차오르며, 말을 가두는 동시에 물을 막아야 함
    • 누군가는 이런 데이터 수집이 불편하다고 했음. 세상에는 감시 없이 순수하게 즐길 수 있는 게임도 필요하다고 생각함
    • 이 게임에는 턴 기반 미니게임의 가능성이 있음. 말이 탈출구를 향해 이동할 때 벽을 배치해 경로를 바꾸게 하고, 제한된 벽으로 최대한 많은 칸을 이동시키는 방식이 흥미로움
    • 문이 위로 움직이는 연출이 전체 미학과 어울리지 않는다는 의견에 공감함. 그래도 훌륭한 게임임
    • 나는 이 애니메이션을 탑다운 RPG 시점처럼 해석했음. 시각적으로 혼란스럽진 않았지만, 모바일에서는 잘못된 칸을 터치하기 쉬워 불편했음
    • 단순한 게임일수록 좋다고 생각함. 프로그래밍을 할 줄 안다면 주말 몇 번 투자해서 직접 만들어보는 것도 좋은 학습 프로젝트가 될 것 같음
  • 8일차 퍼즐의 최적 해법을 손으로 찾아봤는데 꽤 재미있었음.
    최소 해에서 시작해 단계별로 확장하며, 벽을 재배치할 때마다 유효한 해를 유지하는 방식으로 접근했음.
    결국 15분 만에 최적 점수를 찾았음

    • 이 접근이 TDD(테스트 주도 개발) 의 사고방식과 비슷하다는 의견이 있었음
    • 나도 같은 알고리즘을 썼음. 탑다운 방식은 잘 안 됐지만 정말 재밌었음
  • 체리를 배터리로 바꾸고 게임 이름을 Correct Horse Battery Stable로 하면 재밌을 것 같음

    • 혹은 체리를 페이스트리나 PBJ 간식으로 바꿔서 Collect Horse Buttery Stable로 해도 귀여움
    • 벽 대신 스테이플러(staples) 를 쓰는 아이디어도 나왔음
    • 체리를 설탕 조각으로 바꾸고 My Lovely Horse로 부르면 좋겠다는 의견도 있었음
    • 이 농담은 xkcd 936을 참고한 것임
  • 게임이 아주 좋았음. 다만 “Show optimal”을 누르면 내 해와 비교할 수 없어서 아쉬웠음.
    벽이 한 칸 반을 차지해 혼란스럽고, 공룡 울타리 같은 디자인이라 말 울타리로 바꾸면 좋겠음

    • “Show optimal”을 토글 버튼으로 만들어 내 해와 번갈아 볼 수 있게 하면 좋겠음. 모바일에서는 벽이 겹쳐 터치가 어렵다는 점도 공감함
    • 빠르게 전환할 수 있는 버튼이 필요함. 나는 과거 날짜 메뉴를 통해 내 해로 돌아가는 방법을 찾았음
    • 말이 클릭 시 악마신 이야기를 하는 걸 보면, 뭔가 더 있을지도 모르겠음
  • 점수 초기값을 N/A 대신 N/EIGH로 하면 말 테마에 어울릴 것 같음

    • 예전에 본 말 의회(neigh) 만화가 떠오름
    • 이런 생각을 떠올린 창의력에 감탄함
  • 직접 솔루션 파인더를 만들어봤음

    1. 그리드 스크린샷을 찍고
    2. enclosure-horse-solution.onrender.com에 업로드
    3. 벽 개수를 확인 후 Solve 클릭
      무료 버전이라 가끔 크래시가 나지만 캐시를 추가했음.
      GitHub 저장소에서 로컬로 실행 가능함
    • 레벨 에디터에서 커스텀 맵을 만들고 최적 해를 볼 수 있음. 공식 맵을 재현하면 개발자의 의도도 확인 가능함
    • 캐싱을 메모리나 디스크 중 어디에 하는지 묻는 사람도 있었음. Redis 같은 걸 쓰면 안정적일 듯함
    • 서버가 자주 다운돼서, 결과가 안 나오면 로컬 실행을 권장함
  • 내 해와 최적 해를 한 번에 비교할 수 있는 기능이 있었으면 좋겠음

    • 나도 스크린샷 두 장을 찍어 비교했음
    • 사이드바이사이드(diff) 보기 기능이 있으면 완벽할 듯함
  • 이 문제의 최적 해를 알고리즘으로 찾는 방법이 궁금함. Factorio에서도 비슷한 문제를 풀려 했지만 빠른 해법을 못 찾았음

    • 사이트에서는 Answer Set Programming(ASP) 과 Clingo 엔진을 사용한다고 함. 이런 격자 최대화 문제는 NP-hard일 가능성이 높음. SAT/SMT 솔버는 flood-fill 계산에 비효율적임
    • 제약 프로그래밍 접근이 적합하다는 의견도 있었음. 벽 위치를 변수로 두고, 말이 닿을 수 있는 칸을 제약 조건으로 설정하면 됨
    • 어떤 사람은 이 문제를 보고 그래프 컷, SAT/SMT, ACSP 등 다양한 최적화 접근을 떠올렸다고 함
    • 관련 논의가 CS StackExchange에도 있음
    • NP-hard 문제로 보고, Sparsest Cut에서 유도할 수 있다는 의견도 있었음. 최소 컷을 찾고 용량을 조정하며 반복 탐색하는 방식 제안
  • horse 도메인을 볼 때마다 traceroute bad.horse를 실행해보며 미소 짓게 됨

    • 이 농담이 정말 아름답다는 반응이 있었음
  • 매일의 챌린지가 시간대별로 다르게 공개되는 것 같음. 친구는 9일차를 보는데 나는 8일차만 보임.
    전 세계적으로 동일한 공개 시점을 맞춰주면 친구들과 경쟁하기 좋을 것 같음