2011/03/20
-
2011.03.20 Rock-paper-scissors Game (가위바위보 게임)
알고리즘 사실 알고리즘이라고 표현할만한 대단한 알고리즘이 있는 것이 아니다. 누구나 알고 있는 그 룰, 바위는 가위를 이기고, 보는 바위를 이기며, 가위는 보를 이긴다는 것만 기억하면 된다. 가위바위보를 짜기 위한 가장 기본적인 아이디어는, 이런 관계를 숫자로 나타내보자는 데에서 출발한다. '바위는 가위를 이긴다' 라는 명제를 숫자로 가장 간단히 표현해보자면, 바위를 1이라는 숫자로, 가위를 0이라는 숫자로 바꿔 놓으면 되는 것이다. 즉, A가 바위를 냈다면 A = 1, B가 가위를 냈다면 B = 0 이라고 놓으면 단지 A와 B의 숫자 크기를 비교하는 것으로 누가 이겼는지 판단이 가능하다. 그렇다면 보는 바위보다 상위에 있으므로 2라는 숫자로 대체할 수 있다. 문제는 다시 가위는 보의 상위에 있다는 것이..
-
2011.03.20 Circle Drawing (픽셀 단위 원 그리기)
알고리즘 (x - r)^2 + (y - r)^2 = r^2 알고리즘은 간단하다. 위와 같은 원의 공식을 사용한다. 원의 모양을 예측해 보면 (r, r)의 중심점을 가지는 반지름이 r인 원이 그려진다. 이 포스트에서는 반지름 이내의 범위의 어떤 좌표 (x, y)에 있는 점은 검은색 상자 (■)로 표시하고, 그렇지 않은 점은 빈 상자(□)로 표시할 생각이다. 간단히 생각해 보면 이중 반복문을 돌려서 삼항연산자든 if문이든 걸어서 범위 체크만 해주면 끝이라고 생각 할 수 있다. 하지만 실제로 그를 토대로 그려보면, 뭔가 좌우 대칭이 잘 맞지 않는다. 접근 방법 텍스트만 가지고 원을 그리려면, 픽셀 단위의 드로잉을 생각해야만 한다. 어떤 도장이 있다. 도장은 가로세로 1cm의 크기를 갖는 정사각형 모양을 찍어낸..