⍝ How about a Nice Game of Chess? ⎕SE.FontObj←'APL385 Unicode' 30 ChessPieces←↑'♔♕♖♗♘♙' '♚♛♜♝♞♟' ChessPieces Officers←3 5 4 2 1 4 5 3 ⋄ Pawns←6 ChessPieces[1;Officers] White Black←1 2 ix←Black White∘.,Officers,8⍴Pawns ix Pieces←4 8⍴ChessPieces[0 ¯8⌽ix] Pieces Board←(2⌽4/1 0)⍀Pieces Board Board+.='♙' 'Chess' ⎕WC 'Form' 'Uni-Chess Beta'(40 20)(323 381)'Pixel' 'Chess' ⎕WS 'Font' 'Arial Unicode MS' 30 'Chess.Board' ⎕WC 'Grid' Board (0 0) Chess.Size Chess.Board.(TitleWidth CellWidths←60 40) Chess.Board.ColTitles←,¨'ΑΒΓΔΕΖΗΘ' Chess.Board.BCol←(192 192 192)(127 127 127) Chess.Board.CellTypes←(⍳8)⌽8 8⍴2 1 Chess.Board.RowTitles←,¨⎕UCS 8543+⍳8 ⍝ Greek/Roman Chess +/Chess.Board.Values='♜' b←,Chess.Board.Values b u←∪b u f←+/u∘.=b f (u,[1.5]f)[⍒f;] data←⍉1 0↓(u,[1.5]f)[⍒f;] ⍝ Now Demo PieChart 'XL' ⎕WC 'OleClient' 'Excel.Application' XL.Application.Visible←1 wb←XL.Workbooks.Add ⍬ XL.ActiveSheet.Range[⊂'A1:H8'].Value2←,¨Chess.Board.Values XL.ActiveSheet.Columns[⍳8].AutoFit Interior←(⌷XL.ActiveSheet.Range[⊂'A1:H8']).Interior Interior.Color←,256⊥¨(Chess.Board.(BCol[CellTypes])) Chess.Board.(Values[5 7;4]←Values[7 5;4]) wb.Sheets[2].Range[⊂'A1:H8'].Value2←,¨Chess.Board.Values Chess.Board.(Values[(3 3)(1 2)]←Values[(1 2)(3 3)]) wb.Sheets[3].Range[⊂'A1:H8'].Value2←,¨Chess.Board.Values XL.Sheets[2 3].(Columns[⍳8]).AutoFit wb.(⌷Sheets).Name wb.(⌷Sheets).Name←'Begin' 'PawnToQ5' 'KnightToQB3' ]disp wb.Sheets['PawnToQ5' 'KnightToQB3'].(Range[⊂'C3:D5']).Value2 ]disp wb.(⌷Sheets).UsedRange.(↑¨Value2) XL.Workbooks[1].(Close Saved←1) XL.Quit