所以当我开始编写这个函数时,我正在编写一个石头剪刀布游戏:a
是玩家自己的举动,b
是玩家二的举动。我需要弄清楚的是,第一个玩家是赢了、输了还是平了。
//rock=0, paper=1, scissors=2
processMove(a, b) {
if(a == b) ties++;
else {
if(a==0 && b==2) wins++;
else if(a==0 && b==1) losses++;
else if(a==1 && b==2) losses++;
else if(a==1 && b==0) wins++;
else if(a==2 && b==1) wins++;
else if(a==2 && b==0) losses++;
}
}
我的问题是:编写这个函数的最优雅的方式是什么?
编辑:我正在寻找单线。
最佳答案
if (a == b) ties++;
else if ((a - b) % 3 == 1) wins++;
else losses++;
我需要确切地知道您使用哪种语言将其变成严格的单行...
对于 JavaScript(或其他具有奇怪模数的语言),请使用:
if (a == b) ties++;
else if ((a - b + 3) % 3 == 1) wins++;
else losses++;
关于math - 剪刀石头布。使用数学确定输赢/平局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11377117/