선택한 언어로 프로그램을 작성하여 인간 플레이어를 상대로 3 * 3 보드에서 틱택 토 게임을하십시오. 그러나 모든 이동은 이전 반복에서 생성 된 다른 프로그램이어야합니다 .
인간 입력을 평가하는 방법과 형태는 사용자에게 달려 있지만 표준 입력에서 읽어야합니다. 마찬가지로, 어떤 선수의 시작을 결정하는 방법을 자유롭게 선택할 수 있습니다 (예를 들어, 먼저 요청하거나 사람이 컴퓨터가 시작했다는 신호 또는 다른 아이디어를 나타내는 잘못된 움직임을 입력하도록 허용).
움직임을 검증 할 필요는 없습니다. 당신은 상당히 상대적인 사람을 상대한다고 가정 할 수 있습니다.
기본적으로 보드의 상태에 해당하는 프로그램이 있습니다. 상태는 인식 가능한 방식으로 인쇄되지만 최소한 다음과 같은 세부 수준이 예상됩니다.
X..
00X
x..
휴먼 플레이어가 자신의 움직임을 입력 한 후, 프로그램은 동일한 언어 (표준 출력 또는 파일)로 소스 파일로 다음 반복을 생성하고 종료해야합니다. 해당 소스 파일 이외의 다른 곳에 정보를 저장할 수 없습니다. (프로그램에서 생성 된 프로그램을 빌드하고 실행할 필요는 없으며 사용자가 수행 할 수 있지만 금지되지는 않습니다). 생성 된 프로그램이 빌드되고 실행될 때 유사하게 작동하고 상태를 표시하며 사용자 입력을 기다리는 등
게임이 끝날 때, 당신은 확실하게 식별 할 수있는 방식으로 결과를 얻어야합니다.
완벽하게 플레이한다는 것은 프로그램을 잃어서는 안된다는 뜻이며, 이길 수있는 가능성이 있다면 승리해야합니다.
가장 짧은 코드가 이기고 , 첫 번째 유효한 입력 후 최소 10 일 후에 우승자가 선택됩니다.
프로그램이 다음 반복의 빌드 및 시작을 처리 할 수 있으면 점수가 10 % 감소합니다. 물론 그럴만 한 가치가 없을 것입니다. 물론 다음 번 반복에서 사용자의 이동을 수락 할 때까지 프로그램 자체를 종료해야합니다.
이상한 이상한 트릭을 사용하는 경우 코드와 함께 간단한 설명을 게시하십시오.