Ever thought of playing a Tic Tac Toe with the computer? How about taking it to the next Level and coding the Program by Yourself using MATLAB App Designer. Lets learn it!
Go to the App Designer part and Make a User Interface as shown in the Figure Below

% Properties that correspond to app components
properties (Access = public)
UIFigure matlab.ui.Figure
Button_1 matlab.ui.control.Button
WelcometoTicTacToefromMATLABHelperLabel matlab.ui.control.Label
Button_2 matlab.ui.control.Button
Button_3 matlab.ui.control.Button
Button_4 matlab.ui.control.Button
Button_5 matlab.ui.control.Button
Button_6 matlab.ui.control.Button
Button_7 matlab.ui.control.Button
Button_8 matlab.ui.control.Button
Button_9 matlab.ui.control.Button
NewGameButton matlab.ui.control.Button
end
properties (Access = public)
Player % 1 for Player1, 2 for Player 2
mat % for matrix
end
methods (Access = public)
function won = tictactoe(app,m)
if (m(1,1) == m(1,2) && m(1,1) == m(1,3) && m(1,1) ~= -1)
won = m(1,1);
elseif (m(2,1) == m(2,2) && m(2,1) == m(2,3) && m(2,1) ~= -1)
won = m(2,1);
elseif (m(3,1) == m(3,2) && m(3,1) == m(3,3) && m(3,1) ~= -1)
won = m(3,1);
% Vertical
elseif (m(1,1) == m(2,1) && m(1,1) == m(3,1) && m(3,1) ~= -1)
won = m(1,1);
elseif (m(1,2) == m(2,2) && m(1,2) == m(3,2) && m(1,2) ~= -1)
won = m(1,2);
elseif (m(1,3) == m(2,3) && m(1,3) == m(3,3) && m(1,3) ~= -1)
won = m(1,3);
% Diagonal
elseif (m(1,1) == m(2,2) && m(1,1) == m(3,3) && m(1,1) ~= -1)
won = m(1,1);
elseif (m(1,3) == m(2,2) && m(1,3) == m(3,1) && m(2,2) ~= -1)
won = m(1,3);
% If no more slots are open, it's a tie
elseif ~ismember(m, -1)
won = 0;
else
won = -1;
end
if won == 1
app.WelcometoTicTacToefromMATLABHelperLabel.Text ='Player 1 wins the game';
startupFcn(app)
elseif won == 2
app.WelcometoTicTacToefromMATLABHelperLabel.Text ='Player 2 wins the game';
startupFcn(app)
elseif won == 0
app.WelcometoTicTacToefromMATLABHelperLabel.Text ='The game is tied. Start new game';
end
end
end
methods (Access = private)
% Code that executes after component creation
function startupFcn(app)
app.Button_1.Enable = 'off';
app.Button_2.Enable = 'off';
app.Button_3.Enable = 'off';
app.Button_4.Enable = 'off';
app.Button_5.Enable = 'off';
app.Button_6.Enable = 'off';
app.Button_7.Enable = 'off';
app.Button_8.Enable = 'off';
app.Button_9.Enable = 'off';
end
% Button pushed function: NewGameButton
function NewGameButtonPushed(app, event)
app.Button_1.Enable = 'on';
app.Button_2.Enable = 'on';
app.Button_3.Enable = 'on';
app.Button_4.Enable = 'on';
app.Button_5.Enable = 'on';
app.Button_6.Enable = 'on';
app.Button_7.Enable = 'on';
app.Button_8.Enable = 'on';
app.Button_9.Enable = 'on';
app.Button_1.Text = '-';
app.Button_2.Text = '-';
app.Button_3.Text = '-';
app.Button_4.Text = '-';
app.Button_5.Text = '-';
app.Button_6.Text = '-';
app.Button_7.Text = '-';
app.Button_8.Text = '-';
app.Button_9.Text = '-';
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Player 1 Turn';
app.Player = 1;
app.mat = -1* ones(3,3);
end
% Button pushed function: Button_1
function Button_1Pushed(app, event)
if app.Player == 1
app.Player = 2;
app.Button_1.Text = 'O';
app.mat(1,1) = 1;
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Turn of Player 2';
else
app.Player = 1;
app.Button_1.Text = 'X';
app.mat(1,1) = 2;
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Player 1 Turn';
end
app.Button_1.Enable = 'off';
tictactoe(app,app.mat);
end
% Button pushed function: Button_2
function Button_2Pushed(app, event)
if app.Player == 1
app.Player = 2;
app.Button_2.Text = 'O';
app.mat(1,2) = 1;
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Turn of Player 2';
else
app.Player = 1;
app.Button_2.Text = 'X';
app.mat(1,2) = 2;
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Player 1 Turn';
end
app.Button_2.Enable = 'off';
tictactoe(app,app.mat);
end
% Button pushed function: Button_3
function Button_3Pushed(app, event)
if app.Player == 1
app.Player = 2;
app.Button_3.Text = 'O';
app.mat(1,3) = 1;
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Turn of Player 2';
else
app.Player = 1;
app.Button_3.Text = 'X';
app.mat(1,3) = 2;
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Player 1 Turn';
end
app.Button_3.Enable = 'off';
tictactoe(app,app.mat);
end
% Button pushed function: Button_4
function Button_4Pushed(app, event)
if app.Player == 1
app.Player = 2;
app.Button_4.Text = 'O';
app.mat(2,1) = 1;
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Turn of Player 2';
else
app.Player = 1;
app.Button_4.Text = 'X';
app.mat(2,1) = 2;
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Player 1 Turn';
end
app.Button_4.Enable = 'off';
tictactoe(app,app.mat);
end
% Button pushed function: Button_5
function Button_5Pushed(app, event)
if app.Player == 1
app.Player = 2;
app.Button_5.Text = 'O';
app.mat(2,2) = 1;
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Turn of Player 2';
else
app.Player = 1;
app.Button_5.Text = 'X';
app.mat(2,2) = 2;
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Player 1 Turn';
end
app.Button_5.Enable = 'off';
tictactoe(app,app.mat);
end
% Button pushed function: Button_6
function Button_6Pushed(app, event)
if app.Player == 1
app.Player = 2;
app.Button_6.Text = 'O';
app.mat(2,3) = 1;
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Turn of Player 2';
else
app.Player = 1;
app.Button_6.Text = 'X';
app.mat(2,3) = 2;
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Player 1 Turn';
end
app.Button_6.Enable = 'off';
tictactoe(app,app.mat);
end
% Button pushed function: Button_7
function Button_7Pushed(app, event)
if app.Player == 1
app.Player = 2;
app.Button_7.Text = 'O';
app.mat(3,1) = 1;
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Turn of Player 2';
else
app.Player = 1;
app.Button_7.Text = 'X';
app.mat(3,1) = 2;
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Player 1 Turn';
end
app.Button_7.Enable = 'off';
tictactoe(app,app.mat);
end
% Button pushed function: Button_8
function Button_8Pushed(app, event)
if app.Player == 1
app.Player = 2;
app.Button_8.Text = 'O';
app.mat(3,2) = 1;
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Turn of Player 2';
else
app.Player = 1;
app.Button_8.Text = 'X';
app.mat(3,2) = 2;
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Player 1 Turn';
end
app.Button_8.Enable = 'off';
tictactoe(app,app.mat);
end
% Button pushed function: Button_9
function Button_9Pushed(app, event)
if app.Player == 1
app.Player = 2;
app.Button_9.Text = 'O';
app.mat(3,3) = 1;
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Turn of Player 2';
else
app.Player = 1;
app.Button_9.Text = 'X';
app.mat(3,3) = 2;
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Player 1 Turn';
end
app.Button_9.Enable = 'off';
tictactoe(app,app.mat);
end
end
% App initialization and construction
methods (Access = private)
% Create UIFigure and components
function createComponents(app)
% Create UIFigure
app.UIFigure = uifigure;
app.UIFigure.Position = [100 100 640 480];
app.UIFigure.Name = 'UI Figure';
% Create Button_1
app.Button_1 = uibutton(app.UIFigure, 'push');
app.Button_1.ButtonPushedFcn = createCallbackFcn(app, @Button_1Pushed, true);
app.Button_1.Position = [116 374 43 22];
app.Button_1.Text = '-';
% Create WelcometoTicTacToefromMATLABHelperLabel
app.WelcometoTicTacToefromMATLABHelperLabel = uilabel(app.UIFigure);
app.WelcometoTicTacToefromMATLABHelperLabel.Position = [173 431 296 22];
app.WelcometoTicTacToefromMATLABHelperLabel.Text = 'Welcome to Tic Tac Toe from MATLAB Helper.';
% Create Button_2
app.Button_2 = uibutton(app.UIFigure, 'push');
app.Button_2.ButtonPushedFcn = createCallbackFcn(app, @Button_2Pushed, true);
app.Button_2.Position = [291 374 43 22];
app.Button_2.Text = '-';
% Create Button_3
app.Button_3 = uibutton(app.UIFigure, 'push');
app.Button_3.ButtonPushedFcn = createCallbackFcn(app, @Button_3Pushed, true);
app.Button_3.Position = [455 374 43 22];
app.Button_3.Text = '-';
% Create Button_4
app.Button_4 = uibutton(app.UIFigure, 'push');
app.Button_4.ButtonPushedFcn = createCallbackFcn(app, @Button_4Pushed, true);
app.Button_4.Position = [116 281 43 22];
app.Button_4.Text = '-';
% Create Button_5
app.Button_5 = uibutton(app.UIFigure, 'push');
app.Button_5.ButtonPushedFcn = createCallbackFcn(app, @Button_5Pushed, true);
app.Button_5.Position = [291 281 43 22];
app.Button_5.Text = '-';
% Create Button_6
app.Button_6 = uibutton(app.UIFigure, 'push');
app.Button_6.ButtonPushedFcn = createCallbackFcn(app, @Button_6Pushed, true);
app.Button_6.Position = [455 281 43 22];
app.Button_6.Text = '-';
% Create Button_7
app.Button_7 = uibutton(app.UIFigure, 'push');
app.Button_7.ButtonPushedFcn = createCallbackFcn(app, @Button_7Pushed, true);
app.Button_7.Position = [116 183 43 22];
app.Button_7.Text = '-';
% Create Button_8
app.Button_8 = uibutton(app.UIFigure, 'push');
app.Button_8.ButtonPushedFcn = createCallbackFcn(app, @Button_8Pushed, true);
app.Button_8.Position = [291 183 43 22];
app.Button_8.Text = '-';
% Create Button_9
app.Button_9 = uibutton(app.UIFigure, 'push');
app.Button_9.ButtonPushedFcn = createCallbackFcn(app, @Button_9Pushed, true);
app.Button_9.Position = [455 183 43 22];
app.Button_9.Text = '-';
% Create NewGameButton
app.NewGameButton = uibutton(app.UIFigure, 'push');
app.NewGameButton.ButtonPushedFcn = createCallbackFcn(app, @NewGameButtonPushed, true);
app.NewGameButton.Position = [271 86 100 22];
app.NewGameButton.Text = 'New Game';
end
end
methods (Access = public)
% Construct app
function app = TTT
% Create and configure components
createComponents(app)
% Register the app with App Designer
registerApp(app, app.UIFigure)
% Execute the startup function
runStartupFcn(app, @startupFcn)
if nargout == 0
clear app
end
end
% Code that executes before app deletion
function delete(app)
% Delete UIFigure when app is deleted
delete(app.UIFigure)
end
end
end
Did you find some helpful content from our video or article and now looking for its code, model, or application? You can purchase the specific Title, if available, and instantly get the download link.
Thank you for reading this blog. Do share this blog if you found it helpful. If you have any queries, post them in the comments or contact us by emailing your questions to [email protected]. Follow us on LinkedIn Facebook, and Subscribe to our YouTube Channel. If you find any bug or error on this or any other page on our website, please inform us & we will correct it.
If you are looking for free help, you can post your comment below & wait for any community member to respond, which is not guaranteed. You can book Expert Help, a paid service, and get assistance in your requirement. If your timeline allows, we recommend you book the Research Assistance plan. If you want to get trained in MATLAB or Simulink, you may join one of our training modules.
If you are ready for the paid service, share your requirement with necessary attachments & inform us about any Service preference along with the timeline. Once evaluated, we will revert to you with more details and the next suggested step.
Education is our future. MATLAB is our feature. Happy MATLABing!