続:フィジカルの練習問題(易) (きしだのはてな)
それっぽい対角線を書くようにちょっといじりました。
y=axの線分と、傾きを逆にして切片(懐かしい言葉!)を加算した線分の二本と重なる場合は"x"を出すようにしました。
X = 10 Y = 5 require 'rational' for rowpos in 1..Y do for colpos in 1..X do diagonal = (Y.quo(X) * colpos).ceil opposite_diagonal = (-Y.quo(X) * colpos).ceil + Y if diagonal == rowpos || opposite_diagonal == rowpos print "x" else print "o" end end puts end
上の実行しても右上が塗られないし、ほかにもかなり精度が荒いけどもういいや(^^;
掛け算割り算なしルールは全然わからないのでもう諦めます。