#! /usr/bin/env python # # $Id$ # # somebody should probably check the randrange()s... import curses from random import randrange def next_j(j): if j == 0: j = 4 else: j -= 1 if curses.has_colors(): z = randrange(0, 3) color = curses.color_pair(z) if z: color = color | curses.A_BOLD stdscr.attrset(color) return j def main(win): # we know that the first argument from curses.wrapper() is stdscr. # Initialize it globally for convenience. global stdscr stdscr = win if curses.has_colors(): bg = curses.COLOR_BLACK curses.init_pair(1, curses.COLOR_BLUE, bg) curses.init_pair(2, curses.COLOR_CYAN, bg) curses.nl() curses.noecho() # XXX curs_set() always returns ERR # curses.curs_set(0) stdscr.timeout(0) c = curses.COLS - 4 r = curses.LINES - 4 xpos = [0] * c ypos = [0] * r for j in range(4, -1, -1): xpos[j] = randrange(0, c) + 2 ypos[j] = randrange(0, r) + 2 j = 0 while True: x = randrange(0, c) + 2 y = randrange(0, r) + 2 stdscr.addch(y, x, ord('.')) stdscr.addch(ypos[j], xpos[j], ord('o')) j = next_j(j) stdscr.addch(ypos[j], xpos[j], ord('O')) j = next_j(j) stdscr.addch( ypos[j] - 1, xpos[j], ord('-')) stdscr.addstr(ypos[j], xpos[j] - 1, "|.|") stdscr.addch( ypos[j] + 1, xpos[j], ord('-')) j = next_j(j) stdscr.addch( ypos[j] - 2, xpos[j], ord('-')) stdscr.addstr(ypos[j] - 1, xpos[j] - 1, "/ \\") stdscr.addstr(ypos[j], xpos[j] - 2, "| O |") stdscr.addstr(ypos[j] + 1, xpos[j] - 1, "\\ /") stdscr.addch( ypos[j] + 2, xpos[j], ord('-')) j = next_j(j) stdscr.addch( ypos[j] - 2, xpos[j], ord(' ')) stdscr.addstr(ypos[j] - 1, xpos[j] - 1, " ") stdscr.addstr(ypos[j], xpos[j] - 2, " ") stdscr.addstr(ypos[j] + 1, xpos[j] - 1, " ") stdscr.addch( ypos[j] + 2, xpos[j], ord(' ')) xpos[j] = x ypos[j] = y ch = stdscr.getch() if ch == ord('q') or ch == ord('Q'): return elif ch == ord('s'): stdscr.nodelay(0) elif ch == ord(' '): stdscr.nodelay(1) curses.napms(50) curses.wrapper(main)
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
.life.pyo.40009 | File | 6.63 KB | 0644 |
|
.ncurses.pyo.40009 | File | 5.71 KB | 0644 |
|
.rain.pyo.40009 | File | 2.24 KB | 0644 |
|
.repeat.pyo.40009 | File | 1.42 KB | 0644 |
|
.tclock.pyo.40009 | File | 3.56 KB | 0644 |
|
.xmas.pyo.40009 | File | 19.4 KB | 0644 |
|
README | File | 852 B | 0644 |
|
life.py | File | 7.18 KB | 0755 |
|
life.pyc | File | 6.63 KB | 0644 |
|
life.pyo | File | 6.63 KB | 0644 |
|
ncurses.py | File | 6.49 KB | 0644 |
|
ncurses.pyc | File | 5.71 KB | 0644 |
|
ncurses.pyo | File | 5.71 KB | 0644 |
|
rain.py | File | 2.35 KB | 0644 |
|
rain.pyc | File | 2.24 KB | 0644 |
|
rain.pyo | File | 2.24 KB | 0644 |
|
repeat.py | File | 1.48 KB | 0755 |
|
repeat.pyc | File | 1.42 KB | 0644 |
|
repeat.pyo | File | 1.42 KB | 0644 |
|
tclock.py | File | 3.25 KB | 0644 |
|
tclock.pyc | File | 3.56 KB | 0644 |
|
tclock.pyo | File | 3.56 KB | 0644 |
|
xmas.py | File | 24.85 KB | 0644 |
|
xmas.pyc | File | 19.4 KB | 0644 |
|
xmas.pyo | File | 19.4 KB | 0644 |
|