2014-05-20 2 views
0

*를 사용하여 루비에서 X를 그려 봅니다. 나는 문자 X를 만들기 위해 다른 대각선과 교차하는 대각선을 얻을 수 없다. 아래 코드를 보아 주셔서 감사합니다.별표가있는 루비로 그리기

# Draw X 
# Draw diagonal1 
for y in 1..13 
    for x in 1..(13-y) 
    print " " 
    end 
    for x in 1..7 
    print "*" 
    end 
    print "\n" 
end 

# Draw diagonal2 
for y in 1..13 
    for x in 1..(y-13) 
      print " " 
    end 
    for x in 1..7 
     print "*" 
    end 
    print "\n" 
end 
+0

당신은 [저주]를 사용할 수 있습니다 (http://www.ruby-doc.org/stdlib -2.0/libdoc/curses/rdoc/Curses.html) 라이브러리를 사용하여 터미널에서 임의의 (x, y) 위치로 그릴 수 있습니다. –

답변

1

줄을 (print "\n") 내려 가면 다시 이동할 수 없습니다.

당신은 조금 더 나은 계획을 시도하고 동시에 두 대각선을 인쇄해야합니다 :

3.downto(0).each { |i| puts ('*' * 7 + ' ' * i*2 + '*' * 7).center(20) } 
5.downto(3).each { |i| puts ('*' * (i*2+1)).center(20) } 
3.upto(5).each { |i| puts ('*' * (i*2+1)).center(20) } 
0.upto(3).each { |i| puts ('*' * 7 + ' ' * i*2 + '*' * 7).center(20) }