9 if (curses.has_colors()) then
11 curses.init_pair(1, curses.COLOR_BLUE, curses.COLOR_BLACK);
12 curses.init_pair(2, curses.COLOR_CYAN, curses.COLOR_BLACK);
18 math.randomseed(os.time());
20 lines = curses.LINES();
28 xpos[i] = c * math.random() + 2;
29 ypos[i] = r * math.random() + 2;
33 if (curses.has_colors()) then
34 local z = 3 * math.random();
35 local c = curses.COLOR_PAIR(z);
37 if (math.floor(z) > 0) then
38 curses.attron(curses.A_BOLD);
42 if (i > 0) then return i - 1;
49 x = c * math.random() + 2;
50 y = r * math.random() + 2;
52 curses.mvaddstr(y, x, ".");
54 curses.mvaddstr(ypos[i], xpos[i], "o");
57 curses.mvaddstr(ypos[i], xpos[i], "O");
60 curses.mvaddstr(ypos[i] - 1, xpos[i], "-");
61 curses.mvaddstr(ypos[i], xpos[i] - 1, "|.|");
62 curses.mvaddstr(ypos[i] + 1, xpos[i], "-");
65 curses.mvaddstr(ypos[i] - 2, xpos[i], "-");
66 curses.mvaddstr(ypos[i] - 1, xpos[i] - 1, "/ \\");
67 curses.mvaddstr(ypos[i], xpos[i] - 2, "| O |");
68 curses.mvaddstr(ypos[i] + 1, xpos[i] - 1, "\\ /");
69 curses.mvaddstr(ypos[i] + 2, xpos[i], "-");
72 curses.mvaddstr(ypos[i] - 2, xpos[i], " ");
73 curses.mvaddstr(ypos[i] - 1, xpos[i] - 1, " ");
74 curses.mvaddstr(ypos[i], xpos[i] - 2, " ");
75 curses.mvaddstr(ypos[i] + 1, xpos[i] - 1, " ");
76 curses.mvaddstr(ypos[i] + 2, xpos[i], " ");
82 local ch = curses.getch();
83 if (ch == string.byte('q', 1)) or (ch == string.byte('Q', 1)) then break; end