Moving only one player per turn.

I have a monopoly style game where one player has their turn and then another. I can’t seem to get just one player to move though at a time. They are both moving together. See code below:
Character Script:

public class CharacterScript : MonoBehaviour
{
    public Path currentPath;
    public int squarePosition;
    public int squares;
    bool isMoving;

    private GameEngine controller;

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape) && !isMoving)
        {
            squares = DiceNumberTextScript.diceNumber;
        }
        if (GameObject.FindGameObjectWithTag("CriminalPlayer"))
        {
            StartCoroutine(Move());
        }
    }

    IEnumerator Move()
    {
        if (isMoving)
        {
            yield break;
        }
        isMoving = true;

        while (squares > 0)
        {
            Vector3 nextPosition = currentPath.squareList[squarePosition + 1].position;
            while (MoveToNextSquare(nextPosition))
            {
                yield return null;
            }
            yield return new WaitForSeconds(0.1f);
            squares--;
            squarePosition++;

            if (squares == 0)
            {
                yield return new WaitForSeconds(1f);
                ActivateSquarePanel();
            }
        }
        isMoving = false;
    }

    bool MoveToNextSquare(Vector3 goal)
    {
        return goal != (transform.position = Vector3.MoveTowards(transform.position, goal, 4f * Time.deltaTime));
    }
}

Can anyone point me in the right direction? I have been at it for days now.

So there exists a gameObject with the “CriminalPlayer” tag though? If so ,then the if condition which initiates the Move() coroutine on both the players will be true and hence they’ll move simultaneously irrespective of each other.
What if, instead you make a common script with a List where you can store all your players and iterate through that list. Then on each iteration as it is a turn based game, it will move only that particular player.

Ah.
Each player has the same script? Thus during runtime there are two scripts both running at the same time.