2차원 배열이 있는데 (위, 아래, 왼쪽, 오른쪽에 인접하지 않고) 교차하여 2~3개의 난수를 얻는 방법은 무엇인가요?
배열:
으아악이렇게 작성했지만 매우 경직된 느낌이 들고, 얻은 숫자가 균일하지 않고 코드가 약간 부풀어오르는 경우가 있습니다. 더 나은 해결책이 있습니까?
으아악伊谢尔伦2017-07-05 11:09:26
조건은 상,하,좌,우가 서로 인접하지 않는 것입니다. 시작점 좌표가 (0,0)이라고 가정하면 다음 지점 (-1, 0), (0, -1), (1, 0), (0, 1)이 마스크됩니다. 이 점의 특징은 다음과 같습니다. x의 절대값과 y의 절대값을 더하면 1이 됩니다. 합리적인 범위 내에서 임의의 x 및 y 좌표 값을 추가하고 각각의 절대값을 더합니다. 1이 아니고 이 좌표가 이전에 사용되지 않은 경우 허용됩니다.
天蓬老师2017-07-05 11:09:26
여기에 요구 사항을 완벽하게 충족하는 매우 간단한 해킹 아이디어가 있습니다. 즉, [상단, 하단, 왼쪽 및 오른쪽에 인접하지 않음]이라는 요구 사항을 달성하기 위해 의도적으로 [단면에서 숫자를 취함] 두 개만 필요합니다. 라인:
으아악