2014-10-09 4 views
0

특정 자연 숫자가 주어진 숫자와 같은 ASCII 아트로 인쇄되는 것으로 가정하는 기능을 만들려고합니다.주어진 자연수 그리기

이 같은 ascii(50) 뭔가가 나타납니다 호출하는 경우의가 있다고 가정 해 봅시다 :

@@@@@ @@@@@ 
@  @ @ 
@@@@@ @ @ 
    @ @ @ 
@@@@@ @@@@@ 

I했던이 :

$numbers = { 
    0 => "@@@@\[email protected] @\[email protected] @\[email protected] @\[email protected]@@@\n", 
    1 => " @\n @@\n @ @\n @\n @\n" 
} 

def ascii n 
    n.to_s.each_char { |chr| puts $numbers[chr.to_i] } 
end 

ascii 100 

하지만 신속가 각각 인쇄되어 있기 때문에 작동하지 않는 것을 발견 줄 바꿈을 방지하기 위해 한 번에 한 줄씩 인쇄해야합니다.

솔직히 나는 어떤 생각을 해줄 수있는 단서가 없다?

+0

각 숫자는 5 줄로 배열에 저장 한 다음 각 줄 1, 줄 2 ... line5를 인쇄하여 실행합니다. –

답변

0

변수 $numbers을 4 개 또는 5 개의 세그먼트로 배열 한 다음 함수 ascii을 변경하여 각 세그먼트를 하나씩 인쇄 할 수 있습니다. 내가 시도해 볼 수있어.

+0

그러면 각 숫자를 여러 세그먼트의 목록으로 저장해야합니까? – dabadaba

+0

예, 0의 경우 [ "@@@@", "@ @", "@ @", "@ @", "@@@@"] 일 수 있습니다. – Saurabh

관련 문제