Control the 50x50 grid below using simplified K-like commands.
The grid state is represented by the variable G
(a list of 2500 integers, 0 or 1).
Example commands:
G : 0
(Clear grid)G : 1
(Fill grid)G @ 0 : 1
(Turn on cell at index 0)G @ (!10) : 1
(Turn on first 10 cells - demonstrates ! operator)G @ (100 + !50) : 1
(Turn on cells 100-149 - demonstrates + operator)G @ (50 * !50) : 1
(Turn on first column - demonstrates * operator)G @ (!2500) : (!2500) % 2
(Alternating vertical columns - demonstrates % operator)G @ (!2500) : ((!2500) % 50) < 25
(Left half filled - demonstrates < operator)G @ (!2500) : ((!2500) % 50) > 25
(Right half filled - demonstrates > operator)G @ (!2500) : ((!2500) % 50) = 25
(Middle column - demonstrates = operator)G @ (50 * !50 + 25) : 1
(Vertical line in middle - demonstrates row/col math)G @ (!50 + 25 * 50) : 1
(Horizontal line in middle - demonstrates row/col math)G @ (50 * !50 + !50) : 1
(Diagonal line from top-left - demonstrates row/col math)G @ (50 * !50 + (49 - !50)) : 1
(Diagonal line from top-right - demonstrates - operator)G @ (!2500) : ((!2500) / 50 + (!2500) % 50) % 2
(Checkerboard pattern - demonstrates / and % operators)G @ (!25) : ~(!25)
(First cell 1, rest 0 - demonstrates ~ not operator)G @ (!25) : |(!25)
(Reverse sequence - demonstrates | reverse operator)G @ (!25) : $(!25)
(Rotate sequence - demonstrates $ rotate operator)G @ (!25) : #(!25)
(Reshape sequence - demonstrates # reshape operator)G @ (!25) : ~((!25) / 5 + (!25) % 5) % 2
(Inverted checkerboard - demonstrates ~ with math)G @ (!25) : |((!25) / 5 + (!25) % 5) % 2
(Flipped checkerboard - demonstrates | with math)G @ (!25) : $((!25) / 5 + (!25) % 5) % 2
(Rotated checkerboard - demonstrates $ with math)G @ (!25) : #((!25) % 2)
(Alternating columns reshaped - demonstrates # with math)