+++ /dev/null
-width: 28
-height: 29
-tab: "F------------7F------------7"
- "| || |"
- "| F--7 F---7 || F---7 F--7 |"
- "| | | | | || | | | | |"
- "| L--J L---J LJ L---J L--J |"
- "| |"
- "| F--7 F7 F------7 F7 F--7 |"
- "| L--J || L--7F--J || L--J |"
- "| || || || |"
- "L----7 |L--7 || F--J| F----J"
- " | |F--J LJ L--7| | "
- " | || || | "
- " | || F------7 || | "
- "-----J LJ | | LJ L-----"
- " | | "
- "-----7 F7 | | F7 F-----"
- " | || L------J || | "
- " | || || | "
- " | |L--7 F7 F--J| | "
- "F----J |F--J || L--7| L----7"
- "| || || || |"
- "| F--7 || F--JL--7 || F--7 |"
- "| L--J LJ L------J LJ L--J |"
- "| |"
- "| F--7 F---7 F7 F---7 F--7 |"
- "| | | | | || | | | | |"
- "| L--J L---J || L---J L--J |"
- "| || |"
- "L------------JL------------J"
-width: 28
-height: 29
-tab: "F------------7F------------7| || || F--7 F---7 || F---7 F--7 || | | | | || | | | | || L--J L---J LJ L---J L--J || || F--7 F7 F------7 F7 F--7 || L--J || L--7F--J || L--J || || || || |L----7 |L--7 || F--J| F----J | |F--J LJ L--7| | | || || | | || F------7 || | -----J LJ | | LJ L----- | | -----7 F7 | | F7 F----- | || L------J || | | || || | | |L--7 F7 F--J| | F----J |F--J || L--7| L----7| || || || || F--7 || F--JL--7 || F--7 || L--J LJ L------J LJ L--J || || F--7 F---7 F7 F---7 F--7 || | | | | || | | | | || L--J L---J || L---J L--J || || |L------------JL------------J"
+width: 39
+height: 24
+tab: "F----------7 |.L-----J.| F----------7"
+ "|*.........| |....c....| |.........*|"
+ "|.F-7.F--7.| |.F-----7.| |.F--7.F-7.|"
+ "|.L-J.L--J.L--J.L-7 F-J.L--J.L--J.L-J.|"
+ "|................*| |*................|"
+ "|.F-7.F-----7.F---J L---7.F-----7.F-7.|"
+ "|.| |.L---7 |.L---------J.| F---J.| |.|"
+ "|.| |....*| |.............| |*....| |.|"
+ "|.| |.F-7.| |.F---7xF---7.| |.F-7.| |.|"
+ "|.L-J.| |.L-J.|F--JxL--7|.L-J.| |.L-J.|"
+ "|.....| |.....|| ||.....| |.....|"
+ "L---7.| L---7.||F7 F7||.F---J |.F---J"
+ "F---J.| F---J.|||L---J|||.L---7 |.L---7"
+ "|.....| |.....||L-----J||.....| |.....|"
+ "|.F-7.| |.F-7.|L-------J|.F-7.| |.F-7.|"
+ "|.| |.L-J.| |.L---------J.| |.L-J.| |.|"
+ "|.| |....*| |.............| |*....| |.|"
+ "|.| |.F---J |.F---------7.| L---7.| |.|"
+ "|.L-J.L-----J.L---7 F---J.L-----J L-J.|"
+ "|................*| |*................|"
+ "|.F-7.F--7.F--7.F-J L-7.F--7.F--7.F-7.|"
+ "|.L-J.L--J.| |.L-----J.| |.L--J.L-J.|"
+ "|*.........| |.........| |.........*|"
+ "L----------J |.F-----7.| L----------J"
+++ /dev/null
-width: 35
-height: 26
-tab: "F-----------7 | | F-----------7"
- "| | | | | |"
- "| F--7 F--7 | | | | F--7 F--7 |"
- "| | | | | | | | | | | | | |"
- "| L--J L--J L---J L---J L--J L--J |"
- "| |"
- "| F--7 F--------7 F--------7 F--7 |"
- "| | | L---7 F--J L--7 F---J | | |"
- "| | | | | | | | | |"
- "| | | F-7 | | F---7 | | F-7 | | |"
- "| L--J | | L-J | | L-J | | L--J |"
- "| | | | | | | |"
- "L----7 | L---7 | | F---J | F----J"
- "F----J | F---J | | L---7 | L----7"
- "| | | | | | | |"
- "| F--7 | | F-7 | | F-7 | | F--7 |"
- "| | | L-J | | L---J | | L-J | | |"
- "| | | | | | | | | |"
- "| | | F---J L--7 F--J L---7 | | |"
- "| L--J L--------J L--------J L--J |"
- "| |"
- "| F--7 F--7 F---7 F---7 F--7 F--7 |"
- "| | | | | | | | | | | | | |"
- "| L--J L--J | | | | L--J L--J |"
- "| | | | | |"
- "L-----------J | | L-----------J"
+++ /dev/null
-width: 35
-height: 26
-tab: "F-----------7 | | F-----------7| | | | | || F--7 F--7 | | | | F--7 F--7 || | | | | | | | | | | | | || L--J L--J L---J L---J L--J L--J || || F--7 F--------7 F--------7 F--7 || | | L---7 F--J L--7 F---J | | || | | | | | | | | || | | F-7 | | F---7 | | F-7 | | || L--J | | L-J | | L-J | | L--J || | | | | | | |L----7 | L---7 | | F---J | F----JF----J | F---J | | L---7 | L----7| | | | | | | || F--7 | | F-7 | | F-7 | | F--7 || | | L-J | | L---J | | L-J | | || | | | | | | | | || | | F---J L--7 F--J L---7 | | || L--J L--------J L--------J L--J || || F--7 F--7 F---7 F---7 F--7 F--7 || | | | | | | | | | | | | || L--J L--J | | | | L--J L--J || | | | | |L-----------J | | L-----------J"
case '+':
element = ACS_PLUS;
break;
- case 'C':
+ case 'c':
setcolor (yellow_black);
element = 'C';
break;
- case 'O':
+ case 'C':
+ setcolor (red_black);
+ element = 'C';
+ break;
+ case 'o':
setcolor (yellow_black);
element = 'O';
break;
+ case 'O':
+ setcolor (red_black);
+ element = 'O';
+ break;
+ case '.':
+ setcolor (brown_black);
+ element = ACS_BULLET;
+ break;
+ case '*':
+ setcolor (brown_black);
+ element = ACS_DIAMOND;
+ break;
+ case 'x':
+ setcolor (blue_black);
+ element = ACS_CKBOARD;
+ break;
}
mvaddch (board->yoffset + y, board->xoffset + x, element);
setcolor (gray_black);
void msgwindow (char *msg, int xoffset, int yoffset, int length)
{
- setcolor (gray_black);
- _dobound ((length > 0) ? length : (int)strlen (msg), 1, xoffset, yoffset);
+ setcolor (black_gray);
+ //_dobound ((length > 0) ? length : (int)strlen (msg), 1, xoffset, yoffset);
if (length > 0) {
int i;
for (i = 0; i < length; i++) {
}
}
mvaddstr (yoffset, xoffset + ((length > 0) ? (length - (int)strlen (msg)) / 2 : 0), msg);
- setcolor (black_gray);
+ setcolor (gray_black);
}
/* vim: set ts=4 sw=4 et: */
int height = 20;
int width = 40;
int xoffset = 1;
-int yoffset = 0;
+int yoffset = 1;
+int scorelen = 15;
char *help =
"<i> Move up cursor\n"
start_color ();
/* window positions (board) */
+ int xscore = (board->width - scorelen) / 2;
+ int yscore = 0;
int xboard = board->xoffset = xoffset;
int yboard = board->yoffset = yoffset;
int xsave = max (xboard + (board->width - savelen) / 2, 1);
/* pacman position */
int x = 0;
int y = 0;
- if (findchar (board, 'C', &x, &y)) {
+ if (findchar (board, 'c', &x, &y)) {
VERBOSE (WARNING, printf ("can't find Pacman\n"));
}
int nx = x;
/* event loop */
int stop = 0;
int draw = 1;
+ int mode = 0;
+ int score = 0;
while (!stop) {
/* draw board */
draw = 0;
}
+ /* display score */
+ char msg[128] = {0};
+ sprintf (msg, "score: % 5d", score);
+ msgwindow (msg, xscore, yscore, scorelen);
+
/* move pacman */
if ((nx != x) || (ny != y)) {
- *getcell (board, x, y) = 'O';
+ *getcell (board, x, y) = (mode == 0) ? 'o' : 'O';
displayelement (board, x, y);
refresh ();
- msleep (250);
+ msleep (150);
*getcell (board, x, y) = ' ';
displayelement (board, x, y);
x = nx;
y = ny;
- *getcell (board, x, y) = 'C';
+ *getcell (board, x, y) = (mode == 0) ? 'c' : 'C';
displayelement (board, x, y);
refresh ();
- msleep (250);
+ msleep (150);
}
int ch = getch ();
nx = ((x < board->width - 1) ? x : -1) + 1;
break;
}
- if (*getcell (board, nx, ny) != ' ') {
+
+ /* check new position */
+ char *cell = getcell (board, nx, ny);
+ switch (*cell) {
+ case '*':
+ mode = 1;
+ /* fallthrough */
+ case '.':
+ score++;
+ /* fallthrough */
+ case ' ':
+ break;
+ default:
nx = x;
ny = y;
}
--- /dev/null
+#include <unistd.h>
+
+#include "time.h"
+
+void msleep (int msec)
+{
+ usleep (msec * 1000);
+}
+
+/* vim: set ts=4 sw=4 et: */
--- /dev/null
+#ifndef __TIME_H__
+#define __TIME_H__
+
+void msleep (int msec);
+
+#endif /* __TIME_H__ */
+
+/* vim: set ts=4 sw=4 et: */