소개
최근에, 나는 많은 친구들과 함께 스카우트했고 지루해 할 일이 없었기 때문에 우리는 "게임"을 "창조"했습니다. 전에는 보지 못했지만 발명하지는 않았습니다. "game"이라는 단어를 따옴표 안에 넣은 이유는 실제 컴퓨터 게임이 아니지만 Wikipedia에서 재생되기 때문입니다.
정말 쉽습니다. 누군가 위키 백과 기사를 목표로 선택합니다. 이 예제에서 코드 골프 를 가정 해 봅시다 . 모든 선수는 (눌러 임의의 기사에서 시작해야 임의의 기사 사이드 바에서 또는가는 이 URL) 및 사용하여 가능한 한 빨리으로 "목표"에 도착해야 현재에있는 기사의 링크 된 기사를 . 규칙은 다음과 같습니다.
- 검색 기능이 허용되지 않습니다 (분명히)
- 기사의 기본 텍스트 (특히 내부의 모든 텍스트
<div id="bodyContent">
) 에있는 링크 만 클릭 할 수 있습니다. - 임의의 페이지 또는 발생하는 다른 페이지에 유효한 링크 (데드 링크, 루프 등)가 없거나 전혀 링크가없는 경우 다시 롤백 할 수 있습니다.
도전
불행히도 나는이 게임에 꽤 나쁘지 만 더러운 사기꾼이기도합니다. 그래서 나는 당신이 나를 위해이 봇을 구현하기를 바랍니다. 나는 또한 프로그래머이기 때문에 당연히 내 하드 디스크는 코드, 라이브러리 등과 같은 것들로 가득 차 있으며 여분의 메모리가 몇 바이트 밖에 없습니다. 따라서이 도전은 코드 골프 입니다. 최소 바이트로 승리하십시오.
구현 세부 사항 :
- 물론 주제 간의 연결을 알고 최적의 경로를 자동으로 감지하는 지능형 봇을 구현할 필요는 없습니다. 무차별 강제는이 도전의 목적을 위해 충분하다
- 실제 게임에서는 시간이 중요합니다. 프로그램은 기사를 찾는 데 1 시간 이상 걸리지 않아야합니다 (이는 궁극적으로 목표를 찾는 임의의 검색 자와 같은 허점을 피하는 것입니다)
- 목표에 대한 경로를 찾을 수없는 경우 (예 : 데드 링크 또는 루프) 아래 목록에서 수행 할 작업을 선택할 수 있습니다.
- 종료 (점수는 동일 함)
- 다른 임의의 기사를 가져오고 다시 시도하고 루프에서 아무 것도 수행하지 마십시오 (점수-= 10).
- 데드 링크 또는 루프에서 다른 임의의 기사 가져 오기 (루프 자동 감지) (점수-= 50)
- ( "점수"는 바이트 수를 의미합니다)
- 경로를 "추적"하면 추가 20 바이트가 차감되어 방문하는 모든 개별 페이지의 제목을 인쇄합니다.
- 표준 네트워크 라이브러리를 사용할 수 있습니다 ( "wikipedia 기사를 크롤링하는 자체 네트워크 라이브러리를 만들었습니다"와 같은 허점을 피하기 위해)
- 프로그램이 네트워크와 관련하여해야 할 일은 위키 백과 페이지를 다운로드하기 위해 HTTP 요청을 보내는 것입니다.
- 프로그램이 페이지를 찾으면 페이지를 종료해야하지만 어떤 식 으로든 종료했음을 알립니다 (문자 "f"또는 페이지 제목 인쇄로 충분 함).
- 표준 허점은 피해야합니다
즐거운 골프 되세요!
(이것은 내 첫 번째 질문이므로 악용하기 전에 의견에 명백한 허점과주의 사항을 지적하십시오-감사합니다 : D)