Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

There is a famous puzzle called the 15-puzzle (feel free to look it up on the internet - eg en.wikipedia.org/wiki/15 puzzle). In this puzzle there

There is a famous puzzle called the 15-puzzle (feel free to look it up on the internet - eg en.wikipedia.org/wiki/15 puzzle). In this puzzle there is a frame that could hold 16 tiles in a 4x4 configuration, but the frame contains only 15 tiles where each tile is labeled with a number between 1 and 15. Since one of the locations is empty, it is possible to slide another tile (from above/below/right/left of the empty location) into this location. The goal of the puzzle is to reach the point where the numbers are organized so that they read (top to bottom, left to right) 1, 2, 3, . . . , 15, space. The diagram below shows a very simple example with the final solution on the right. You will be writing a Java program to allow people to play the 24-puzzle (the obvious variant where the frame is 5x5) puzzle) in a text based context. The goal is that you learn how to enter programs, how to write a relatively large program, how to compile and debug your work. Requirements: To complete this project you will write two classes and one text file. Create a file called Board.java which will be the guts of the project. This class should contain a private field int[][] the frame (a 5x5 integer array), and the following public methods with exact name and parameter lists and types: a method readInitialBoard(String fileName), a method makeMove(int number), a method showBoard(), and a method isCorrect(). Each method does exactly what a reasonable person would expect. You are welcome to have other fields and methods. Create a file called Driver1.java which will interact with the user and run your program. There is a sample interaction below. You should have your program match the style/syntax as closely as possible. Due to class size, some of the grading of projects gets automated which means deciding to go with a different format for input or output will likely result in losing points even if you think my way is just as good as his. Typically, this class would create an instance of Board.java, fill the board with the information from the user (the very first thing it asks the user) (a sample is below: 0 indicates the empty position). Then it would repeatedly ask the user for a command and perform that command. Legal commands would include: help, quit, and move. It ends if the user quits or the problem is solved. Create a file called status.txt which contains your name and a short (2-10 sentence) description of the status of your program. This file should be an ascii file. Though you may create it with MS Word (or notepad/wordpad/etc), you should be certain that it is a text file. A sample status.txt file is below. Comments: You should be using good style. At a minimum, a java file should always: begin with a comment containing your name and the purpose of the class, contain appropriate comments, be limited to 80 character lines, be limited to 30 line methods (usually shorter), and be properly indented1 . Sample interaction: Welcome to Project 1: 24-Puzzle. Enter the initial board: > 1 2 3 4 16 5 6 7 8 17 9 10 11 12 18 13 14 15 19 20 0 21 22 23 24 Current board -------------------------- | 1 | 2 | 3 | 4 | 16 | |------------------------| | 5 | 6 | 7 | 8 | 17 | |------------------------| | 9 | 10 | 11 | 12 | 18 | |------------------------| | 13 | 14 | 15 | 19 | 20 | |------------------------| | | 21 | 22 | 23 | 24 | -------------------------- Next command > help Legal commands are: help - prints this helpful information quit - ends the game move # - which attempts to move the tile with that number into the empty position Current board -------------------------- | 1 | 2 | 3 | 4 | 16 | |------------------------| | 5 | 6 | 7 | 8 | 17 | |------------------------| | 9 | 10 | 11 | 12 | 18 | |------------------------| | 13 | 14 | 15 | 19 | 20 | |------------------------| | | 21 | 22 | 23 | 24 | -------------------------- Next command > move 2 Not a legal move. Current board -------------------------- | 1 | 2 | 3 | 4 | 16 | |------------------------| | 5 | 6 | 7 | 8 | 17 | |------------------------| | 9 | 10 | 11 | 12 | 18 | |------------------------| | 13 | 14 | 15 | 19 | 20 | |------------------------| | | 21 | 22 | 23 | 24 | -------------------------- Next command > move 21 Current board -------------------------- | 1 | 2 | 3 | 4 | 16 | |------------------------| | 5 | 6 | 7 | 8 | 17 | |------------------------| | 9 | 10 | 11 | 12 | 18 | |------------------------| | 13 | 14 | 15 | 19 | 20 | |------------------------| | 21 | | 22 | 23 | 24 | -------------------------- Next command > move 14 Current board -------------------------- | 1 | 2 | 3 | 4 | 16 | |------------------------| | 5 | 6 | 7 | 8 | 17 | |------------------------| | 9 | 10 | 11 | 12 | 18 | |------------------------| | 13 | | 15 | 19 | 20 | |------------------------| | 21 | 14 | 22 | 23 | 24 | -------------------------- Next command > move 13 Current board -------------------------- | 1 | 2 | 3 | 4 | 16 | |------------------------| | 5 | 6 | 7 | 8 | 17 | |------------------------| | 9 | 10 | 11 | 12 | 18 | |------------------------| | | 13 | 15 | 19 | 20 | |------------------------| | 21 | 14 | 22 | 23 | 24 | -------------------------- Next command > move 21 Current board -------------------------- | 1 | 2 | 3 | 4 | 16 | |------------------------| | 5 | 6 | 7 | 8 | 17 | |------------------------| | 9 | 10 | 11 | 12 | 18 | |------------------------| | 21 | 13 | 15 | 19 | 20 | |------------------------| | | 14 | 22 | 23 | 24 | -------------------------- Next command > quit Writing to output.txt file. Goodbye.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions

Question

Explain the Neolithic age compared to the paleolithic age ?

Answered: 1 week ago

Question

What is loss of bone density and strength as ?

Answered: 1 week ago

Question

What are Measures in OLAP Cubes?

Answered: 1 week ago

Question

How do OLAP Databases provide for Drilling Down into data?

Answered: 1 week ago

Question

How are OLAP Cubes different from Production Relational Databases?

Answered: 1 week ago