Вступ
Настільні ігри - це класична гра між дітьми, але є деякі діти, яким нудно грати в настільну гру крок за кроком. Тепер вони хочуть показати результат, перш ніж покласти руки на дошку.
Виклик
Припустимо, це настільна гра: >---#<---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
Вхід складається з рядка з описаними вище аспектами настільної гри та двох масивів з деякими значеннями (від 1
до 6
) для того, щоб обидва гравці (дитина A
і дитина B
) отримали під час гри в один куб.
Обидва масиви завжди матимуть однакову довжину> = 1.
Малюк A
завжди починає гру.
Ви повинні вивести дитину, яка отримала кінець або ближче до кінця.
Якщо жоден з них не закінчився, і обидва діти залишаються в одній позиції друку 0
або будь-якого іншого фальшивого значення.
Якщо один масив закінчується, а інший має інші рулони кісток (через те, що один гравець не має декількох витків на Xs), решту рулонів кісток слід використати.
Для цього завдання можна створити програму / функцію, яка зчитує вхід зі stdin, або приймати параметри / аргументи та виводити / повертати / друкувати дитину-переможця.
Оскільки це код-гольф , найкоротша відповідь у байтах виграє!
Приклад введення та виводу
Ви також можете використовувати різні формати введення, але слід приймати лише настільні ігри, значення 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