Big Java Late Objects
Big Java Late Objects
2nd Edition
ISBN: 9781119330455
Author: Horstmann
Publisher: WILEY
Question
Book Icon
Chapter 13, Problem 23PE
Program Plan Intro

8 Queens Problem

Program plan:

Filename: “PartialSolution.java”

This code snippet creates a class “PartialSolution”. In the code,

  • Define a class “PartialSolution”.
    • Declare the class variables.
    • Define the constructor “PartialSolution”.
      • Define the array “queens”.
    • Define the method “examine()”.
      • Iterate a “for” loop,
        • Iterate the inner “for” loop,
          • If “queens[i]” attacks “queens[j]”.
            • Return the value of “ABANDON”.
              • If the length of the “queens” is “NQUEENS”,
                • Return the value of “ACCEPT”.
              • Else,
                • Return the value of “CONTINUE”.
    • Define the method “extend()”.
      • Set the value of “result”.
      • Iterate a “for” loop,
        • Get the length of “queens” to “size”.
        • Set the “result[i]”.
        • Iterate a “for” loop,
          • Set “queen[j]” to “result[i]”.
                  • Append the new queen to “ith” column.
              • Return the value of “result”.
    • Define a method “toString()”.
      • Return the queens.
    • Define a method “reflect()”.
      • Define an object “result”.
      • Iterate a “for” loop,
        • Set the value of “result”.
              • Return the value.
    • Define a method “rotate()”.
      • Define an object “result”.
      • Iterate a “for” loop,
        • Set the value of “result”.
              • Return the value.
    • Define a method “equals()”.
      • Define an object “other”.
      • Create an array list “qs”.
      • Iterate a “for” loop,
        • Add “q” to “qs”.
              • Iterate a “for” loop,
                • If the condition is true,
                  • Return “false”.
              • Return the value.

Filename: “Queen.java”

This code snippet creates a class “Queen”. In the code,

  • Define a class “Queen”.
    • Define the class members “row” and “column”.
    • Define a constructor “Queen()”.
      • Set the value of “row” and “column”.
    • Define the method “attacks()”.
      • Return the result of logical operation.
    • Define a method “toString()”.
      • Return the value.
    • Define a method “rotate()”.
      • Return the value.
    • Define a method “reflect()”.
      • Return the value.
    • Define a method “equals()”.
      • Create the object of “Queen”.
      • Return the value.

Filename: “EightQueens.java”

This code snippet creates a class “EightQueens”. In the code,

  • Define a class “EightQueens”.
    • Define array list “sols”.
    • Define the “main” method.
      • Call the method “solve()”.
      • Iterate a “for” loop,
        • Print the elements of “sols”.
    • Define the method “solve()”.
      • Define the variable “exam”.
      • If “exam” equal to “ACCEPT”,
        • Set a variable “reject” equal to “false”.
        • Iterate a “for” loop,
          • Set the value of “reject”.
            • If the condition is true,
              • Add “sol” to “sols”.
      • If “exam” equal to “ABANDON”,
        • Iterate a “for” loop,
          • Call the method “solve()”.

Blurred answer
Knowledge Booster
Background pattern image
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