Overall a nice little script.
You could shorten it a lot by putting the different types (ie big X, little x's) into 2 (or a 2d) TStringArray, then randomly use them instead of making it write out a random chunk for each section and instead the randomly chosen chunks. You can then adjust wins or losses by seeing if they match.
An example of this could be through:
SCAR Code:
var
line: TStringArray;
outcome: array[0..2] of Integer;
begin
line := ['X', 'O', 'S'];
outcome[0] := Random(3);
outcome[1] := Random(3);
outcome[2] := Random(3);
Writeln('You rolled ' + line[outcome[0]] + ' - ' + line[outcome[1]] + ' - ' + line[outcome[2]] + '!');
if(outcome[0] = outcome[1]) and (outcome[1] = outcome[2]) then
Writeln('You matched 3!')
else if (outcome[0] = outcome[1]) or (outcome[1] = outcome[2]) or (outcome[0] = outcome[2]) then
Writeln('You matched 2!')
else
Writeln('Sorry, you didn''t match any');
end.
You can try by separating that all to add it in instead of your current system. To make it work with 2 string arrays, you just have 1 for top, 1 for bottom and call them separately in the WriteLn's