I did a matlab brute force method where I went through every possible combination of the choices for the 4 revealed locations, and my answers conflict with yours. I'm getting that the choice of the four locations do not matter. Here is my Matlab code:
scores = [0;
0;
0;
0;
0;
10000;
36;
720;
360;
80;
252;
108;
72;
54;
180;
72;
180;
119;
36;
306;
1080;
144;
1800;
3600;];
P = perms(1:9); % all permutations of the scratchcard
Points = scores(getSums(P)); % the points for choosing rol/col/diag for each possible scratchcard
% note it is ordered as 3 col L to R, 3 rows T to B, TL to BR diag and TR
% to BL diag, for 8 columns
choosefour = nchoosek(1:9,4); % the possible scratch positions
possible_revealed_nums = unique(P(:,1:4),'rows'); % the possible numbers revealed
% store the utility (E(x)) for each possible scratch pattern here
U_store = zeros(126,1);
for i = 1: size(choosefour,1) % for all the possible scratch patterns
for j = 1:size(possible_revealed_nums,1) % for all the possible revealed numbers in the scratch pattern
% get the possible points for this set of reavealed numbers
% (5*4*3*2*1 different combos)
possible_points = Points(P(:,choosefour(i,1))==possible_revealed_nums(j,1)...
& P(:,choosefour(i,2))==possible_revealed_nums(j,2)...
& P(:,choosefour(i,3))==possible_revealed_nums(j,3)...
& P(:,choosefour(i,4))==possible_revealed_nums(j,4),:);
% select the max row/col/diag, and average it for our E(x)
expected_val = mean(max(possible_points,[],2),1);
% store the E(x)
U_store(i) = U_store(i) + expected_val;
end
% renormalize the points
U_store(i) = U_store(i)/size(possible_revealed_nums,1);
U_store(i)
i
end
Where the function getsums is just finding the totals for the row/col/diags:
function S = getSums(P)
S = zeros(size(P,1),8);
S(:,1) = sum(P(:,1:3),2);
S(:,2) = sum(P(:,4:6),2);
S(:,3) = sum(P(:,7:9),2);
S(:,4) = P(:,1)+P(:,4)+P(:,7);
S(:,5) = P(:,2)+P(:,5)+P(:,8);
S(:,6) = P(:,3)+P(:,6)+P(:,9);
S(:,7) = P(:,1)+P(:,5)+P(:,9);
S(:,8) = P(:,3)+P(:,5)+P(:,7);
The jist if the code is:
for every possible scratch pattern, and for every possible permutation of the numbers, pick the rol/col/diag selection with the maximum E(x). Then sum and average all these E(x) over the number of patterns and permutations.
After a lengthy computation (around 30min) you get U_store, which is the utility for each pattern of scratch positions, and it is ordered as 3 cols, 3 rows, 2 diagonals. The results were that any initial scratch pattern has the same expected value, no matter if you pick the cross or diag or any other combination of scratches.