summaryrefslogtreecommitdiff
path: root/draw.c
blob: 79f8bd5806e32f7d4278851309e1f7c70e9a0aac (plain)
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