首页 > 解决方案 > 确定下一个演奏者

问题描述

我有这个挑战:

两个玩家——“黑”和“白”玩游戏。游戏由几个回合组成。如果玩家赢得一回合,他必须在下一回合再次移动。如果一名玩家输掉一回合,另一名玩家将在下一回合移动。考虑到谁在上一轮打了他的回合,以及他是否赢了,决定谁在这个回合打。

编写一个whoseMove函数,将 2 个参数作为输入并返回黑色或白色。

这个怎么做?

标签: php

解决方案


第一个论点(谁在最后一回合玩?)是:

  • “黑色的”
  • “白色的”

第二个论点(那个玩家赢了吗?)是:

  • true
  • false

所以有4种可能。

在第二个参数是 的情况下true,您可以只返回第一个参数中给出的播放器。因此,这涉及 4 种可能性中的 2 种。在另一种情况下,您需要交换颜色。

您可以使用三元运算符来执行该逻辑:

function whoseMove($player, $didWin) {
    return $didWin ? $player : ($player == "black" ? "white" : "black");
}

if ... elseif 写的更冗长,但更具可读性:

function whoseMove($player, $didWin) {
    if ($didWin) {
        return $player;
    } else if ($player == "black") {
        return "white";
    } else {
        return "black";
    }
}

推荐阅读