How to create a grid for memory tile game?
7 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Fatma Al-Sharji
il 3 Apr 2015
Risposto: thabo Mokomo
il 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 Commenti
Risposta accettata
Star Strider
il 4 Apr 2015
Modificato: Star Strider
il 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 Commenti
Più risposte (2)
Fatma Al-Sharji
il 5 Apr 2015
Modificato: Star Strider
il 5 Apr 2015
1 Commento
Star Strider
il 5 Apr 2015
Modificato: Star Strider
il 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')
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!