소개
보드 게임은 아이들 사이에서 고전적인 놀이이지만, 보드 게임을 단계별로하는 것이 지루하다고 느끼는 아이들이 있습니다. 이제 그들은 보드에 손을 넣기 전에 결과를 보여주기를 원합니다.
도전
이 보드 게임을 가정 해 봅시다 : >---#<---X---<X<--#-$
> means the start of the game
- means a position without danger
< means the player should return one step back
X means the player won't move next round
# means a portal where the player returns to the start position
$ the first player to get there or after there wins the game
입력은 위에서 설명한 보드 게임의 측면을 가진 문자열과 하나의 큐브를 플레이 할 때 플레이어 (kid 및 kid )가 얻었 을 수 1
있도록 일부 값 (에서 ~까지 6
)을 갖는 두 개의 배열로 구성 됩니다.A
B
두 배열의 길이는 항상 같거나> 1입니다.
아이는 A
항상 게임을 시작합니다.
당신은 먼저 끝을 얻거나 더 가까운 아이를 출력해야합니다.
어느 쪽도 끝이 없어서 두 아이가 같은 자세를 유지한다면 0
되거나 다른 잘못된 값을 유지한다면.
한 플레이어가 남은 주사위 롤을 가지고있는 동안 (한 플레이어가 여러 차례 턴을 잃었 기 때문에) 한 어레이가 떨어지면 나머지 주사위 롤을 모두 사용해야합니다.
이 작업을 위해 stdin에서 입력을 읽거나 매개 변수 / 인수를 사용하여 승자 아이를 출력 / 반환 / 인쇄하는 프로그램 / 기능을 만들 수 있습니다.
이것은 code-golf 이므로 바이트 단위의 최단 답변이 승리합니다!
입력 및 출력 예
다른 형식의 입력을 사용할 수도 있지만 보드 게임, kid-A 및 kid-B 값만 취해야합니다.
예 1 :
board: >---#<---X---<X<--#-$
kid-A: [3,6,6,5,2,1]
kid-B: [4,5,3,5,5,5]
output: A
설명 :
>---#<---X---<X<--#-$ # both kids in position
B--A#<---X---<X<--#-$ # kid-A moved 3 to -
B--A#<---X---<X<--#-$ # kid-B moved 4 to # and returned home
B---#<---A---<X<--#-$ # kid-A moved 6 to X and will wait one round
B---#<---A---<X<--#-$ # kid-B moved 5 to < returned one to # and returned home
>--B#<---A---<X<--#-$ # kid-B moved 3 to -
>--B#<---X---<A<--#-$ # kid-A moved 6 to < returned one to X and will wait again
>---#<--BX---<A<--#-$ # kid-B moved 5 to -
>---#<---X--B<A<--#-$ # kid-B moved 5 to < returned one to -
>---#<---X--B<X<--#A$ # kid-A moved 5 to -
>---#<---X---<X<-B#A$ # kid-B moved 5 to -
>---#<---X---<X<-B#-$A # kid-A moved 2 and won the game!
예 2 :
board: >-<<<<<$
kid-A: [1,2,3]
kid-B: [5,5,4]
output: 0
예 3 :
board: >-<-<#<-<-<-$
kid-A: [5,4,2]
kid-B: [1,1,1]
output: B
설명 :
>-<-<#<-<-<-$ # both kids in position
>-<-<#<-<-<-$ # kid-A moved 5 to # returned home
AB<-<#<-<-<-$ # kid-B moved 1 to -
>B<A<#<-<-<-$ # kid-A moved 4 to < returned one to -
>B<A<#<-<-<-$ # kid-B moved 1 to < returned one to -
AB<-<#<-<-<-$ # kid-A moved 2 to # returned home
AB<-<#<-<-<-$ # kid-B moved 1 to < returned one to -
Current position: (A:0, B:1) output: B