Explanation to the hints:1. All the information needed to synthesize the phrase are in the data matrix. Obviously at this point you do not know how to approach the problem. The data pairs could have been presented in any form, the squared arrangement could be the first hint that you need to generate a QR code. There are 26 column and 25 rows, this asymmetry is the first hint that the data should be read as pairs.
2. This hint reveal that the data are read in pairs, the picture of the couple reveal a coordinate set 22 and 11 (on their shoes), at this point do you not know what is x and what is y, the first pair is (22,11) suggesting x=22 and y=11, the fact that the males have a Y chromosome and females only have X chromosome could help confirming this.
3. The range of the data is revealed, at this point can you more or less rule out hexadecimal and you know that 01 = 1. The pictures is the first solid hint that the pairs are X and Y coordinates, the X and Y has the exact same colour as the male and female from above, from here is it reasonable to assume that x=22 and y=11.
4. This hint reveals that the pairs are coordinate sets and rule out most decipher scenarios, since the randomization will limit the information to be present in the pairs and not the matrix as a whole. The pictures gives a valuable hint as it is a prototype of the solution, the side of the rubrics cube has 3x3 squares (or pixels) the coordinate set of the first pixel is shown as (01;01).
5. The purpose of this hint is to lead the thoughts patterns to a graphical solution in a 2 dimensional Cartesian coordinate system. At this point should there be enough information to start plotting the data points and realize that the solution is a QR code. However this is tricky since you have to plot a large amount of the data points blindly of what the result might be.
6. This hint is designed to convince the contester to plot the data, blindly of what the result might be. The idea is create a sensation of realization in the process of the plotting, since you obviously do not need all the points to realize that the result is a QR. Once you have realized that it is a QR then would it be easy to make the QR code with Excel, Matlab etc.
How to generate the data matrix.I had to find a phrase that would not be too long to fit a 25x25 QR code, else would it take too long to work with.
Once I found a phrase then did I map the point in a coordinate system (from 1 to 25) in two columns using excel, I would dublicate some of the points to end up with 26x25 numbers in total (so it would look like a matrix) and randomize all pairs. The two columns was exported to an txt file and read into Matlab:
clear
clc
fileName1 = 'puzzle.txt';
fileID1 = fopen(fileName1,'r');
%Define file formate, integers seperated by \t
formatSpec = '%i %i';
%Read file into matrix A
A = fscanf(fileID1,formatSpec);
fclose(fileID1);
%Convert matrix into x and y vector
xvector=A(1:2:length(A)-1);
yvector=A(2:2:length(A));
%Plot the solution
scatter(xvector, yvector,'filled')
%Create/open file for SMF code output
fileID2 = fopen('puzzle_smf.txt','wt');
%Table start
fprintf(fileID2,'[table]\n');
%Row start
fprintf(fileID2,'[tr]\n');
%Run index loop
index = 1;
for row=1:25;
%Start row code
fprintf(fileID2,'[td][/td]');
for col=1:26;
%print as two digit format with leading zero
formatSpec = '[td]%02d[/td]';
%Write a col value
fprintf(fileID2,formatSpec,A(index));
index = index +1;
end
%End row code
fprintf(fileID2,'\n[/tr]\n');
end
%table end
fprintf(fileID2,'[/table]');
fclose(fileID2);
The matlab code generates a plot so I could test QR code and it prints out the data in a format understood my the SMF based forum.