介绍
桌游是孩子之间的经典游戏,但有些孩子一步一步玩桌游感到无聊。现在,他们希望在把手放到板上之前先显示结果。
挑战
假设这个棋盘游戏: >---#<---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
),以便两个玩家(kid A
和kid 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
我们是否可以假设两个数组(对于A和B)将始终具有相同的长度?
—
trichoplax
如果一个数组用完而另一个数组剩余骰子掷骰(可能是由于一个玩家在Xs上丢失了几回合),那么应该使用当前位置来确定输出,还是应该先用完剩余的骰子掷骰?
—
trichoplax
@trichoplax。是的,它们的长度将始终相同。.我将在问题中阐明
—
删除
@trichoplax。剩余的骰子卷应先用尽
—
从
示例3正确吗?我跑在我的脑海这一个和B永远不会越过空间2,而到达空间4
—
Draco18s不再信任SE