続:フィジカルの練習問題(易) (きしだのはてな)

それっぽい対角線を書くようにちょっといじりました。
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

上の実行しても右上が塗られないし、ほかにもかなり精度が荒いけどもういいや(^^;
掛け算割り算なしルールは全然わからないのでもう諦めます。