Big Java Late Objects
Big Java Late Objects
2nd Edition
ISBN: 9781119330455
Author: Horstmann
Publisher: WILEY
Question
Book Icon
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.

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[][]”.
    • 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]”.
      • Iterate for loop,
        • If the condition is true,
          • Return the element “board[0][col]”.
      • If the condition is true,
        • Return element “board[0][0]”.
      • If the condition is true,
        • Return element “board[0][2]”
    • Return “BLANK”.
    • Define a method “getMark()”.
      • If the condition is true,
        • Return the element “board[row][col]”.
      • Otherwise,
        • Return “BLANK”.
    • Define a method “setMark()”.
      • If the condition is true,
        • Set “mark” to “board[row][col]”.
    • Define a method “reset()”.
      • Iterate for loops,
        • Set “BLANK” to “board[row][col]”.
    • 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.
    • Define a method “computeCol()”.
      • If the condition is “true”,
        • Return “-1”.
          • Return the truth value of expression.
    • 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()”.
    • 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”.
    • 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”.
    • Define a method “getMark()”.
      • If “player” equal to “X_PLAYER”.
        • Return the value.
          • Else,
            • Return the value.
    • 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()”.
      • Declare do nothing methods named “mouseReleased()”, “mouseClicked()”, “mouseEntered()”, “mouseExited()”.
    • Define a class “ResetListener”.
      • Define method “actionPerformed()”.
        • Call “reset()”.
        • Call “repaint()”.

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.

Blurred answer
Students have asked these similar questions
7. Long-Distance CallsA long-distance provider charges the following rates for telephone calls: Rate Category    Rate per MinuteDaytime (6:00 a.m. through 5:59 p.m.)    $0.07Evening (6:00 p.m. through 11:59 p.m.)    $0.12Off-Peak (midnight through 5:59 a.m.)    $0.05Write a GUI application that allows the user to select a rate category (from a set of radio buttons), and enter the number of minutes of the call into an Entry widget. An info dialog box should display the charge for the call.
Name and Address The Name and Address Problem Write a GUI program that displays your name and address when a button is clicked. The program’s window should appear as the sketch on the left side of Figure 13-61 when it runs. When the user clicks the Show Info button, the program should display your name and address, as shown in the sketch on the right of the figure.
Exercise 1 Function and Structure [30 pts] Please debug the following program and answer the following questions. There is a cycle in a linked list if some node in the list can be reached again by continuously following the next pointer. #include typedef struct node { int value; struct node *next; } node; int 11_has_cycle (node *first) if (first == node *head = { NULL) return 0; first; while (head->next != NULL) { } if (head first) { return 1; } head = head->next; return 0; void test ll_has_cycle () { int i; node nodes [6]; for (i = 0; i < 6; i++) { nodes [i] .next = NULL; nodes [i].value = i; } nodes [0] .next = &nodes [1]; nodes [1] .next = &nodes [2]; nodes [2] .next = &nodes [3]; nodes [3] .next nodes [4] .next &nodes [4]; NULL; nodes [5] .next = &nodes [0]; printf("1. Checking first list for cycles. \n Function 11_has_cycle says it has s cycle\n\n", 11_has_cycle (&nodes [0])?"a":"no"); printf("2. Checking length-zero list for cycles. \n Function 11_has_cycle says it has %s…
Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education