My code currently creates a board of size n x n (user input) What I want to do now is to have certain positions on this board be called "kings", and I want roughly 1 king per 20 spaces i.e for a 10 x 10, there are 100 spaces so 5 kings. How do I randomly pick a board position to put a king?
function board = makeboard(size)
board = cell(size+1,size+1);
% initialize the board
for i=1:size+1
for j=1:size+1
if i==1
if j<=size
board{i,j+1} = j;
board{j+1,i} = j;
end
elseif j==1
% do nothing
else
board{i,j}= 'x';
end
end
end
amount=size*size;
king=amount/20;
king=floor(king);
end

 Réponse acceptée

Walter Roberson
Walter Roberson le 11 Nov 2015

0 votes

Sorry, all of the normal ways of doing this involve using the MATLAB function named size(), which is not possible in your code because you named a variable "size". But you could change
else
board{i,j}= 'x';
to
elseif rand < 1/5
board{i,j} = 'k';
else
board{i,j} = 'x';

Plus de réponses (0)

Catégories

En savoir plus sur Board games dans Centre d'aide et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by