Giriş
Boardgames çocuklar arasında klasik bir oyundur, ancak adım adım bir boardgame oynamaktan sıkılan bazı çocuklar vardır. Şimdi sonucun ellerini tahtaya koymadan önce gösterilmesini istiyorlar.
Meydan okuma
Diyelim ki bu masa oyunu: >---#<---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
Giriş Boardgame en yukarıda açıklanan yönleri ve (bazı değerlerle iki diziyle bir dizi oluşur 1
için 6
her iki oyuncunun (çocuk o sırayla) A
ve çocuk B
bir küp çalarken) var vardı.
Her iki dizi de daima aynı => 1 uzunluğa sahip olacaktır.
Çocuk A
her zaman oyuna başlar.
Önce sonu veya sonuna yaklaşan çocuğu çıkarmalısınız.
0
Hiçbiri sona ermediyse ve her iki çocuk da aynı pozisyonda ya da başka bir sahte değerde kalırsa.
Bir dizi diğer zar atışlarındayken biterse (bir oyuncunun X'lerde birkaç tur eksik olması nedeniyle), kalan zar atışları kullanılmalıdır.
Bu görev için, stdin'den girişi okuyan bir program / işlev oluşturabilir veya parametreleri / bağımsız değişkenleri alabilir ve kazanan çocuğu çıktı / dönüş / yazdırabilirsiniz.
Bu kod golf olduğundan , baytlarda en kısa cevap kazanır!
Örnek Giriş ve Çıkış
Farklı giriş biçimlerini de kullanabilirsiniz, ancak yalnızca boardgame, kid-A ve kid-B değerlerini almalısınız.
Örnek 1:
board: >---#<---X---<X<--#-$
kid-A: [3,6,6,5,2,1]
kid-B: [4,5,3,5,5,5]
output: A
İzahı:
>---#<---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!
Örnek 2:
board: >-<<<<<$
kid-A: [1,2,3]
kid-B: [5,5,4]
output: 0
Örnek 3:
board: >-<-<#<-<-<-$
kid-A: [5,4,2]
kid-B: [1,1,1]
output: B
İzahı:
>-<-<#<-<-<-$ # 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