Problem 52308. ICFP2021 Hole-In-Wall: Calculate Score
The contest folds the figure in Red to fit within the hole shown in light grey ![](data:image/png;base64,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)
This Challenge is to evaluate the Score defined in the Specification when given the hole vertices in hxy and figure vertices in pxy. The hxy matrix is [N+1,2] where N is number of hole vertices. A repeat of the first vertex occurs for drawing the hole. The pxy matrix is [P,2] where P is the number of figure vertices. The pxy matrix will be valid and fit within the hole.
Score can be summarized as the sum of minimum square distances to the figure from each unique hole vertex. Score=calc_score(hxy,pxy)
These types of contests like to avoid non-integer calculations thus the distance squared calculation.
The ICFP 2021 Hole In Wall contest site has enabled a public user login to allow submissions. A login must be created to access all the problems and to submit solutions. Solutions are simple text files. Other challenges will show reading files, drawing figures, and producing submission files. To fully access the ICFP/Problems site use Register Team. Anyone can select Problems Page and then click problem numbers to see the puzzles and to download problem files.
The ICFP Contests page shows the annual contests back to 1998. The 2019 contest can be processed by Matlab. ICFP2019 Results Youtube gives a summary of this contest.
Solution Stats
Solution Comments
Show commentsProblem Recent Solvers5
Suggested Problems
-
Check to see if a Sudoku Puzzle is Solved
323 Solvers
-
294 Solvers
-
179 Solvers
-
Make an awesome ramp for a tiny motorcycle stuntman
671 Solvers
-
Find all the zeros of sinus , cosinus and tangent in a given interval
21 Solvers
More from this Author308
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!