1
self.grid = [ ['-'] * self.w ] * self.h
が、私は「行「を描く」ことを望む、次のようにして製造し、時間X ワットサイズのグリッドを考えます前記グリッド内の2つの点の間の文字の "次のコードは、私が
ポイント()関数は、単に 文字でグリッド内の単一の点で埋め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))
を作ってみたものです。
これは、直線と完全対角線の魅力のように機能します。それはエラーを投げないという意味で "曲がった"ラインでも動作しますが、ちょうど2つのポイント間のラインのようには見えません。私はホッケーのスティックは分かりません。例えば
、10x7グリッドとコール
line('X', (1,1), (5,9))
与えられた私は、私が好きな何
----------
-X--------
--X-------
---X------
----X-----
-----XXXXX
----------
を取得するには、おそらくよりどのようにでしょう
----------
-X--------
---X------
-----X----
-------X--
---------X
----------
のようなものですこれを行うには、途中で直線と完璧な対角線のためにそれを壊すことはありませんか? 2つのケースを処理するために2つの異なるコードを必要とするのでしょうか、あるいはどちらか一方のアルゴリズムで両方を行うことはできますか?
これは高速でした。どうもありがとう、それは完璧に動作します。 –