Tic Tac Toe isTerminal Function

Benchmark created by Sébastien on


Setup

var isTerminal = function(B) {
            if (((B[0][0] === B[1][1]) && (B[0][0] === B[2][2])) ||
                ((B[0][2] === B[1][1]) && (B[0][2] === B[2][0]))) {
                if (B[1][1] !== 0)
                    return B[1][1];
            }
            for (var i = B.length - 1; i >= 0; i--) {
                if ((B[i][0] === B[i][1]) && (B[i][0] === B[i][2])) {
                    if (B[i][0] !== 0)
                        return B[i][0];
                }
                if ((B[0][i] === B[1][i]) && (B[0][i] === B[2][i])) {
                    if (B[0][i] !== 0)
                        return B[0][i];
                }
            }
            return 0;
        };
    
    var isTerminal2 = function(B) {
            if (((B[0] === B[1+3*1]) && (B[0] === B[2 + 3*2])) ||
                ((B[0 + 2*3] === B[1 + 3*1]) && (B[0 + 3*2] === B[2 + 3*0]))) {
                if (B[1 + 3*1] !== 0)
                    return B[1+ 3*1];
            }
            for (var i = 3 - 1; i >= 0; i--) {
                if ((B[i + 3*0] === B[i + 3*1]) && (B[i + 3*0] === B[i + 3*2])) {
                    if (B[i + 3*0] !== 0)
                        return B[i + 3*0];
                }
                if ((B[0 + 3*i] === B[1 + 3*i]) && (B[0 + 3*i] === B[2 + 3*i])) {
                    if (B[0 + 3*i] !== 0)
                        return B[0 + 3*i];
                }
            }
            return 0;
        };

Test runner

Ready to run.

Testing in
TestOps/sec
x
isTerminal([0,0,0],[0,1,0],[0,0,0]);
ready
test2
isTerminal2([0,0,0,0,1,0,0,0,0]);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.

  • Revision 1: published by Sébastien on