% tic-tac-toe PFS March 2007 % initialization clear clc close all board = zeros(3,3); % draw a board figure plot([.5 3.5],[-1.5 -1.5 ],'k','linewidth',2); hold on plot([.5 3.5],[-2.5 -2.5 ],'k','linewidth',2) plot([1.5 1.5 ],[-.5 -3.5],'k','linewidth',2) plot([2.5 2.5 ],[-.5 -3.5],'k','linewidth',2) hold off axis off % get first move move = input('enter player 1 move [r,c] '); r = move(1); c = move(2); board(r,c) = 1; text(c,-r,'X','horizontalalignment',... 'center','fontsize',20) % start loop with second player for turn = 1:4 % player 2 next move = input('enter player 2 move [r,c] '); r = move(1); c = move(2); board(r,c) = -1; text(c,-r,'O','horizontalalignment',... 'center','fontsize',20) % check for victory by O result = [ sum(board), sum(board') ]; result(7) = board(1,1) + board(2,2) + board(3,3); result(8) = board(1,3) + board(2,2) + board(3,1); if any(result == -3) disp('player 2 wins!!') break end % repeat for player 1 move = input('enter player 1 move [r,c] '); r = move(1); c = move(2); board(r,c) = 1; text(c,-r,'X','horizontalalignment',... 'center','fontsize',20) % check for victory by X result = [ sum(board), sum(board') ]; result(7) = board(1,1) + board(2,2) + board(3,3); result(8) = board(1,3) + board(2,2) + board(3,1); if any(result == 3) disp('player 1 wins!!') break end end % check for draw if all(result ~= 3) & (sum(sum(abs(board))) == 9) disp('Nobody wins') end