小时候,我经常玩这个游戏。
规则
有两个玩家(我们分别称为A和B),每个玩家都用他的手作为枪支。有三种可能的动作:
举起手来向您的枪支装弹药。
每把枪空着。装载使弹药增加一倍。
指向另一个球员射击的手。
这会使弹药减少一倍。您必须至少有一个单位的弹药才能射击。
双臂交叉以保护自己免受射击。
两名玩家同时移动。如果两个玩家同时射击,子弹会互相击中,然后游戏继续进行。当一名玩家射击而另一名玩家携带弹药时,游戏结束。
射击和空枪被认为是作弊行为。如果一名玩家作弊,而另一名玩家执行法律诉讼,则该作弊者立即输掉。如果两个玩家同时作弊,游戏将继续。
作弊尝试不会减少弹药,因此永远不会是负面的。
挑战
给定玩家A和B的举动,输出赢得游戏1
的玩家:玩家A,-1
玩家B和0
平局。您可以使用其他任何三元组的返回值,但是您需要在答案中说明使用了哪些返回值。
游戏可能会:
- 无需处理所有移动即可结束;
- 不能以给定的动作结束,因此被视为平局。
输入可以采取:
- 作为字符串
- 作为整数的数组/列表
- 以任何其他不预处理输入的方式
允许完整的程序或功能。由于这是代码高尔夫,因此以字节为单位的最短答案为胜!
测试用例
A: "123331123"
B: "131122332"
-----^ Player B shoots player A and wins.
Output: -1
A: "111322213312"
B: "131332221133"
-------^ Player B cheats and loses.
Output: 1
A: "1333211232221"
B: "1213211322221"
----------^^ Both players cheat at the same time. The game continues.
Output: 0
A: "12333213112222212"
B: "13122213312232211"
| || ^---- Player A shoots player B and wins.
^-------^^------ Both players cheat at the same time. The game continues.
Output: 1