self.grid = [ ['-'] * self.w ] * self.h
은 내가 "선을"그릴 "할 다음과 같은 방법으로 생산하는 높이 x w 크기의 격자를 감안할 때 "그리드의 두 점 사이의 문자를"표시합니다. 다음 코드는 내가
점() 함수는 단순히 문자와 그리드의 단일 지점 채워def line(self, char, (x1, y1), (x2, y2)):
self.point(char, (x1, y1))
x = x1 + cmp(x2, x1)
y = y1 + cmp(y2, y1)
while x != x2 or y != y2:
self.point(char, (x, y))
x = x + cmp(x2, x)
y = y + cmp(y2, y)
self.point(char, (x2, y2))
을 마련했습니다 것입니다.
이것은 직선과 완벽한 대각선의 매력처럼 작동합니다. 그것은 "비뚤어진"선들에 대해서도 오류를 발생시키지 않는다는 점에서 효과가 있지만 두 점 사이의 선처럼 정확하게 보이지는 않습니다. 나는 잘 모르겠지만 하키 스틱입니다. 10x7 그리드 내가
----------
-X--------
--X-------
---X------
----X-----
-----XXXXX
----------
는 내가 원하는 얻을
line('X', (1,1), (5,9))
전화를 주어진 예를 들어
는, 아마 더
----------
-X--------
---X------
-----X----
-------X--
---------X
----------
같은 것입니다 어떻게 것 그 과정에서 직선과 완벽한 대각선을 위해 그것을 부수 지 않으면 서 이것을 할 수 있습니까? 두 경우를 처리하기 위해 두 개의 코드가 필요합니까? 아니면 하나의 알고리즘이 두 가지를 모두 수행 할 수 있습니까?
빠른 속도입니다. 고맙습니다. 완벽하게 작동합니다. –