joystick.MakePlayerMove()
, вряд ли юнити сам напишет скрипт управления за автора)) squares - это корень, а не квадрат, вы не то проверяете.
не тот результат при n = {1, 2, 2} s={1, 4, 8}
вариант аллоцирует лишнюю память, и делает лишние вычисления, если у вас в первом же элементе нет совпадений, то остальные вычисления не имеют смысла
numbers[i]==sqrt(squares[i])
. Linq сам по себе выделяет много чего лишнего и медленно работает. Мой вариант оптимален только по количеству нажатий клавиатуры. bool TestForSquares(IEnumerable<int> numbers, IEnumerable<int> squares) => numbers.Count == squares.Count && numbers.Select(x=>x*x).All(x=>squares.Contains(x));