Computer science assignment, please use c++ and opencv to finish it

[ad_1]

For this assignment, you need to implement two different search algorithms to solve a puzzle problem. For this puzzle game, the GUI (graphical user interface) framework is provided that is is developed by C++ and OpenCV library. The technical details are described in the source files of the project. Below is a highlight of the structure.

How to play:

After you run the project, you should be able to see a puzzle game coming out. You can use your mouse to select one piece of sub-image by one click and move it to the blank area by clicking the blank area. At any time, you can hit “s” key to search a solution, which you need to implement. 

Classes Involved:

1. VisualDisplay – This class deals with all the graphical or visual stuff, including pattern generation from an image, user mouse/keyboard interface, ext (You do not need to modify this class).

2. RandomGenerator – This class is used to generate a random sequence of numbers (from 0-8), which are used as the orders of different pieces of an image that present different patterns. (You do not need to modify this class).

3. SolutionSearch – This is the class that provides a solution for a given puzzle. The solution can be found by different search algorithms. (You are required to implement the functions in this class).

Requirements:

You need to implement the a functions in the “SolutionSearch.cpp” file: void SolutionSearch::AStarSearch(int *data, vector<int> &solution)

(1) For the A* search you need to maintain g(x) and h(x) for each node. (25%)

(2) For the heuristic function h(x), you need to use the Manhattan Distance as the metric. (25%)

(3) Use the correct data structure making sure the node with the smallest f(x) = g(x) + h(x) gets expanded first (25%)

(4) Terminate the search when the first goal node is expanded from the memory (15%)

(5) Successfully find the optimal solution. (10%)

What should be submitted:

You can put all your code inside the function “AStarSearch()”. But if you want to create any additional data or functions, you are suggested to put all the created data or functions inside the “SolutionSearch” class, which are considered as the members of this class. So you just need to submit two files: “SolutionSearch.h” and “SolutionSearch.cpp” from the Isidore online system.

Explanation of “AStarSearch()” Function:

For this function, there are two input parameters: the first parameter is the random order of the 9 numbers, which you need to re-organize to make them into the correct order; the second parameter is actually an output. It returns or stores the moving path of the “empty space” that it is involved to make all the sub-images in the correct position. The integer sequence variable “solution” should store all the steps along the “Optimal” path.

For example: 

Input:  data = {0, 4, 1, 3, 8, 2, 6, 7, 5 }; 

Goal:  make it into the correct order {0, 1, 2, 3, 4, 5, 6, 7, 8} 

You need to make the following changes on the number 8, since the number 8 represents the empty space, moving 8 to its neighboring numbers equals to moving the corresponding number to the empty space. Below it shows a demo of the steps: 

  0 4 1   swap with 4       0 8 1   swap with 1       0 1 8     swap with 2             0 1 2     swap with 5       0 1 2

  3 8 2  —————–>    3 4 2  —————–>      3 4 2  —————–>           3 4 8  ——————>     3 4 5  ————> End 

  6 7 5                             6 7 5                               6 7 5                                   6 7 5                               6 7 8 

So from this example, the right path should be {1, 2, 5, 8}. 

WHY? You may thought it was {4, 1, 2, 5}, since the number 8 has swapped with them in this order. That is true. However, we do not care which number it swapped with, but which position the number 8has gone through. As the numbers can be in any positions during different time, which give no hint about where the number 8 is. In contrast, the positions are fixed. So we assume the positions are in the same order as an increasing sequence: 

[0]  [1]  [2] 

   Fixed Position =    [3]  [4]  [5] 

                                 [6]  [7]  [8]

Here, I use “[]” to distinguish the positions from the numbers. So now you can see, the number 8 starts from position [4], then swapped with number 4, which goes to the position [1]; then swapped with number 1, which goes to the position [2]; then swapped with number 2, which goes to the position [5]; finally, swapped with number 5, which goes to the position [8]. So the path you should assign to the parameter “&solution” with the path sequence {1, 2, 5, 8}.

Calculate the price
Make an order in advance and get the best price
Pages (550 words)
$0.00
*Price with a welcome 15% discount applied.
Pro tip: If you want to save more money and pay the lowest price, you need to set a more extended deadline.
We know how difficult it is to be a student these days. That's why our prices are one of the most affordable on the market, and there are no hidden fees.

Instead, we offer bonuses, discounts, and free services to make your experience outstanding.
How it works
Receive a 100% original paper that will pass Turnitin from a top essay writing service
step 1
Upload your instructions
Fill out the order form and provide paper details. You can even attach screenshots or add additional instructions later. If something is not clear or missing, the writer will contact you for clarification.
Pro service tips
How to get the most out of your experience with Australia Assessments
One writer throughout the entire course
If you like the writer, you can hire them again. Just copy & paste their ID on the order form ("Preferred Writer's ID" field). This way, your vocabulary will be uniform, and the writer will be aware of your needs.
The same paper from different writers
You can order essay or any other work from two different writers to choose the best one or give another version to a friend. This can be done through the add-on "Same paper from another writer."
Copy of sources used by the writer
Our college essay writers work with ScienceDirect and other databases. They can send you articles or materials used in PDF or through screenshots. Just tick the "Copy of sources" field on the order form.
Testimonials
See why 20k+ students have chosen us as their sole writing assistance provider
Check out the latest reviews and opinions submitted by real customers worldwide and make an informed decision.
Automotive
Excellent Keep it up
Customer 452441, April 26th, 2022
Law
good job
Customer 452741, March 27th, 2020
Health Care
It is exactly my expectation. Thank you.
Customer 454755, June 30th, 2020
nursing
Always edit in Grammarly.
Customer 462635, April 8th, 2022
Business
Nice job.
Customer 452441, April 6th, 2022
Medicine
Always confirm foreign names using Google.
Customer 458101, April 3rd, 2022
Military
Excellent
Customer 456821, February 20th, 2022
SEO
good
Customer 463813, March 8th, 2023
Statistics
Thank you for your neat and precise work, very professional
Customer 462485, May 22nd, 2022
Other
Good admission essay.
Customer 462797, April 4th, 2022
Health Care
Met expectations. Thank you.
Customer 454755, June 30th, 2020
Business
Excellent.
Customer 452441, April 7th, 2022
11,595
Customer reviews in total
96%
Current satisfaction rate
3 pages
Average paper length
37%
Customers referred by a friend
OUR GIFT TO YOU
15% OFF your first order
Use a coupon FIRST15 and enjoy expert help with any task at the most affordable price.
Claim my 15% OFF Order in Chat