편집 : 최근에, 내 질문은 2048 봇 도전 의 복제본으로 제안되었습니다 . 나는이 질문이 그 질문과 다르다는 점을 강조하고 싶습니다. 그리고 그 질문과는 다른 답을 생각해야합니다. 2048 Bot Challenge는 사용자에게 봇을 만들도록 요청했으며 1 시간 동안 실행되며 최고 점수는 사용자의 점수입니다. 또한 555 바이트로 제한되었습니다. 내 도전은 코드를 훨씬 적게 자주 3 번 실행합니다. 점수는이 세 번의 평균 점수를 사용하여 골프 코드의 문자 길이로 나누어 계산합니다. 제 질문은 출품작이 "더 똑똑해 지도록"권장하고 무차별 대입으로 최고 점수를 얻으려고하지 않습니다.
-
편집 : get 키워드는 JS 키워드 get과의 충돌을 피하기 위해 getTile로 변경되었습니다. 또한, 높은 점수 섹션이 추가되었습니다.
최근에 인기있는 게임 2048을 JavaScript를 사용하여 제어 할 수있는 사이트를 만들었습니다. 내 사이트는 여기에 링크되어 있습니다 :
어떻게:
에이스 에디터는 보드 위에 있습니다. 코드는 250ms마다 한 번씩 또는 초당 4 번 실행되는 코드를 넣습니다. 이것을주기라고합니다.
보드를 제어하려면 다음 방법을 사용하십시오. 화살표 키를 사용할 수 없습니다.
up(); //move up
down(); //move down
left(); //move left
right(); //move right
move(integer); //integer is a direction. 0:up,1:right,2:down,3:left
getTile(y,x); //gets the value of the tile in position y,x on the board. See diagram
편의를 위해 다음 변수가 정의되어 있습니다.
eother //boolean, alternates every cycle
frozen //integer, counts how many cycles the board has remained stationary
lastDir //integer, indicates the last direction that was tried to move in
//uses same format as the move method above.
startup //boolean, will always be true when the game first starts
//you can change it as you wish
a
b //a b and c are all persistant variables, they do not change each cycle
c //any other variables defined in the cycle will be reset every time
규칙 :
- 임의성이 없으므로 논리를 사용해야합니다. (예, 예제 코드가 무작위를 사용한다는 것을 알고 있습니다.)
- 게임 기능에 푹 빠지거나 다른 방법으로 부정 행위 없음
- 일반적으로주기 당 하나의 이동 메소드 만 호출하십시오. 더 많이 사용하면 괜찮지 만 애니메이션으로 조이십시오.
- 보드는 무작위 상태에서 시작해야하며, 게임 전 상태는 수정하지 않아야합니다.
- 게시물에 압축되지 않은 버전의 코드를 제공해야합니다.
- PasteBin을 통해 제공되는 압축되지 않은 코드 버전을 이미로드하는 사이트에 대한 링크를 제공해야합니다 (예 : ... thatcoolidea.com/2048?i=pH18GWtu는 예제 코드를로드 함).
채점 :
- 귀하의 코드는 나에 의해 점수가 매겨 질 것입니다.
- 점수의 A 부분은 평균 3 번의 코드 실행으로 반올림됩니다.
- 점수의 파트 B는 골프 코드의 문자 길이입니다.
- 최종 점수는 파트 A를 파트 B로 나눈 값입니다.
우승자는 코드를 선택하고 코드의 주석에서 확인 된 경우 코드를 사이트의 예제 코드로 불멸화합니다.
행운을 빕니다! 당신이 도전을 즐기시기 바랍니다.
현재 최고 점수 225.22-냉동고-user3217109