Write a program that generates a “random walk” across a 10 x 10 array. The array
ID: 1797581 • Letter: W
Question
Write a program that generates a “random walk” across a 10 x 10 array. The array will contain character (all ‘.’ Initially). The program must randomly “walk” from element to element, always going up, down, left, or right by one element. Z, in the order visited. Here’s an example of the desired output:A . . . . . . . . .
B C D . . . . . . .
. F E . . . . . . .
H G . . . . . . . .
I . . . . . . . . .
J . . . . . . . . .
K . . R S T U V Y .
L M P Q . . . W X .
. N O . . . . . . .
. . . . . . . . . .
Explanation / Answer
#include #include #include void printarray(char array[10][10], int x, int y); /*Function prototype*/ main() { int i = 0, roll = 0, row = 0, col = 0, rowcheck = 0, colcheck = 0; /*i = number of moves. roll = value generated by the random number generator. r = row location. col = column location. rowcheck and colcheck are the incremented and decremented values of row and col respectively, used to check whether a legal move can be performed*/ char position[10][10], chtr = 'A'; /*position[10][10] = Grid for the walking. chtr = the letters of the Alphabet.*/ for (row = 0; row < 10; row++) /*Fills the 10 x 10 array with the "." character*/ { for (col = 0; col < 10; col++) { position[row][col] = '.'; } } srand(5000); /*Seeds the random number function*/ for (i = 0, row = 0, col = 0, rowcheck = 0, colcheck = 0; i < 25;) { rowcheck = row; colcheck = col; roll = rand() % 4; switch (roll) /*Determines what direction to move starting from the top left corner of the grid (bird's eye view)*/ { case 0: /*Move up*/ { rowcheck--; } case 1: /*Move left*/ { colcheck--; } case 2: /*Move down*/ { rowcheck++; } case 3: /*Move right*/ { colcheck++; } } if ((rowcheck < 0 || rowcheck > 9) || (colcheck < 0 || colcheck > 9) || (position[rowcheck][colcheck] != '.')) { continue; } else { row = rowcheck; col = colcheck; position[row][col] = chtr; chtr++; printarray(position, row, col); i++; } } exit (0); } /*Function declaration*/ void printarray(char array[10][10], int x, int y) { printf("CURRENT POSITION %d %d ", x, y); for (x = 0; x < 10; x++) /*Prints out the values of the array*/ { for (y = 0; y < 10; y++) { printf("%c", array[x][y]); } printf(" "); } printf(" "); }Related Questions
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.