Row, Column, Diagonal, Block
CJam, 13 12 unique characters, N = 5
"row"
cd;"a
oaiaa
l"aa;
"blk"
As straight forward as it gets
UPDATE : Converted space to a
(no-op in this case) as pointed out by Runner112
Try it online here
Bash, 19 unique characters, N = 19
trap echo\ row exit
t=t trap exit
t=t echo blk
exit
=
t e
c
e h
c o
h
o d
i
c a
o
l
- The first row is
trap echo\ row exit
. This causesecho row
to be executed when the script exits (just the first line) - The first column is
ttt=t echo col
- The diagonal is
t=tt echo dia
- The full block works by canceling the EXIT handler set up in the first line, then
echo blk
then exits.
><>, 14 unique characters, N = 10
"wor"\ooo;
"
l a k
o i l
c db
" "
o oo
o o o
o o o
; ; ;
Pretty straightforward in a 2D language. The only tricky part is that we need the \
to distinguish between row
and blk
.