간단한 시뮬레이션 알고리즘 (1)

공식 문서를 알아야 pyautogui의 중고 파이썬 라이브러리는 하나의 예를 가지고 :

소스는 다음과 같이 :

1  임포트 pyautogui
 2  
3 거리 = 200
 4  동안 거리> 0 :
 5      pyautogui.dragRel (거리 0, 시간 = 0.5) # 
6      거리 - 10 =
 7      pyautogui.dragRel (0, 거리, 시간 = 0.5) # 
8      pyautogui.dragRel (-distance, 0, 시간 = 0.5) # 
9      거리 - 10 =
 10      pyautogui.dragRel (0 -distance, 시간 = 0.5) # 

이것은 친숙한 깊이 우선 탐색과 유사한 매트릭스 탐색 유사 매트릭스를 입력 할 때하면 다음 방법에 이러한 알고리즘을 구현하는데 ++ C를 사용하여, 스포츠의 벽면 측에 근접하고있다?

제 행렬을 정의하는 영역을 보유한다 :

1  CONST의  INT의 maxn = 50 ;
2  INT M [maxn] maxn] = { 0 };
3  INT m_size = 1 ;

최대 범위는 <INT> 또한, 벡터와 행렬의 기본 크기 물론 50 * 50 행렬이다. 그 후, 여기에 순서를 정의 할 필요가에 대한 검색 방향은 우측 상단 → 왼쪽 → →이다 :

1 개  CONST의  INT 배열 _x [] = { 0 , 1 , 0 , - 1 };
2  CONST의  INT의 배열 _y [] = { 1 , 0 , - 1 , 0 };
3  INT의 DIR = 0 ;

두 방향 벡터를 정의하고 순방향 전류 DIR의 방향을 나타 내기 위해 사용된다. 물론, 매트릭스, 0의 기본값은 아직 위치를 통과하지 않았 음을 나타내는 적절한 위치 여부를 결정해야한다 :

1 개  부울 검사 ( INT의 X, INT의 Y) {
 2      경우 (X < 0 || x> = m_size || Y < 0 || Y> = m_size) {
 3           거짓 ;
4      }
 5      의 경우 (M [X] [Y]> 0 ) {
 6           거짓 ;
7      }
 8      반환  사실 ;
9 }

마지막으로, 매트릭스에 걸어 어떤 방법의 정의 :

1  공극 런 ( INT의 X, INT의 Y, INT의 단계 = 1 ) {
 2      경우 (체크 (X, Y)) {
 3          M [X] [Y] = 단계;
도 4          의 경우 (예, (X + 배열 _x [DIR] + 확인! {배열 _y [DIR]))
 5              DIR = (DIR + 1 ) % 4 ;
6          }
 7          RUN (X + 배열 _x [DIR, Y + 배열 _y [DIR] + 단계 1 );
8      }
 9 }

위의 변경 방향에서 볼 수 있듯이 다음 방향이 재귀를 계속 갈 수 있다면마다, 행렬의 끝 가장자리에 온다. 특별히 정의 된 함수를 표시하기 위해 매트릭스를 참조하는 경우를 걸어 촉진하기 위하여 :

1 개  무효 표시 () {
 2      에 대해 ( int로 I = 0 ; I ++는, 난 <m_size ) {
 3           ( INT의 J = 0 ; J <m_size, J ++ ) {
 도 4              의 printf ( " %의 -3D " , M을 [I] J]);
5          }
 6          의 printf ( " \ n을 " );
7      }
 8 }

잘 후에 만 ​​이러한 기능이 주요 기능에 주문을 호출해야합니다, 위의 정의 :

1  INT 의 main ()
 2  {
 3      는 scanf ( " %의 D " , m_size);
4      실행 ( 0 , 0 );
5      디스플레이 ();
6      복귀  0 ;
7 }

다음과 같이 최종 실행은 다음과 같습니다

추천

출처www.cnblogs.com/viewts/p/11070314.html