Exercise: Number Wordle ----------------------- In this assignment we will implement the game "Numberdle", which is like Wordle but with numbers. The game creates a random secret with four random numbers from 1 to 9, for example: ``` secret: 3 3 1 7 ``` We try to guess the secret but are given only a mysterious pattern of symbols: * Checkboxes (✓) are correct guesses in the correct place * Interrogation marks (?) are correct guesses in the wrong place * Crosses (✖) are incorrect guesses Values are counted exactly once in the guess and the secret. The first task is to implement this function: ``` type Digit is range 1 .. 9; type Digit_Array is array (1 .. 4) of Digit; function Calc_Result (Guess : Digit_Array; Secret : Digit_Array) return Wide_Wide_String; ``` This returns a four character string - the four results for the four digits of the guess. Here is a test main to help you: ```ada procedure Test_Calc_Result is begin pragma Assert (Calc_Result ((1, 2, 3, 4), (1, 2, 3, 4)) = "✓✓✓✓"); pragma Assert (Calc_Result ((1, 2, 3, 5), (1, 2, 3, 4)) = "✓✓✓✖"); pragma Assert (Calc_Result ((4, 3, 2, 1), (1, 2, 3, 4)) = "????"); pragma Assert (Calc_Result ((1, 2, 3, 1), (1, 2, 3, 4)) = "✓✓✓✖"); pragma Assert (Calc_Result ((1, 1, 1, 1), (1, 2, 3, 4)) = "✓ "); pragma Assert (Calc_Result ((1, 2, 2, 2), (2, 2, 2, 1)) = "?✓✓?"); pragma Assert (Calc_Result ((1, 3, 3, 2), (2, 2, 2, 1)) = "? ?"); end Test_Calc_Result; ```