function board = solver(words, weights, n, penalty)
board = zeros(n);
k = 1; % word counter
for i = 1:floor(n/2)
flag = 0;
wrdstart = 1;
while flag == 0 && k <= length(words)
word = words{k};
wlen = length(word);
if wlen + wrdstart <= n + 1
board(2*i,wrdstart:wrdstart-1+length(word)) = word;
k = k + 1;
wrdstart = wrdstart + wlen + 1;
else
flag = 1;
end
end
end