Class: AsciiParadise::SierpinksiTriangle

Inherits:
Base
  • Object
show all
Defined in:
lib/ascii_paradise/static_ascii/sierpinksi_triangle.rb

Overview

AsciiParadise::SierpinksiTriangle

Constant Summary collapse

N_TIMES =
#

N_TIMES

#
30

Instance Method Summary collapse

Methods inherited from Base

animation_dir?, #animation_directory?, #clear_screen, #colour_parse_this_string, #debug?, #do_not_run_already, #do_not_use_clear, #do_use_random_colour, #do_wait_for_keypress_event, e, #e, #enable_debug, #is_animated?, #menu, #project_base_dir?, #register_sigint, #remove_trailing_ansci_escape_code, #report_how_many_animated_components_exist, #return_basename_of_this_file_without_the_extension, #return_random_colour, #rev, #royalblue, run, #set_use_this_colour, #sfancy, #sfile, #show_available_components, #show_help, #simp, #slategrey, #sort_files, #static_dir?, #steelblue, #swarn, #use_colours?

Constructor Details

#initialize(optional_input = ARGV, run_already = true) ⇒ SierpinksiTriangle

#

initialize

#


26
27
28
29
30
31
32
33
34
35
# File 'lib/ascii_paradise/static_ascii/sierpinksi_triangle.rb', line 26

def initialize(
    optional_input = ARGV,
    run_already    = true
  )
  reset
  handle_input(
    optional_input
  )
  run if run_already
end

Instance Method Details

#handle_input(i) ⇒ Object

#

handle_input

This method will handle input given to this class.

#


42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/ascii_paradise/static_ascii/sierpinksi_triangle.rb', line 42

def handle_input(i)
  if i
    if i.is_a?(Array) and !i.empty?
      @n_times = i.first
    elsif i.is_a?(Array) and i.empty? # Array is empty, thus use the default.
      @n_times = N_TIMES
    elsif i.is_a? Hash
      if i.has_key? :size
        @n_times = i.delete :size
      end
    else
      @n_times = i
    end
    @n_times = @n_times.to_i
  end
end

#resetObject

#

reset

#


62
63
64
# File 'lib/ascii_paradise/static_ascii/sierpinksi_triangle.rb', line 62

def reset
  @n_times = N_TIMES
end

#runObject

#

run

#


69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/ascii_paradise/static_ascii/sierpinksi_triangle.rb', line 69

def run
  @n_times.times { |counter|
    joined_substring = (0 .. counter).map {|entry|
      # =================================================================== #
      # Either add a ' .' token or a ' A' token.
      # =================================================================== #
      ~counter & entry > 0 ? ' .' : ' A'
    }.join
    print ' ' * (@n_times-1-counter), joined_substring
    e
  }
end