매우 제한적인 기능만을 제공하는 난해한 프로그래밍 언어(esoteric programming language)인 '엄랭(UmmLang)'으로 틱택토 AI가 성공적으로 구현되어 화제입니다. 엄랭은 변수, 입출력, 조건문, 라인 점프 정도만 지원하며, 심지어 정수조차 점(.), 쉼표(,), 공백만으로 표현해야 하는 극도로 불편한 개발 환경을 가지고 있습니다. 이러한 제약 속에서 복잡한 게임 로직을 구현했다는 점에서 주목할 만합니다.
개발자는 먼저 2x1 틱택토를 만들어 게임판 표현과 AI 구현 방식을 검증했습니다. 각 칸을 변수에 대응시키고 빈칸, X, O를 숫자로 표현한 뒤, 가능한 모든 상태를 엄랭의 '동탄(IF)' 문으로 나열하여 AI의 착수를 결정하도록 했습니다. 이 경험을 바탕으로 3x3 틱택토로 확장하려 했으나, 합법적인 게임 상태가 약 4,520개에 달해 모든 경우를 직접 코딩하는 것이 불가능하다는 문제에 직면했습니다. 이를 해결하기 위해 파이썬(Python)으로 별도의 코드 생성기를 개발했습니다. 이 생성기는 모든 유효한 게임 상태에서 미니맥스(Minimax) 알고리즘 기반의 틱택토 AI가 둘 최적의 수를 계산하고, 이를 엄랭의 동탄 조건문 형태로 자동 변환하여 수천 개의 분기 코드를 생성했습니다. 최종적으로 이 생성된 코드를 메인 엄랭 소스에 삽입하여 AI 로직을 완성했습니다.
이러한 접근 방식은 런타임에 탐색이나 계산을 수행하는 대신, 미리 생성된 조건문만 실행하도록 하여 난해한 언어의 한계를 극복했습니다. 즉, 모든 가능한 게임 상태와 그에 따른 AI의 최적 착수를 미리 '하드코딩'해 둔 것입니다. 이는 일반적인 프로그래밍 언어에서는 비효율적일 수 있지만, 엄랭처럼 제어 구조가 극히 제한적인 환경에서는 복잡한 알고리즘을 구현할 수 있는 창의적인 해결책이 됩니다. 이 프로젝트는 난해한 언어의 가능성을 탐구하고, 주어진 제약 속에서 문제 해결을 위한 새로운 방법을 모색했다는 점에서 의미가 크며, 개발자의 문제 해결 능력과 끈기를 잘 보여주는 사례입니다.