-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstate.c
129 lines (105 loc) · 2.4 KB
/
state.c
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
// 2018113528 심재헌
// state code file
#include <stdio.h>
#include <curses.h>
#include <signal.h>
#include <fcntl.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>
#include "game.h"
int atime;
void game_over(int score){ // game_over screen
atime=OOPSTIME;
noecho();
initscr();
clear();
signal(SIGALRM,oops_time);
grid_screen();
move(row_value, col_value);
standout();
addstr("OOPS...");
standend();
move(row_value+1, col_value);
addstr("Go study more....");
move(row_value+4, col_value);
printw("The total score is %d.\n",score);
move(row_value+7, col_value);
addstr("The system will be shut down in 4 seconds...");
move(LINES, 0);
refresh();
for(int i=0;i<4;i++){ //alarm signal for 4secs
alarm(1);
pause();
}
out_condition();
}
void correct(int score){ // correct
atime=CORRECTTIME;
noecho();
initscr();
clear();
signal(SIGALRM,correct_time);
grid_screen();
move(row_value, col_value);
standout();
addstr("CORRECT!!!!!!");
standend();
move(row_value+2, col_value);
addstr("We'll move on to the next question in 3 seconds.");
move(row_value+4, col_value);
printw("The current score is %d.\n",score);
move(LINES, 0);
refresh();
for(int i=0;i<3;i++){ // alarm signal for 3 secs
alarm(1);
pause();
}
refresh();
go_condition();
}
void all(){
noecho();
initscr();
clear();
signal(SIGALRM,out_condition);
grid_screen();
move(row_value, col_value);
standout();
addstr("WOW!!!! ALL CLEAR!!!");
standend();
move(row_value+1, col_value);
addstr("You did a great job...");
move(row_value+3, col_value);
addstr("The system will be shut down in 5 seconds...");
move(LINES, 0);
refresh();
alarm(5); // 5secs alarm
pause();
}
void out_condition(){ // make out out_condition
echo(); // echo on
nocrmode(); // no crmode
clear(); // clear tty
endwin(); // end curses
exit(0); // end
}
void go_condition(){
echo(); // echo on
nocrmode(); // no crmode
clear(); // clear tty
endwin(); // end curses
}
void correct_time(){ // correct timer
move(row_value+2, col_value);
printw("We'll move on to the next question in %d seconds.",atime--);
move(LINES,0);
refresh();
}
void oops_time(){ // oops timer
move(row_value+7, col_value);
printw("The system will be shut down in %d seconds...",atime--);
move(LINES,0);
refresh();
}