I've been making a game of tic tac tow where you can click to enter your "x" or "o" but am having trouble centering each of them and making the "x" or " o" bigger. This is what I have currently.
TTCboard = zeros(3,3);
% for creating the standard tic-tac-toe board in green
figure
plot([.5 3.5],[-1.5 -1.5], 'g','linewidth',1);% creates top horizontal line in board
hold on
plot([2.5 2.5],[-.5 -3.5], 'g','linewidth',1)% creates right-most vertical line
plot([.5 3.5],[-2.5 -2.5], 'g','linewidth',1)% creates bottom horizontal line
plot([1.5 1.5],[-.5 -3.5], 'g','linewidth',1)% creates left-most vertical line
axis off % keeps the X & y-axis off, creating a better looking natural board
hold off% ensures later commands are added to existing board
xticks([0 1 2 3]); yticks([0 1 2 3]);
xticklabels([]); yticklabels([]);
player = 'X'
while true
fprintf('%s click to place a piece\n', player);
[x, y] = ginput(1);
x = floor(x) + 1/2;
y = floor(y) + 1/2;
text(x, y, player);
break;
end
Any tips on how to center the x's/o's and make them bigger?

 Accepted Answer

Bob Thompson
Bob Thompson on 15 Mar 2021
Edited: Bob Thompson on 15 Mar 2021
Hmm, maybe I spoke too soon on the centering.
Size can be set by adding a 'name,value' pair to the text command.
text(x,y,player,'Fontsize',24);

4 Comments

edit: I was able to figure out the centering issue and move on, thank you very much for your help.
I fixed the centering by adjusting the location of your lines. The issue was that the different boxes ranged from x.5 -> (x+1).5. This meant that 'flooring' the selected range ended up putting you somewhere other than the box you selected, usually.
TTCboard = zeros(3,3);
% for creating the standard tic-tac-toe board in green
figure
plot([0 3],[-1 -1], 'g','linewidth',1);% creates top horizontal line in board
hold on
plot([2 2],[0 -3], 'g','linewidth',1)% creates right-most vertical line
plot([0 3],[-2 -2], 'g','linewidth',1)% creates bottom horizontal line
plot([1 1],[0 -3], 'g','linewidth',1)% creates left-most vertical line
axis off % keeps the X & y-axis off, creating a better looking natural board
hold off% ensures later commands are added to existing board
xticks([0 1 2 3]); yticks([0 1 2 3]);
xticklabels([]); yticklabels([]);
player = 'X'
while true
fprintf('%s click to place a piece\n', player);
[x, y] = ginput(1);
x = floor(x)+0.43;
y = floor(y)+0.5;
text(x, y, player, 'Fontsize', 24);
break;
end
I also made an adjustment to the +0.5 that followed the floor, to better center the X based on font size, but your 'horizontalalignment' name value option is a much better choice.
mind if I ask one more question?
You're welcome to ask, I will do my best to answer.
I will ask, as politely as I can, that if it's technically a new question it should be posted as a new query, per forum roles. I'm not going to be a stickler, but I believe the intention is to make sure answers that might help other people don't get buried in threads.

Sign in to comment.

More Answers (1)

Nathan Ross
Nathan Ross on 15 Mar 2021

0 votes

Ill post a new thread

Categories

Find more on Strategy & Logic in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!