How to use the numjs.rot90 function in numjs

To help you get started, we’ve selected a few numjs examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github grimmer0125 / alphago-zero-tictactoe-js / src / tictactoe / TicTacToeGame.js View on Github external
getSymmetries(boardNdArray, pi) {
    if (pi.length !== this.n ** 2 + 1) {
      throw 'not valid pi for Symmetries';
    }

    // Python: pi[:-1]. Remove the last one
    const pi_copy = pi.slice();
    pi_copy.pop();
    const pi_board = nj.reshape(pi_copy, [this.n, this.n]);
    const l = [];

    for (let i = 1; i < 5; i++) {
      for (const j of [true, false]) {
        let newB = nj.rot90(boardNdArray, i);
        let newPi = nj.rot90(pi_board, i);
        if (j) {
          // Python:newB = np.fliplr(newB)
          newB = nj.flip(newB, 1);
          newPi = nj.flip(newPi, 1);
        }
        // Python:
        // p: ordinary 1d array. after reshape
        //         >>> y2
        // array([[3, 2, 1],
        //        [6, 5, 4],
        //        [9, 8, 7]])
        // >>> y2.ravel() ~ numjy's flatten
        // array([3, 2, 1, 6, 5, 4, 9, 8, 7]). ndarray type
        // after list
        // [3, 2, 1, 6, 5, 4, 9, 8, 7] !!. list type
github grimmer0125 / alphago-zero-tictactoe-js / src / tictactoe / TicTacToeGame.js View on Github external
getSymmetries(boardNdArray, pi) {
    if (pi.length !== this.n ** 2 + 1) {
      throw 'not valid pi for Symmetries';
    }

    // Python: pi[:-1]. Remove the last one
    const pi_copy = pi.slice();
    pi_copy.pop();
    const pi_board = nj.reshape(pi_copy, [this.n, this.n]);
    const l = [];

    for (let i = 1; i < 5; i++) {
      for (const j of [true, false]) {
        let newB = nj.rot90(boardNdArray, i);
        let newPi = nj.rot90(pi_board, i);
        if (j) {
          // Python:newB = np.fliplr(newB)
          newB = nj.flip(newB, 1);
          newPi = nj.flip(newPi, 1);
        }
        // Python:
        // p: ordinary 1d array. after reshape
        //         >>> y2
        // array([[3, 2, 1],
        //        [6, 5, 4],
        //        [9, 8, 7]])
        // >>> y2.ravel() ~ numjy's flatten
        // array([3, 2, 1, 6, 5, 4, 9, 8, 7]). ndarray type
        // after list
        // [3, 2, 1, 6, 5, 4, 9, 8, 7] !!. list type
        // + [pi[-1] (e.g. [33])