O jogo do quadrado mágico

Há dois jogadores, Alice e Bob, cada um com uma grade de 3 por 3. Um árbitro diz a Alice para preencher uma determinada linha da grade (por exemplo, a segunda linha), colocando 1 ou 0 em cada casa, de modo que a soma dos números nessa linha seja ímpar. O árbitro diz a Bob para preencher uma coluna da grade (por exemplo, a primeira coluna), colocando 1 ou 0 em cada casa, de modo que a soma dos números nessa coluna seja par.

Alice e Bob vencem o jogo se os números de Alice resultarem em uma soma ímpar, os de Bob resultarem em uma soma par e (o mais importante) ambos tiverem escrito o mesmo número na única casa onde a linha e a coluna deles se cruzam.

Exemplos

magicSquareGame([2, "100"], [1, "101"]) ➞ false

magicSquareGame([2, "001"], [1, "101"]) ➞ true

magicSquareGame([3, "111"], [2, "011"]) ➞ true

magicSquareGame([1, "010"], [3, "101"]) ➞ false

// Two arrays, Alice [row, "her choice"], Bob [column, "his choice"]

Observações

  • Consulte o artigo na aba de recursos para ver os dois primeiros exemplos em ação.
  • A linha de Alice é sempre ímpar, e a coluna de Bob é sempre par.