4 added 23 characters in body
3:       % Push [1 2 3]
g        % Convert to logical. Gives [true true true]
&+       % Matrix of all pairs of additions. Gives a 3×3 matrix, which represents
% the board in its initial state, namely all cells contain 2. This value
% means "cell not used yet". 1 will represent "cell marked by user 1",
% and 0 will represent "cell marked by user 2"
XI       % Copy into clipboard I
x        % Delete
"        % Implicit input: array with moves. For each move
I      %   Push current board state
X@     %   Push iteration index (starting at 1), that is, current round number
o      %   Modulo 2: gives 1 or 0. This represents the current user
XK     %   Copy into clipboard K
@      %   Push current move ((that is, cell index)
(      %   Write user identifier (1 or 0) into that cell. Cells are indexed in
%   linear,linearly columnin column-major order. So the board is transposed compared to
%   to that in the challenge, but that is unimportant
XI     %   Copy updated board into clipboard I
t!     %   Duplicate and transpose
y      %   Duplicate from below: push copy of board
Xd     %   Extract main diagonal as a 3×1 vector
y      %   Duplicate from below: push copy of transposed board
PXd    %   Flip vertically and extract main diagonal. This is the anti-diagonal
%   of the board
&h     %   Concatenate stack horizontally. This concatenates the board (3×3),
%   transposed board (3×3), main diagonal (3×1 vector) and anti-diagonal
%   (3×1) into an 3×8 matrix
K=     %   Push current user identifier. Test for equality with each entry of the
%   3×8 matrix
A      %   For each column, this gives true if all its entries are true. Note
%   that the first three columns in the 3×8 matrix are the board columns;
%   the next three are the board rows; and the last two columns are the
%   main diagonal and anti-diagonal. The result is a 1×8 vector
a      %   True if any entry is true, meaning the current user has won
?      %   If true
K    %     Push current user identifier
X@   %     Push current round number
.    %     Break for loop
%   Implicit end
% Implicit end
% Implicit display

3:       % Push [1 2 3]
g        % Convert to logical. Gives [true true true]
&+       % Matrix of all pairs of additions. Gives a 3×3 matrix, which represents
% the board in its initial state, namely all cells contain 2. This value
% means "cell not used yet". 1 will represent "cell marked by user 1",
% and 0 will represent "cell marked by user 2"
XI       % Copy into clipboard I
x        % Delete
"        % Implicit input: array with moves. For each move
I      %   Push current board state
X@     %   Push iteration index (starting at 1), that is, current round number
o      %   Modulo 2: gives 1 or 0. This represents the current user
XK     %   Copy into clipboard K
@      %   Push current move
(      %   Write user identifier (1 or 0) into that cell. Cells are indexed in
%   linear, column major order. So the board is transposed compared to
%   that in the challenge, but that is unimportant
XI     %   Copy updated board into clipboard I
t!     %   Duplicate and transpose
y      %   Duplicate from below: push copy of board
Xd     %   Extract main diagonal as a 3×1 vector
y      %   Duplicate from below: push copy of transposed board
PXd    %   Flip vertically and extract main diagonal. This is the anti-diagonal
%   of the board
&h     %   Concatenate stack horizontally. This concatenates the board (3×3),
%   transposed board (3×3), main diagonal (3×1 vector) and anti-diagonal
%   (3×1) into an 3×8 matrix
K=     %   Push current user identifier. Test for equality with each entry of the
%   3×8 matrix
A      %   For each column, this gives true if all its entries are true. Note
%   that the first three columns in the 3×8 matrix are the board columns;
%   the next three are the board rows; and the last two columns are the
%   main diagonal and anti-diagonal. The result is a 1×8 vector
a      %   True if any entry is true, meaning the current user has won
?      %   If true
K    %     Push current user identifier
X@   %     Push current round number
.    %     Break for loop
%   Implicit end
% Implicit end
% Implicit display

3:       % Push [1 2 3]
g        % Convert to logical. Gives [true true true]
&+       % Matrix of all pairs of additions. Gives a 3×3 matrix, which represents
% the board in its initial state, namely all cells contain 2. This value
% means "cell not used yet". 1 will represent "cell marked by user 1",
% and 0 will represent "cell marked by user 2"
XI       % Copy into clipboard I
x        % Delete
"        % Implicit input: array with moves. For each move
I      %   Push current board state
X@     %   Push iteration index (starting at 1), that is, current round number
o      %   Modulo 2: gives 1 or 0. This represents the current user
XK     %   Copy into clipboard K
@      %   Push current move ((that is, cell index)
(      %   Write user identifier (1 or 0) into that cell. Cells are indexed
%   linearly in column-major order. So the board is transposed compared
%   to that in the challenge, but that is unimportant
XI     %   Copy updated board into clipboard I
t!     %   Duplicate and transpose
y      %   Duplicate from below: push copy of board
Xd     %   Extract main diagonal as a 3×1 vector
y      %   Duplicate from below: push copy of transposed board
PXd    %   Flip vertically and extract main diagonal. This is the anti-diagonal
%   of the board
&h     %   Concatenate stack horizontally. This concatenates the board (3×3),
%   transposed board (3×3), main diagonal (3×1 vector) and anti-diagonal
%   (3×1) into an 3×8 matrix
K=     %   Push current user identifier. Test for equality with each entry of the
%   3×8 matrix
A      %   For each column, this gives true if all its entries are true. Note
%   that the first three columns in the 3×8 matrix are the board columns;
%   the next three are the board rows; and the last two columns are the
%   main diagonal and anti-diagonal. The result is a 1×8 vector
a      %   True if any entry is true, meaning the current user has won
?      %   If true
K    %     Push current user identifier
X@   %     Push current round number
.    %     Break for loop
%   Implicit end
% Implicit end
% Implicit display

3 added 2587 characters in body
3:       % PusnPush [1 2 3]
g        % Convert to logical. Gives [true true true]
&+       % Matrix of all pairs of additions. Gives a 3×3 matrix, which represents
% represents the board in its initial state, nameltnamely all cells
contain 2. This value
% contain 2. This value% means "cell not used yet". Value 1 will
% represent "cell marked by user 1", and
value 0 will represent
% and 0 will %represent "cell marked by user 2"
XI       % Copy into clipboard I
x        % Delete
"        % Implicit input: array with moves. For each move
I      %   Push current board state
X@     %   Push iteration index, (starting at 1. This represents the
%), that is, current round number
o      %   Modulo 2: gives 1 or 0. This represents the current user
XK     %   Copy into clipboard K
@      %   Push current move
(      %   Write user identifier (1 or 0) into that cell. Cells are
indexed in
%  % indexed in linear, column major order. So the board is
transposed compared to
%   transposed% compared to that in the challenge, but that is
%   unimportant
XI     %   Copy updated board into clipboard I
t!     %   Duplicate and transpose
y      %   Duplicate from below: push copy of board
Xd     %   Extract main diagonal as a 3×1 vector
y      %   Duplicate from below: push copy of transposed board
PXd    %   Flip vertically and extract main diagonal. This is the anti-diagonal
%   anti-diagonal of the board
&h     %   Concatenate stack horizontally. This concatenates the
board (3×3),
%  % board (3×3), transposed board (3×3), main diagonal (as a
3×1 vector) and anti-diagonal
%   3×1 vector)% and anti-diagonal (also 3×1) into an 3×8 matrix
K=     %   Push current user identifier. Test for equality with each
entry of the
%   entry% of the 3×8 matrix
A      %   For each column, this gives true if all entries inits the
entries are true. Note
%   column are% true. Note that the first three columns in the
%   3×8 matrix are the board columns;
the next three are the
%   the next %three are the board rows; the seventhand columnthe islast thetwo maincolumns diagonal,are andthe
%   the eighthmain isdiagonal theand anti-diagonal. The result is a 1×8 vector
a      %   True if any entry is true, meaning the current user has won
?      %   If true
K    %     Push current user identifier
X@   %     Push current round number
.    %     Break for loop
%   Implicit end
% Implicit end
% Implicit display

3:       % Pusn [1 2 3]
g        % Convert to logical. Gives [true true true]
&+       % Matrix of all pairs of additions. Gives a 3×3 matrix, which
% represents the board in its initial state, namelt all cells
% contain 2. This value means "cell not used yet". Value 1 will
% represent "cell marked by user 1", and value 0 will represent
% "cell marked by user 2"
XI       % Copy into clipboard I
x        % Delete
"        % Implicit input: array with moves. For each move
I      %   Push current board state
X@     %   Push iteration index, starting at 1. This represents the
%   current round number
o      %   Modulo 2: gives 1 or 0. This represents the current user
XK     %   Copy into clipboard K
@      %   Push current move
(      %   Write user identifier (1 or 0) into that cell. Cells are
%   indexed in linear, column major order. So the board is
%   transposed compared to that in the challenge, but that is
%   unimportant
XI     %   Copy updated board into clipboard I
t!     %   Duplicate and transpose
y      %   Duplicate from below: push copy of board
Xd     %   Extract main diagonal as a 3×1 vector
y      %   Duplicate from below: push copy of transposed board
PXd    %   Flip vertically and extract main diagonal. This is the
%   anti-diagonal of the board
&h     %   Concatenate stack horizontally. This concatenates the
%   board (3×3), transposed board (3×3), main diagonal (as a
%   3×1 vector) and anti-diagonal (also 3×1) into an 3×8 matrix
K=     %   Push current user identifier. Test for equality with each
%   entry of the 3×8 matrix
A      %   For each column, this gives true if all entries in the
%   column are true. Note that the first three columns in the
%   3×8 matrix are the board columns; the next three are the
%   board rows; the seventh column is the main diagonal, and
%   the eighth is the anti-diagonal. The result is a 1×8 vector
a      %   True if any entry is true, meaning the current user has won
?      %   If true
K    %     Push current user identifier
X@   %     Push current round number
.    %     Break for loop
%   Implicit end
% Implicit end
% Implicit display

3:       % Push [1 2 3]
g        % Convert to logical. Gives [true true true]
&+       % Matrix of all pairs of additions. Gives a 3×3 matrix, which represents
% the board in its initial state, namely all cells contain 2. This value
% means "cell not used yet". 1 will represent "cell marked by user 1",
% and 0 will represent "cell marked by user 2"
XI       % Copy into clipboard I
x        % Delete
"        % Implicit input: array with moves. For each move
I      %   Push current board state
X@     %   Push iteration index (starting at 1), that is, current round number
o      %   Modulo 2: gives 1 or 0. This represents the current user
XK     %   Copy into clipboard K
@      %   Push current move
(      %   Write user identifier (1 or 0) into that cell. Cells are indexed in
%   linear, column major order. So the board is transposed compared to
%   that in the challenge, but that is unimportant
XI     %   Copy updated board into clipboard I
t!     %   Duplicate and transpose
y      %   Duplicate from below: push copy of board
Xd     %   Extract main diagonal as a 3×1 vector
y      %   Duplicate from below: push copy of transposed board
PXd    %   Flip vertically and extract main diagonal. This is the anti-diagonal
%   of the board
&h     %   Concatenate stack horizontally. This concatenates the board (3×3),
%   transposed board (3×3), main diagonal (3×1 vector) and anti-diagonal
%   (3×1) into an 3×8 matrix
K=     %   Push current user identifier. Test for equality with each entry of the
%   3×8 matrix
A      %   For each column, this gives true if all its entries are true. Note
%   that the first three columns in the 3×8 matrix are the board columns;
%   the next three are the board rows; and the last two columns are the
%   main diagonal and anti-diagonal. The result is a 1×8 vector
a      %   True if any entry is true, meaning the current user has won
?      %   If true
K    %     Push current user identifier
X@   %     Push current round number
.    %     Break for loop
%   Implicit end
% Implicit end
% Implicit display

2 added 2587 characters in body

### Explanation

3:       % Pusn [1 2 3]
g        % Convert to logical. Gives [true true true]
&+       % Matrix of all pairs of additions. Gives a 3×3 matrix, which
% represents the board in its initial state, namelt all cells
% contain 2. This value means "cell not used yet". Value 1 will
% represent "cell marked by user 1", and value 0 will represent
% "cell marked by user 2"
XI       % Copy into clipboard I
x        % Delete
"        % Implicit input: array with moves. For each move
I      %   Push current board state
X@     %   Push iteration index, starting at 1. This represents the
%   current round number
o      %   Modulo 2: gives 1 or 0. This represents the current user
XK     %   Copy into clipboard K
@      %   Push current move
(      %   Write user identifier (1 or 0) into that cell. Cells are
%   indexed in linear, column major order. So the board is
%   transposed compared to that in the challenge, but that is
%   unimportant
XI     %   Copy updated board into clipboard I
t!     %   Duplicate and transpose
y      %   Duplicate from below: push copy of board
Xd     %   Extract main diagonal as a 3×1 vector
y      %   Duplicate from below: push copy of transposed board
PXd    %   Flip vertically and extract main diagonal. This is the
%   anti-diagonal of the board
&h     %   Concatenate stack horizontally. This concatenates the
%   board (3×3), transposed board (3×3), main diagonal (as a
%   3×1 vector) and anti-diagonal (also 3×1) into an 3×8 matrix
K=     %   Push current user identifier. Test for equality with each
%   entry of the 3×8 matrix
A      %   For each column, this gives true if all entries in the
%   column are true. Note that the first three columns in the
%   3×8 matrix are the board columns; the next three are the
%   board rows; the seventh column is the main diagonal, and
%   the eighth is the anti-diagonal. The result is a 1×8 vector
a      %   True if any entry is true, meaning the current user has won
?      %   If true
K    %     Push current user identifier
X@   %     Push current round number
.    %     Break for loop
%   Implicit end
% Implicit end
% Implicit display


### Explanation

3:       % Pusn [1 2 3]
g        % Convert to logical. Gives [true true true]
&+       % Matrix of all pairs of additions. Gives a 3×3 matrix, which
% represents the board in its initial state, namelt all cells
% contain 2. This value means "cell not used yet". Value 1 will
% represent "cell marked by user 1", and value 0 will represent
% "cell marked by user 2"
XI       % Copy into clipboard I
x        % Delete
"        % Implicit input: array with moves. For each move
I      %   Push current board state
X@     %   Push iteration index, starting at 1. This represents the
%   current round number
o      %   Modulo 2: gives 1 or 0. This represents the current user
XK     %   Copy into clipboard K
@      %   Push current move
(      %   Write user identifier (1 or 0) into that cell. Cells are
%   indexed in linear, column major order. So the board is
%   transposed compared to that in the challenge, but that is
%   unimportant
XI     %   Copy updated board into clipboard I
t!     %   Duplicate and transpose
y      %   Duplicate from below: push copy of board
Xd     %   Extract main diagonal as a 3×1 vector
y      %   Duplicate from below: push copy of transposed board
PXd    %   Flip vertically and extract main diagonal. This is the
%   anti-diagonal of the board
&h     %   Concatenate stack horizontally. This concatenates the
%   board (3×3), transposed board (3×3), main diagonal (as a
%   3×1 vector) and anti-diagonal (also 3×1) into an 3×8 matrix
K=     %   Push current user identifier. Test for equality with each
%   entry of the 3×8 matrix
A      %   For each column, this gives true if all entries in the
%   column are true. Note that the first three columns in the
%   3×8 matrix are the board columns; the next three are the
%   board rows; the seventh column is the main diagonal, and
%   the eighth is the anti-diagonal. The result is a 1×8 vector
a      %   True if any entry is true, meaning the current user has won
?      %   If true
K    %     Push current user identifier
X@   %     Push current round number
.    %     Break for loop
%   Implicit end
% Implicit end
% Implicit display

1