본문 바로가기
C언어

[C언어] random walk A가 방안의 모든 타일을 한 번씩 지나가는데 걸리는 총이동수는 얼마인가?

by 이얏호이야호 2020. 5. 1.

random walk로 총 이동수를 구하는 프로그램입니다

공부하시는데에 조그마한 도움이라도 됐으면좋겠습니다

코드확인해주세요!

 

더보기
#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <conio.h>

#define ROWS 20

#define COLS 20

int grid [ROWS][COLS];

int ro,co;

void mark_grid(int y, int x) {

 if( x >= 0 && y >= 0 && y < ROWS && x < COLS ) {

 ro = y;

 co = x;

 if( grid[y][x] == '.' )

 grid[y][x]= ' *';

 }

}

void print_grid() {

 int r,c;

 for ( r=0; r < ROWS; r++) {

 for ( c=0;c< COLS;c++) {

 printf("%c ",grid[r][c]);

 }

 printf("\n");

 }

}

int main() {

 int r,c;

 int i;

 char letters = '*';

 for (r=0; r < ROWS; r++) {

 for (c=0;c< COLS;c++) {

 grid[r][c]='.';

 }

 }

 srand((unsigned)time(NULL));

 ro = ROWS/2;

 co = COLS/2;

 grid[ro][co]= letters;

 for (i=0;i<100000; i++) {

 int move = rand() % 8;

 switch (move) {

 case 0: mark_grid(ro+1, co);

 break;

 case 1: mark_grid(ro+1, co+1);

 break;

 case 2: mark_grid(ro, co+1);

 break;

 case 3: mark_grid(ro-1, co+1);

 break;

 case 4: mark_grid(ro-1, co);

 break;

 case 5: mark_grid(ro-1, co-1);

 break;

 case 6: mark_grid(ro, co-1);

 break;

 case 7: mark_grid(ro+1, co-1);

 break;

 }

 print_grid();

 if( getch() == 'q' ) break;

 }

 return 0;

}

 

 

 

 

 

 

더 많은 C언어 글이 궁금하다면?

https://chuinggun.tistory.com/category/C%EC%96%B8%EC%96%B4

 

댓글