
Big Java Late Objects
2nd Edition
ISBN: 9781119330455
Author: Horstmann
Publisher: WILEY
expand_more
expand_more
format_list_bulleted
Question
Chapter 11, Problem 11PP
Program Plan Intro
Tic Tac Toe
Program plan:
Filename: “TicTacToeComponent.java”
This program file is used to define a class “TicTacToeComponent”. In the code,
- Import the required packages.
- Define a class “TicTacToeComponent”.
- Declare class members “board”, “squareDim”, “leftPad”, “topPad”, “MARK_PAD”.
- Define a constructor “TicTacToeComponent()”.
- Initialize the class members.
- Define a method “paintComponent()”.
- Draw board.
- Define a method “drawMark()”.
- If “mark” is “X”,
- Draw “line1” and “line2”.
- Else, if the “mark” is “O”,
-
- Draw circle.
- Draw “line1” and “line2”.
- If “mark” is “X”,
Filename: “TicTacToeBoard.java”
This program file is used to define a class “TicTacToeBoard”. In the code,
- Define a class “TicTacToeBoard”.
- Declare the class members “BLANK”, “X_MARK”, “O_MARK” and “board”.
- Define the constructor “TicTacToeBoard()”.
- Iterates for loops,
- Initialize “board[][]”.
- Iterates for loops,
- Define a method “availableSquare()”.
- Return the result of expression.
- Define a method “determineWinner()”.
- Iterate for loop,
- If the condition is true,
- Return the element “board[row][0]”.
- If the condition is true,
- Iterate for loop,
- If the condition is true,
- Return the element “board[0][col]”.
- If the condition is true,
- If the condition is true,
- Return element “board[0][0]”.
- If the condition is true,
- Return element “board[0][2]”
- Iterate for loop,
- Return “BLANK”.
- Define a method “getMark()”.
- If the condition is true,
- Return the element “board[row][col]”.
- Otherwise,
- Return “BLANK”.
- If the condition is true,
- Define a method “setMark()”.
- If the condition is true,
- Set “mark” to “board[row][col]”.
- If the condition is true,
- Define a method “reset()”.
- Iterate for loops,
- Set “BLANK” to “board[row][col]”.
- Iterate for loops,
- Define a method “validMark()”.
- Return the truth value of expression.
Filename: “TicTacToeFrame.java”
This program file is used to define a class “TicTacToeFrame”. In the code,
- Define a class “TicTacToeFrame”.
- Define the class members.
- Define a constructor “TicTacToeFrame()”.
- Set a variable “done” as “false”.
- Define a “board”.
- Define an object of “BoxLayout”.
- Set the layout of “panel”.
- Set the “player”.
- Define a label and set its text as “X's turn”.
- Create “component”.
- Create a “JButton” and set its text as “Reset Game”.
- Define the object of “MousePressedListener” named “listener”.
- Add mouse listener to “component”.
- Define a panel “panel2”.
- Add button to “panel2”.
- Add “turnLabel” to “panel2”.
- Add “panel2” to “panel1”.
- Add “panel1” to the layout.
- Set the size of frame.
- Define a method “selectSquare()”.
- Call “setMark()” using “board”.
- Define a method “computeRow()”.
- If the condition is “true”,
- Return “-1”.
- Return the truth value of expression.
- Return “-1”.
- If the condition is “true”,
- Define a method “computeCol()”.
- If the condition is “true”,
- Return “-1”.
- Return the truth value of expression.
- Return “-1”.
- If the condition is “true”,
- Define a method “reset()”.
- Call the method “reset()” using “board”.
- Set the “player”.
- Call the method “setTurnLabel()”.
- Set “done” equal to false.
- Define a method “switchPlayer()”.
- If “player” equal to “X_PLAYER”.
- Set “player” equal to “O_PLAYER”.
- Else,
-
- Set “player” equal to “X_PLAYER”.
- Call the method “setTurnLabel()”.
- Set “player” equal to “O_PLAYER”.
- If “player” equal to “X_PLAYER”.
- Define a method “setWinner()”.
- If “player” equal to “X_PLAYER”.
- Set text of label as “X wins!”.
- Else,
-
- Set text of label as “O wins!”.
- Set “done” equal to “true”.
- Set text of label as “X wins!”.
- If “player” equal to “X_PLAYER”.
- Define a method “setTurnLabel()”.
- If “player” equal to “X_PLAYER”.
- Set text of label as “X’s turn”.
- Else,
-
- Set text of label as “O’s turn”.
- Set text of label as “X’s turn”.
- If “player” equal to “X_PLAYER”.
- Define a method “getMark()”.
- If “player” equal to “X_PLAYER”.
- Return the value.
- Else,
-
- Return the value.
- Return the value.
- If “player” equal to “X_PLAYER”.
- Define a class “MousePressedListener”.’
- Define a constructor “MousePressedListener()”.
- Set “mouseX”.
- Set “mouseY”.
- Set “row”.
- Set “col”.
- If “true”,
- Call “selectSquare()”.
- If the condition is “true”.
-
- Call “setWinner()”.
- Otherwise,
-
- Call “switchPlayer()”.
- Call “repaint()”.
- Call “switchPlayer()”.
- Declare do nothing methods named “mouseReleased()”, “mouseClicked()”, “mouseEntered()”, “mouseExited()”.
- Define a constructor “MousePressedListener()”.
- Define a class “ResetListener”.
- Define method “actionPerformed()”.
- Call “reset()”.
- Call “repaint()”.
- Define method “actionPerformed()”.
Filename: “TicTacToe.java”
This program file is used to define a class “TicTacToe”. In the code,
- Import the required packages.
- Define a class “TicTacToe”.
- Define the method “main()”.
- Define the object of “JFrame”.
- Set the title of JFrame as “Tic-Tac-Toe”.
- Set default close.
- Set the frame as visible.
- Define the method “main()”.
Expert Solution & Answer

Want to see the full answer?
Check out a sample textbook solution
Students have asked these similar questions
Capsim Team PowerPoint Presentations - Slide Title: Key LearningsWhat were the key learnings that you discovered as a team through your Capsim simulation?
Write the SQL code that permits to implement the tables: Student and Transcript. NB: Add the constraints on the attributes – keys and other.
Draw an ERD that will involve the entity types: Professor, Student, Department and Course. Be sure to add relationship types, key attributes, attributes and multiplicity on the ERD.
Chapter 11 Solutions
Big Java Late Objects
Ch. 11.1 - Prob. 1SCCh. 11.1 - Prob. 2SCCh. 11.1 - Prob. 3SCCh. 11.1 - Prob. 4SCCh. 11.1 - Prob. 5SCCh. 11.2 - Prob. 6SCCh. 11.2 - Prob. 7SCCh. 11.2 - Prob. 8SCCh. 11.2 - Prob. 9SCCh. 11.2 - Prob. 10SC
Ch. 11.2 - Prob. 11SCCh. 11.3 - Prob. 12SCCh. 11.3 - Prob. 13SCCh. 11.3 - Prob. 14SCCh. 11.3 - Prob. 15SCCh. 11.3 - Prob. 16SCCh. 11.4 - Prob. 17SCCh. 11.4 - Prob. 18SCCh. 11.5 - Prob. 19SCCh. 11.5 - Prob. 20SCCh. 11.5 - Prob. 21SCCh. 11.5 - Prob. 22SCCh. 11.5 - Prob. 23SCCh. 11.5 - Prob. 24SCCh. 11.6 - Prob. 25SCCh. 11.6 - Prob. 26SCCh. 11.6 - Prob. 27SCCh. 11 - Prob. 1RECh. 11 - Prob. 2RECh. 11 - Prob. 3RECh. 11 - Prob. 4RECh. 11 - Prob. 5RECh. 11 - Prob. 6RECh. 11 - Prob. 7RECh. 11 - Prob. 8RECh. 11 - Prob. 9RECh. 11 - Prob. 10RECh. 11 - Prob. 11RECh. 11 - Prob. 12RECh. 11 - Prob. 13RECh. 11 - Prob. 14RECh. 11 - Prob. 15RECh. 11 - Prob. 16RECh. 11 - Prob. 17RECh. 11 - Prob. 18RECh. 11 - Prob. 19RECh. 11 - Prob. 20RECh. 11 - Prob. 21RECh. 11 - Prob. 1PECh. 11 - Prob. 2PECh. 11 - Prob. 3PECh. 11 - Prob. 4PECh. 11 - Prob. 5PECh. 11 - Prob. 6PECh. 11 - Prob. 7PECh. 11 - Prob. 8PECh. 11 - Prob. 9PECh. 11 - Prob. 10PECh. 11 - Prob. 11PECh. 11 - Prob. 3PPCh. 11 - Prob. 4PPCh. 11 - Prob. 5PPCh. 11 - Prob. 6PPCh. 11 - Prob. 7PPCh. 11 - Prob. 8PPCh. 11 - Prob. 9PPCh. 11 - Prob. 10PPCh. 11 - Prob. 11PPCh. 11 - Prob. 13PPCh. 11 - Prob. 14PPCh. 11 - Prob. 15PP
Knowledge Booster
Similar questions
- Draw an ERD that represents a book in a library system. Be sure to add relationship types, key attributes, attributes and multiplicity on the ERD.arrow_forward2:21 m Ο 21% AlmaNet WE ARE HIRING Experienced Freshers Salesforce Platform Developer APPLY NOW SEND YOUR CV: Email: hr.almanet@gmail.com Contact: +91 6264643660 Visit: www.almanet.in Locations: India, USA, UK, Vietnam (Remote & Hybrid Options Available)arrow_forwardProvide a detailed explanation of the architecture on the diagramarrow_forward
- hello please explain the architecture in the diagram below. thanks youarrow_forwardComplete the JavaScript function addPixels () to calculate the sum of pixelAmount and the given element's cssProperty value, and return the new "px" value. Ex: If helloElem's width is 150px, then calling addPixels (hello Elem, "width", 50) should return 150px + 50px = "200px". SHOW EXPECTED HTML JavaScript 1 function addPixels (element, cssProperty, pixelAmount) { 2 3 /* Your solution goes here *1 4 } 5 6 const helloElem = document.querySelector("# helloMessage"); 7 const newVal = addPixels (helloElem, "width", 50); 8 helloElem.style.setProperty("width", newVal); [arrow_forwardSolve in MATLABarrow_forward
- Hello please look at the attached picture. I need an detailed explanation of the architecturearrow_forwardInformation Security Risk and Vulnerability Assessment 1- Which TCP/IP protocol is used to convert the IP address to the Mac address? Explain 2-What popular switch feature allows you to create communication boundaries between systems connected to the switch3- what types of vulnerability directly related to the programmer of the software?4- Who ensures the entity implements appropriate security controls to protect an asset? Please do not use AI and add refrencearrow_forwardFind the voltage V0 across the 4K resistor using the mesh method or nodal analysis. Note: I have already simulated it and the value it should give is -1.714Varrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education

Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education

Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON

Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON

C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON

Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning

Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education