diff -r ffa851df0825 -r 2fb8b9db1c86 symbian-qemu-0.9.1-12/python-2.6.1/Demo/curses/rain.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/symbian-qemu-0.9.1-12/python-2.6.1/Demo/curses/rain.py Fri Jul 31 15:01:17 2009 +0100 @@ -0,0 +1,94 @@ +#!/usr/bin/env python +# +# $Id: rain.py 46625 2006-06-03 23:02:15Z andrew.kuchling $ +# +# 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)