$b{$_}=$_ for 1..9;while(@c=sort{rand>.5}keys%b){$a[delete$b{pop@c}]=($c =!$c)?X:O;$_="123456789147258369159357";s#(.)(.)(.)#$p=$& if$a[$1]eq$a[$ 2]&&$a[$1]eq$a[$3]&&$a[$1]#eg;printf"%s%s\e[m%s",$p=~/$_/?"\e[7m":"",$_? $a[$_]||".":"\ec",$_%3?$":$/for 0..9;$p?exit:select$q,$q,$q,.1}