What does this section of code do?
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I am creating a Battleship style game for a class project and I found this piece of code found below and my game only works with it in the code. I would like to have a better understanding of what the variables mean, they are not used in the code prior to this(other than "board"). Thank you for any help given.
i = 1+size*rand;
j = 1+size*rand;
loop = 1;
while (loop)
temp = rand * 3;
dx = 0;
if (temp > 2)
dx = 1;
elseif (temp < 1)
dx = -1;
end
temp = rand * 3;
dy = 0;
if (temp > 2)
dy = 1;
elseif (temp < 1)
dy = -1;
end
i0 = dx * 4 + i;
j0 = dy * 4 + j;
if (i0 > 0 && i0 <= size && j0 > 0 && j0 <= size)
loop = 0;
end
if (dx == 0 && dy == 0)
loop = 1;
end
end
for I = 0:3
Board(int32(i + I * dx),int32(j + I * dy))=1;
end
1 commentaire
John D'Errico
le 17 Avr 2017
Modifié(e) : John D'Errico
le 17 Avr 2017
An arbitrary, uncommented block of code has no meaning at all, when taken out of context. Even knowing that it is part of code for a game is not relevant. And of course, removing any such arbitrary block of code will of course cause working code to fail, else it is hardly likely that code would have been included in the first place.
Réponse acceptée
James Tursa
le 17 Avr 2017
It looks like:
i & j are generated as a random point on the board.
dx and dy are generated as a random direction (they are either -1, 0, or 1)
dx and dy are then checked to see that, when 4 is added to i and j in the dx and dy directions, the result is still on the board. If everything is still on the board, then the while loop exits. Otherwise, new random dx and dy directions are generated for testing. Also, at least one of dx or dy must be non-zero for the while loop to exit.
Then the board i and j position as well as three additional positions in the direction of dx and dy are assigned a value of 1.
0 commentaires
Plus de réponses (1)
Alice
le 4 Oct 2024
function [mArea] = midArr(f,a,b,n)
c = (b-a)/n;
mArea = 0;
for i = 1:n
mArea = mArea+(f(a+(i-0.5)*c)*c);
end
end
0 commentaires
Voir également
Catégories
En savoir plus sur Strategy & Logic dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!