How to create a grid for memory tile game?
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Fatma Al-Sharji
am 3 Apr. 2015
Beantwortet: thabo Mokomo
am 17 Nov. 2016
How to create a grid for memory tile game in MATLAB. The grid should contain random number of rows and number of columns by the choice of the player.
0 Kommentare
Akzeptierte Antwort
Star Strider
am 4 Apr. 2015
Bearbeitet: Star Strider
am 4 Apr. 2015
The grid generation is easy:
nrows = 5; % User Input: Number Of Rows
ncols = 7; % User Input: NumberOf Columns
XL = [0 nrows];
YL = [0 ncols];
rowx = repmat([0:ncols], 2, 1);
rowy = [min(XL)*ones(1, ncols+1); max(XL)*ones(1, ncols+1)];
colx = [min(YL)*ones(1, nrows+1); max(YL)*ones(1, nrows+1)];
coly = repmat([0:nrows], 2, 1);
figure(1)
plot(rowx, rowy, 'g')
hold on
plot(colx, coly, 'g')
hold off
axis equal tight
0 Kommentare
Weitere Antworten (2)
Fatma Al-Sharji
am 5 Apr. 2015
Bearbeitet: Star Strider
am 5 Apr. 2015
1 Kommentar
Star Strider
am 5 Apr. 2015
Bearbeitet: Star Strider
am 5 Apr. 2015
My pleasure!
Using the randi function is definitely the way to go, so that is the correct choice. I took it a bit further. (Note that you have to have the strsplit function to make my code work. If you don’t have it, there is a workaround with a for loop.)
This works:
nrows = 5; % User Input: Number Of Rows
ncols = 7; % User Input: NumberOf Columns
XL = [0 nrows];
YL = [0 ncols];
rowx = repmat([0:ncols], 2, 1);
rowy = [min(XL)*ones(1, ncols+1); max(XL)*ones(1, ncols+1)];
colx = [min(YL)*ones(1, nrows+1); max(YL)*ones(1, nrows+1)];
coly = repmat([0:nrows], 2, 1);
figure(1)
plot(rowx, rowy, 'g')
hold on
plot(colx, coly, 'g')
hold off
axis equal tight
N = randi(nrows*ncols, 1, nrows*ncols);
Ns = strsplit(sprintf('%2d\n', N));
Ns = Ns(1:end-1);
xmat = repmat([1:ncols], 1, nrows)-0.5;
ymat = repmat([1:nrows], 1, ncols)-0.5;
text(xmat, ymat, Ns, 'HorizontalAlignment','center', 'VerticalAlignment','middle')
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!