Nine Board Tic Tac Toe
Click in a clear square to mark that square.
x
's turn to play.
white
black
0
0
Lambda
Library
cell(1,1,1,1,blank) cell(1,1,1,2,blank) cell(1,1,1,3,blank) cell(1,1,2,1,blank) cell(1,1,2,2,blank) cell(1,1,2,3,blank) cell(1,1,3,1,blank) cell(1,1,3,2,blank) cell(1,1,3,3,blank) cell(1,2,1,1,blank) cell(1,2,1,2,blank) cell(1,2,1,3,blank) cell(1,2,2,1,blank) cell(1,2,2,2,blank) cell(1,2,2,3,blank) cell(1,2,3,1,blank) cell(1,2,3,2,blank) cell(1,2,3,3,blank) cell(1,3,1,1,blank) cell(1,3,1,2,blank) cell(1,3,1,3,blank) cell(1,3,2,1,blank) cell(1,3,2,2,blank) cell(1,3,2,3,blank) cell(1,3,3,1,blank) cell(1,3,3,2,blank) cell(1,3,3,3,blank) cell(2,1,1,1,blank) cell(2,1,1,2,blank) cell(2,1,1,3,blank) cell(2,1,2,1,blank) cell(2,1,2,2,blank) cell(2,1,2,3,blank) cell(2,1,3,1,blank) cell(2,1,3,2,blank) cell(2,1,3,3,blank) cell(2,2,1,1,blank) cell(2,2,1,2,blank) cell(2,2,1,3,blank) cell(2,2,2,1,blank) cell(2,2,2,2,blank) cell(2,2,2,3,blank) cell(2,2,3,1,blank) cell(2,2,3,2,blank) cell(2,2,3,3,blank) cell(2,3,1,1,blank) cell(2,3,1,2,blank) cell(2,3,1,3,blank) cell(2,3,2,1,blank) cell(2,3,2,2,blank) cell(2,3,2,3,blank) cell(2,3,3,1,blank) cell(2,3,3,2,blank) cell(2,3,3,3,blank) cell(3,1,1,1,blank) cell(3,1,1,2,blank) cell(3,1,1,3,blank) cell(3,1,2,1,blank) cell(3,1,2,2,blank) cell(3,1,2,3,blank) cell(3,1,3,1,blank) cell(3,1,3,2,blank) cell(3,1,3,3,blank) cell(3,2,1,1,blank) cell(3,2,1,2,blank) cell(3,2,1,3,blank) cell(3,2,2,1,blank) cell(3,2,2,2,blank) cell(3,2,2,3,blank) cell(3,2,3,1,blank) cell(3,2,3,2,blank) cell(3,2,3,3,blank) cell(3,3,1,1,blank) cell(3,3,1,2,blank) cell(3,3,1,3,blank) cell(3,3,2,1,blank) cell(3,3,2,2,blank) cell(3,3,2,3,blank) cell(3,3,3,1,blank) cell(3,3,3,2,blank) cell(3,3,3,3,blank) current(2,2) control(x)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% Basic Rules %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% click(mark(I,J,M,N)) :: mark(I,J,M,N) goal(white,100) :- line(x) & ~line(o) goal(white,50) :- line(x) & line(o) goal(white,50) :- ~line(x) & ~line(o) goal(white,0) :- ~line(x) & line(o) goal(black,100) :- ~line(x) & line(o) goal(black,50) :- line(x) & line(o) goal(black,50) :- ~line(x) & ~line(o) goal(black,0) :- line(x) & ~line(o) terminal :- line(x) terminal :- line(o) terminal :- ~open line(X) :- row(I,J,M,X) line(X) :- col(I,J,N,X) line(X) :- diag(I,J,X) row(I,J,M,X) :- cell(I,J,M,1,X) & cell(I,J,M,2,X) & cell(I,J,M,3,X) col(I,J,N,X) :- cell(I,J,1,N,X) & cell(I,J,2,N,X) & cell(I,J,3,N,X) diag(I,J,X) :- cell(I,J,1,1,X) & cell(I,J,2,2,X) & cell(I,J,3,3,X) diag(I,J,X) :- cell(I,J,1,3,X) & cell(I,J,2,2,X) & cell(I,J,3,1,X) open :- current(I,J) & cell(I,J,M,N,blank) index(1) index(2) index(3) innerhtml(mark(I,J,M,N)," ") :- cell(M,N,blank) innerhtml(mark(I,J,M,N),W) :- cell(I,J,M,N,W) & distinct(W,blank) innerhtml(whitereward,N) :- goal(white,N) innerhtml(blackreward,N) :- goal(black,N) innerhtml(control,W) :- control(W) attribute(mark(I,J,M,N),"onclick","modbutton(this)") :- active(I,J,M,N) attribute(mark(I,J,M,N),"onclick","true") :- cell(I,J,M,N,W) & ~active(I,J,M,N) style(board(I,J),"backgroundColor","#ffffff") :- current(I,J) style(board(I,J),"backgroundColor","#dddddd") :- index(I) & index(J) & ~current(I,J) style(mark(I,J,M,N),"cursor","pointer") :- active(I,J,M,N) style(mark(I,J,M,N),"cursor","text") :- cell(I,J,M,N,W) & ~active(I,J,M,N) style(rewards,"display","") :- terminal active(I,J,M,N) :- ~terminal & current(I,J) & cell(I,J,M,N,blank) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% End of Rules %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%