Last active
April 25, 2018 15:58
-
-
Save JorgeMadson/e0e87a61fed5ad6942328a76965993f4 to your computer and use it in GitHub Desktop.
Desafio Pipefy
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Desafio: https://drive.google.com/file/d/1VJuk98F3rdC93pBi9_OfNeFZBItJqafU/view | |
| #!/usr/bin/env ruby | |
| # Função que mostra o numero como em um display | |
| # e muda o número de colunas de acordo com o número | |
| # Basicamente o desenho dos números é montado com retas horizontais e verticais | |
| # Autor: Jorge Madson | |
| #ARGV é uma array global que é daonde o ruby pega os paramêtros | |
| n = ARGV.first.to_i | |
| def reta_horizontal(n) | |
| puts n.to_s * n | |
| end | |
| def reta_vertical_direita(n) | |
| n.times { puts ' ' * (n - 1) + "#{n}\n" } | |
| end | |
| def reta_vertical_esquerda(n) | |
| n.times { puts "#{n}\n" } | |
| end | |
| #Função | |
| def num(n) | |
| if n == 2 | |
| reta_horizontal(n) | |
| reta_vertical_direita(n) | |
| reta_horizontal(n) | |
| reta_vertical_esquerda(n) | |
| reta_horizontal(n) | |
| elsif n == 3 | |
| reta_horizontal(n) | |
| reta_vertical_direita(n) | |
| reta_horizontal(n) | |
| reta_vertical_direita(n) | |
| reta_horizontal(n) | |
| elsif n == 4 | |
| n.times { puts "4 4\n" } | |
| reta_horizontal(n) | |
| reta_vertical_direita(n) | |
| elsif n == 5 | |
| reta_horizontal(n) | |
| reta_vertical_esquerda(n) | |
| reta_horizontal(n) | |
| reta_vertical_direita(n) | |
| reta_horizontal(n) | |
| elsif n == 6 | |
| reta_horizontal(n) | |
| reta_vertical_esquerda(n) | |
| reta_horizontal(n) | |
| n.times { puts "#{n} #{n}\n" } | |
| reta_horizontal(n) | |
| elsif n == 7 | |
| reta_horizontal(n) | |
| reta_vertical_direita(n) | |
| elsif n == 8 | |
| reta_horizontal(n) | |
| (n / 2).times { puts n.to_s + ' ' * (n - 2) + "#{n}\n" } | |
| reta_horizontal(n) | |
| (n / 2).times { puts n.to_s + ' ' * (n - 2) + "#{n}\n" } | |
| reta_horizontal(n) | |
| elsif n == 9 | |
| reta_horizontal(n) | |
| (n / 2).times { puts n.to_s + ' ' * (n - 2) + "#{n}\n" } | |
| reta_horizontal(n) | |
| reta_vertical_direita(n) | |
| else | |
| p '1' | |
| end | |
| end | |
| #Execução | |
| num(n) |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Pra executar, é só baiar o script e chamar
ruby num.rb 5(ou outro número)