Skip to content

Instantly share code, notes, and snippets.

@mehdi-farsi
Last active April 17, 2023 21:35
Show Gist options
  • Star 17 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save mehdi-farsi/0fa6622d768f926163fb6e4d5a66e57f to your computer and use it in GitHub Desktop.
Save mehdi-farsi/0fa6622d768f926163fb6e4d5a66e57f to your computer and use it in GitHub Desktop.
trap("SIGINT") { exit! }
total_width = `stty size`.scan(/\d+/)[1].to_i # terminal width
snowflakes = {}
puts "\033[2J"; # clearing output
loop do
snowflakes[rand(total_width)] = 0
snowflakes.each do |column, row|
snowflakes[column] += 1 # increment row value
print "\033[#{row};#{column}H" + " " # move cursor to [row, column] and replace current ❃ by a space
print "\033[#{row + 1};#{column}H" # move cursor down (row + 1)
print "❃ " # print snowflake
print "\033[0;0H" # move cursor to top/left position (cursor doesn't follow snowflake)
end
sleep 0.1
end
clear_screen = -> { puts "\033[2J" }
trap("SIGINT") do
clear_screen.call
puts "Morpheus: 'Follow me.'"
exit!
end
total_width = `stty size`.scan(/\d+/)[1].to_i # terminal width
chars = {}
eligible_chars = ('a'..'z').to_a + ('1'..'9').to_a
clear_screen.call
loop do
chars[rand(total_width)] = 0
chars.each do |column, row|
chars[column] += 1 # increment row value
print "\033[#{row + 1};#{column}H" # move cursor down (row + 1)
print "#{eligible_chars.sample} " # print random character
print "\033[0;0H" # move cursor to top/left position
end
sleep 0.1
end
@spacecowb0y
Copy link

So cool!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment