http://www.perlmonks.org?node_id=362029


in reply to (Golf) Tic Tac Toe

Before starting to think, let's just rewrite it to 139:
s//123 456 789 z147,258,369,159,357/;$p=X;sub d{/z/;print$`.$p;@_&&die@_} {d;1until<>=~/\d/&&s/$&/$p/g;/$p{3}/?d$p:/\d/?$p^=v23:d Tie;redo}

Replies are listed 'Best First'.
Re^2: (Golf) Tic Tac Toe
by thospel (Hermit) on Jun 07, 2004 at 16:17 UTC
    (parent node was me too, just forgot to log in)

    The sub isn't useful either. 124:

    s//123 456 789 z147,258,369,159,357/;$p=O;{/$p{3}/?die$p:/\d/?$p^=O^X:die Tie;/z/;pri +nt$`.$p;1until<>=~/\d/&&s/$&/$p/g;redo}
    update (shortcircuiting the self reply chain) Currently at 119:
    s//123 456 789 z147,258,369,159,357/;$p=O;{/z/;print$`,$p^=O^X;/(.)\1\1/?die$1:/\d/|| +die Tie;$?=<>until s/$?/$p/g;redo}
    And 118:
    s//123 456 789 z147,258,369,159,357/;{/z/;print$`,$p=$p^h?X:O;/(.)\1\1/?die$1:/\d/||d +ie Tie;$?=<>until s/$?/$p/g;redo}
    Followed by 113:
    s//123 456 789 z147,258,369,159,3570/;$?=/(.)\1\1/?die$1:/\d/?<>:die(Tie)while!s/$?/$ +p/g||print$`x/z/,$p=$p^h?X:O
    Sneakily add a space in the output to get 111:
    s//123 456 7890147,258,369,159,357/;$?=/(.)\1\1/?die$1:/\d/?<>:die(Tie)while!s/$? +/$:/g||print$`x/-/,$:=$:^h?X:O
      Forgot to do the final situation print in that 124, but now it prints the person whose turn is WAS.
      s//123 456 789 z147,258,369,159,357/;$p=O;{/z/;print$`.$p;/$p{3}/?die$p:/\d/?$p^=O^X: +die Tie;1until<>=~/\d/&&s/$&/$p/g;redo}
        Printing flaw fixed, and to 119:
        s//123 456 789 z147,258,369,159,357/;$p=O;{/z/;print$`,$p^=O^X;/(.)\1\1/?die$1:/\d/|| +die Tie;$?=<>until s/$?/$p/g;redo}
        Re^5:
        by Jasper (Chaplain) on Jun 17, 2004 at 16:22 UTC
      Great Hera!

      That's a work of art. Nice job.