1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
#include <math.h>
#include <ncurses.h>
#include <stdlib.h>
#include <unistd.h>
#define DEBUG 1
void updateScore(int which, int score);
#ifdef DEBUG
void count_up(void);
#endif
int main(){
int score = 0;
int score2 = 0;
int highscore;
//TODO implement code to retreive existing high score
highscore = 0;
initscr();
cbreak();
keypad(stdscr, true);
noecho();
//TODO consider adding color
//draw current score, and high score
updateScore(0, score);
updateScore(1, highscore);
updateScore(2, score2);
getch();
//DEBUG
#ifdef DEBUG
count_up();
#endif
endwin();
return 0;
}
// 0 for p1 score, 1 for highscore, 2 for p2 score
void updateScore(int which, int score){
char *title;
int start;
switch(which){
case 0: //p1 score
title = "Score";
start = 2;
break;
case 1: //high score
title = "Highscore";
start = getmaxx(stdscr)/2 - 5;
break;
case 2: //p2 score
title = "Score";
start = getmaxx(stdscr) - 6;
break;
default:
exit(1);
}
//draw the title and the score in the right location
mvprintw(0, start, "%s", title);
mvprintw(1, start + (which % 2 ? 5 : 3) - (!score ? 0 : (int)log10(score)), "%d", score);
return;
}
//debug functions start here
#ifdef DEBUG
void count_up(){
int score = 0;
int score2 = 0;
int highscore = 0;
while(1){
score++;
score2++;
highscore++;
updateScore(0, score);
updateScore(1, highscore);
updateScore(2, score2);
refresh();
usleep(50000);
}
return;
}
#endif
|