코드 봇
개인 및 보호 변수가 싫어. 나는 단지 무엇이든 모든 것에 접근하고 싶다!
당신이 나와 같다면,이 도전은 당신을위한 것입니다!
다른 봇과 조화롭게 작동 하는 봇을 작성 하면 다른 봇이 원하는 것을 수행 할 수 있습니다. 당신은 프로그래머이며, 일이 어떻게 진행되는지 알고 있습니다. 귀하의 임무는 가능한 한 많은 다른 봇을 귀하의 방식으로 변환하는 것입니다.
코드
봇을 작성하기위한 24 줄의 코드가 있습니다. 매 턴마다 모든 봇은 1 라인을 순차적으로 실행합니다.
각 봇은를 A
통해 5 개의 변수 를 저장합니다 E
. A
및 B
개인 사용하기위한 C
다음의 라인이 실행하는 점포 D
기억 전류의 방향은 한 E
난수이다. 변수는 0에서 시작하지만을 제외한 D
임의의 값에서 시작합니다. 모든 변수는 0-23 만 저장합니다. 크거나 작은 숫자는 24로 변조됩니다.
이 게시물에서 상대를 사용하여 인접한 봇으로 사용합니다.
각 줄에는 다음 5 가지 명령 중 하나가 포함되어야합니다.
Flag
아무것도하지 않습니다. 그것이 당신이이기는 방법을 제외하고Move
봇을D
th 방향으로 움직입니다. 봇이 이미 공간을 점유하면 아무런 움직임도 발생하지 않습니다Copy Var1 Var2
Var1의 내용을 Var2로 복사If Condition Line1 Line2
Condition이 true이면 Line1을 실행하고 그렇지 않으면 Line2를 실행합니다Block Var1
변수에 대한 다음 쓰기를 차단합니다
변수는 다음과 같이 사용할 수 있습니다.
#Var
변수를 줄 번호로 사용합니다. A
17 인 경우 Copy #8 #A
8 행의 내용을 17 행으로 복사합니다
*Var
. 상대 변수를 사용합니다. Copy 5 *C
상대 C
변수를 설정하여 5
Var+Var
두 변수를 추가합니다. Copy D+1 D
봇을 오른쪽으로 회전시킵니다
D
방향으로 사용 하면 [North, East, South, West][D%4]
사용됩니다
이 수정자는 체인으로 묶을 수 있습니다. Copy *#*C #9
상대가 실행할 다음 행을 9 행의 고유 코드에 복사합니다 . **D
상대의 상대 D
변수를 나타냅니다 .
조건은 다음과 같이 평가됩니다.
- 만약
Var
:- Var이
A
throughC
인 경우 Var이 0이 아니면 true를 반환하고, 그렇지 않으면 false를 반환합니다. - Var가
D
인 경우,D
th 방향으로 봇이 있으면 true를 반환 하고 그렇지 않으면 false를 반환합니다 - Var가
E
이면 E가 홀수이면 true를 반환하고, 그렇지 않으면 false를 반환합니다 - Var이 줄이면 Flag 줄이면 true를 반환합니다.
- Var이
- 만약
Var1=Var2
:- 둘 다 모두
A-E
같고 같은 수 이면 true를 반환 - 둘 다 선이고 선 종류가 같은 경우 true를 리턴합니다.
- 둘 다 모두
- 만약
Var1==Var2
:- 둘 다 모두
A-E
같고 같은 수 이면 true를 반환 - 둘 다 선이고 동일하면 true를 리턴합니다 (다른 봇의 플래그는 동일하지 않음)
- 둘 다 모두
각 유형의 봇 50 개는 다음과 같은 패턴으로 환상 세계에 배치됩니다.
B...B...B...B...
..B...B...B...B.
B...B...B...B...
..B...B...B...B.
5,000 번의 각 경기 후에, 각 봇의 깃발이 계산됩니다. 봇에 다른 유형의 깃발보다 깃발이 더 있으면 포인트를 얻습니다. N
봇 사이의 동점 인 경우 포인트가 제공되지 않습니다.
10 번의 게임이있을 것이며, 마지막에 점수가 쌓일 것입니다.
사이드 노트
줄 끝 주석이 허용되며로 표시됩니다. //
행에 추가하는 것과 같이 이해가되지 않는 작업을 시도하면 아무 효과가 없습니다.
존재하지 않는 봇에서 무언가를 시도하면 아무 것도하지 않습니다
If
행이 실행되지 않고 의지 에 대한 무한 재귀
If
의 값을 변경하지 않습니다 C
Block
누군가가 쓰려고 시도 할 때까지 A 는 만료되지 않습니다
여러 변수와 라인을 한 번에 차단할 수 있습니다
Block
변수를 여러 번 사용하면 두 번째 블록 명령문이 첫 번째 코드와 다른 코드 행에있는 한 여러 번 블록됩니다
인수 사이 (및 명령 뒤에)에만 공백이 허용됩니다.
봇이 24 라인보다 짧은 경우 플래그는 나머지 라인이됩니다.
샘플 프로그램
Copy 2 C //Skip to the If line
Flag //Where I'm storing my flag
Move //Move in the D'th direction
If D #5 #2 //If there's a bot, copy code, otherwise, move!
Copy #1 *#E //Copy my flag onto a random spot in my bot's code
Copy 2 C //Skip back to the If line
이 프로그램은 내 Python 컨트롤러 에서 실행됩니다 .
자바 컨트롤러는 여기 그것은이 빠른 훨씬 더 파이썬보다 및 보인다.
스코어 보드 :
- 6837 달러
- 3355 록히드
- 1695 마인드 컨트롤
- 967 비잔틴
- 959 공격
- 743 카미 필리온
- 367 인플루엔자
- 251 화
- 226 마구스
- 137 HideBlockAttack
- 129 로우 봇
- 123 FastMoveCloneDodge
- 112 FastForwardClone
- 96 퀵 프리즈
- 71 RepairAndProtect
- 96 슈퍼 프리즈
- 93 로빙 바이러스
- 80 포워드 클론
- 77 동결 태그
- 68 팔 림프 스테
- 62 블록 동결 공격
- 51 RushAttackDodge
- 46 차단제
- 40 터렛 메이커
- 37 모방
- 37 카미카제
- 35 플래그 인젝터
- 33 랜덤 복사기
- 31 교활한
- 29 해피 아슬 람
- 25 나노 바이러스
- 21 무효화 기
- 19 노비 노리스
- 17 지루한 카 피봇
- 16 개의 이동 봇
- 14 깃봇
- 13 중화제
- 12 암
- 9 DNAbot
- 9 기생충
- 8 메타 교활한
- 8 브랜드 변경
- 8 AdaptiveBot
- 8 재현 봇
- 8 쿵푸 봇
- 5 빠른 냉동고
- 4 공격자