MATLAB Answers

How do I create a rectangular piece image that can be positioned on a game board

3 views (last 30 days)
Ryan Burrows
Ryan Burrows on 26 Oct 2018
Edited: jonas on 27 Oct 2018
I am currently trying to create the game stratego in matlab. I am not sure how to create the stratego pieces (essentially just a 2-D rectangle that can have numbers/letters on one side) which must be able to go on top of another image (the game board). Is there some chess file that shows how to create pieces like that, or does anyone have any ideas on how to do that? Please let me know

  0 Comments

Sign in to comment.

Accepted Answer

jonas
jonas on 26 Oct 2018
Edited: jonas on 27 Oct 2018
I would just use textboxes. For example:
A = repmat([repmat([1 0],1,5);repmat([0 1],1,5)],5,1)
cmap = [0 0 0;1 1 1;1 0 0;0 0 1;0 1 0];
colormap(cmap)
A(10,10)=4;
pcolor(A)
p(1) = annotation('textbox',[norm2ax(1,1) 0.05 0.05],...
'string','A',...
'backgroundcolor','b',...
'color','w',...
'horizontalalignment','center',...
'verticalalignment','middle')
function out = norm2ax(Xa,Ya)
ax = gca;
Xn = ax.Position(1) + (Xa-ax.XLim(1)) .* ax.Position(3)/(diff(ax.XLim));
Yn = ax.Position(2) + (Ya-ax.YLim(1)) .* ax.Position(4)/(diff(ax.YLim));
out = [Xn,Yn];
end
The input to the custom function "norm2ax" is the location of your piece. To change the location after creating it. Just Change the position property of p(1).
Disclaimer: have never played stretego.

  1 Comment

jonas
jonas on 27 Oct 2018
Note that I updated the script and added a function for converting axes coordinates to normalized figure coordinates. Pass the axes coordinates to "norm2ax". Cheers!

Sign in to comment.

More Answers (0)

Sign in to answer this question.