在一个聚会上,我被介绍给游戏LCR。现在这不是一个伟大的游戏,因为没有技能,只有随机的机会。但是这让我开始思考,我可以编写代码,然后用R编写了一个快速程序来对游戏进行建模。
维基百科修改了游戏规则,以匹配我们的游戏方式:
每个玩家至少获得3个筹码。玩家轮流掷出三个六边形的骰子,每个骰子的一侧都标有“ L”,“ C”,“ R”,而在其余三个面上标有一个点。对于投出的每个“ L”或“ R”,玩家必须分别向其左侧或右侧传递一个筹码给玩家。“ C”表示到中心(底池)的筹码。点不起作用。
如果玩家剩下的筹码少于三个,则他们仍在游戏中,但筹码数量是他们在回合中掷骰子的数量,而不是全部掷出三个。当玩家的筹码为零时,他们在回合中通过骰子,但可能会从其他人那里获得筹码,并相应地进行下一回合。获胜者是最后一个将筹码放入中心的玩家。
比赛:使用您选择的语言编写一个程序,该程序输入玩家人数和起始筹码数量,并模拟LCR游戏,显示每个玩家滚动后的游戏状态。
例如,一个游戏可能输出为:
[[[3,3,3,3],0],[[1,4,3,4],0],[[1,4,3,4],0],[[1,4,1,4],2],[[1,4,1,2],4],
[[0,4,1,3],4],[[0,3,2,3],4],[[0,3,0,3],6],[[0,3,1,1],7],[[0,3,1,1],7],
[[2,0,1,1],8],[[2,0,0,1],9],[[2,0,0,0],10],[[0,1,0,0],11],
[[1,0,0,0],11],[[1,0,0,0],11],[[1,0,0,0],11],[[0,0,0,0],12]]
ht:乔纳森·艾伦
输出不必看起来完全像这样,但是应该容易分辨骰子掷骰,每个玩家拥有多少筹码以及每回合中锋拥有多少筹码。
这是代码高尔夫球,所以最短的代码获胜。
[[[3,3,3,3],0],[[1,4,3,4],0],[[1,4,3,4],0],[[1,4,1,4],2],[[1,4,1,2],4],[[0,4,1,3],4],[[0,3,2,3],4],[[0,3,0,3],6],[[0,3,1,1],7],[[0,3,1,1],7],[[2,0,1,1],8],[[2,0,0,1],9],[[2,0,0,0],10],[[0,1,0,0],11],[[1,0,0,0],11],[[1,0,0,0],11],[[1,0,0,0],11],[[0,0,0,0],12]]
-是这样吗?