Skip to content

Instantly share code, notes, and snippets.

@deanh
Created November 22, 2010 23:22
Show Gist options
  • Save deanh/710919 to your computer and use it in GitHub Desktop.
Save deanh/710919 to your computer and use it in GitHub Desktop.
NOW WITH SNOWMEN
#!/usr/bin/env ruby -w
#
# IT'S SNOWING! xo, hdh.
require 'curses'
include Curses
class Snow
def initialize
draw
end
def draw_ground(first = 0, last = Curses::cols - 1)
first.upto(last) do |i|
setpos(Curses::lines - 10, i)
addstr("_")
end
end
def draw_snowman
snowman = <<-'EOSNOWMAN'
:::::: .-~~\ ::::::
|::::| / \ _ |::::|
_ _ l~~~~! ~x .-~_)_ l~~~~!
.-~ ~-. \ / ~x".-~ ~-. \ /
_ / \ || _ ( / \ ||
|| T o o Y || || T o o Y||
==:l l < ! (3 ==:l l < !(3
\\ \ .__/ / /|| \\ \ ._/ / ||
\\ ,r"-,___.-'r.//|| \\,r"-,___.-'r/||
}^ \.( ) _.'//.|| }^\. ( ) _.-//||
/ }~Xi--~ // || / }~Xi--~ // ||\
Y Y I\ \ " || Y Y I\ \ " || Y
| | |o\ \ || | | |o\ \ || |
| l_l Y T || | l_l Y T || |
l "o l_j |! l "o l_j || !
\ || \ ||/
.--^. o .^||. .--^. o ||--.
" ~ `' " ~`'
EOSNOWMAN
setpos(Curses::lines - 25, 10)
addstr(snowman)
end
def draw(num = 150)
draw_snowman
draw_ground(0, 10)
draw_ground(57)
1.upto(num) do |i|
setpos(rand(Curses::lines - 10), rand(Curses::cols))
addstr("*")
end
refresh
end
end
init_screen
begin
snow = Snow.new
i = 0
loop do
snow.draw
sleep 0.1
stdscr.clear if i % 2 == 0
i += 1
end
ensure
close_screen
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment