还是实验楼的小实验,利用了信号机制和curses绘图库,先把代码贴出来,回头再写注释。
#include<stdio.h>
#include<stdlib.h>
#include<signal.h>
#include<sys/time.h>
#include<curses.h>
#include<time.h>
#define CHAR_BIRD '0'
#define CHAR_STONE '*'
#define CHAR_BLANK ' '
typedef struct node{
int x,y;
struct node *next;
}node, *Node;
Node head,tail;
int bird_x,bird_y;
int ticker;
void init();
void init_bird();
void init_draw();
void init_head();
void init_wall();
void drop(int sig);
int set_ticker(int n_msec);
int set_ticker(int n_msec)
{
struct itimerval timeset;
long n_sec,n_usec;
n_sec = n_msec / 1000;
n_usec = (n_msec % 1000) * 1000L;
timeset.it_interval.tv_sec = n_sec;
timeset.it_interval.tv_usec = n_usec;
timeset.it_value.tv_sec = n_sec;
timeset.it_value.tv_usec = n_usec;
return setitimer(ITIMER_REAL, ×et,NULL);
}
void drop(int s