최근의 프로젝트들
위치 콤보의 최적 전략은 무엇일까?
넷플릭스에서 방영중인 데스 게임을 재미있게 보고 있다. 첫번째 게임은 순전히 암기력 대결에서 차이가 나는 바람에 전략을 논하긴 좀 어렵겠고, 두번째 게임에 대해 얘기해보자.
콤보를 뽑는 부분은 포커와 비슷할 테니 제외하고, 위치 선정 부분만 따로 분리해서 검토해보면, 다이스를 굴려서 나온 1-10 사이의 랜덤한 숫자를 5x5 보드의 빈 곳에 배치하고, 최종 보드에서 한줄로 연결된 4개의 콤보 12개의 점수를 최적화하는 게임이라고 볼 수 있다.
내 게임판은 주사위를 빼면 내가 오로지 정할 수 있기 때문에, 언제나 확률적으로 최적의 전략이라는 게 존재할 수 있다. (다만 각 콤보의 가치를 어떻게 정하냐에 따라 전략이 달라질 수는 있지만, 가치가 고정되어 있다고 가정한다면) 해설이 설명하듯 콤보에 많이 포함되는 위치가 있고 적게 포함되는 위치가 있기 때문에 안좋은 숫자는 구석탱이에 보내고, 좋은 숫자를 좋은 위치에 많이 보내는게 최선이다.
AI에게 대충 풀어달라고 해서 휴리스틱과, 게임판을 Monte Carlo Tree Search로 접근하는 두 가지 방법을 구현해보라고 했는데, 생각보다 MCTS 버전의 성능이 너무 구려서 아직 개선하는 중이다. (일해라 GPT-5.1)
pi-coding-agent
약간의 배경설명: 일전의 글에서 한동안 claude-code를 썼지만, 어쨌든 오픈소스 아닌건 쓰고싶지 않아서 OpenAI Codex 모델로 구독을 바꾸고 Codex 인증을 구현하려고 했다.
그러다가 Openclaw에서 내부적으로 사용한다던 pi-coding-agent를 발견했는데, 딱 내가 원하는 부분 - 유료 모델을 내맘대로 주물러 쓸 수 있다 - 이 깔끔하게 모듈로 포장이 되어 있어서 이걸 대신 쓰기로 했다.
다만 YOLO mode (pi -p “prompt”)의 경우 너무 중간 과정을 보여주는 게 없어 지루하기에 약간 수정을 해서 YOLO 모드라도 뭘 하고 있는지, 무슨 생각을 하는 지 등을 로그를 남기도록 했다.
Agent coding: 대세는 마구 돌리기?
요즘 LLM들의 성능이 크게 늘어서 이제 어지간한 작업은 별다른 지시 없이도 one-shot으로 장기간 돌리게 되는 경우가 많아졌다. 당연히 한 디렉토리에서 두 LLM이 작업하면 서로 헷갈리기 때문에 작업장을 나눠줘야 할 필요가 있다.
일전의 글에서 BTRFS의 Copy-on-write 기능을 활용하는 아이디어를 내 봤는데, git worktree를 활용하는 방법도 있다고 해서 소개한다.
Attention: 공짜 게임이 당신에게서 받아가는 것들
프로젝트 진척이 느리다면 그것은 오로지 다음 공짜 게임들 때문입니다.
공짜게임 목록에서 Zzz를 제거하고 Endfield를 추가했다. 여전히 원신과 명조를 플레이하고 있긴 한데, 좀 위태위태하다.
- zzz는 완전 무과금으로 하면서 조합 안맞는 똥캐를 몇번 뽑고나니 화면 효과에 비해 캐릭터 성능이 너무 구려서 더이상 할 수가 없다.