#Linux Tettris 코딩, 2가지 방법에 대해서(2번째 방법을 개인적으로 선호합니다.)
- curses.h 를 이용한 리눅스터미날환경에서 동작하는 프로그램방식입니다.
1. 기본적인 흐름을 따라가는 방법
- 키보드의 이벤트와 time이벤트를 동시에 하나의 함수에서 처리하는 로직
main(void)
{
int tris[MAPY][MAPX],design[ARR_CNT][ARR_CNT],xpos,ypos,score;
while(1)
{
if(keyhit())
{
ch = getch();
if(ch==KEY_RIGHT) ,,,,,,
}
kk=downPossible(tris,design,xpos,ypos,score);
if(kk==0)
{
if(ypos==0) exit(0);
else
{
,,,,,
}
}
}
}
2. time_event handler를 이용해서 키보드로 제어하지 않는 부분을 해당코드에 입력
- time이벤트처리를 따로 뺴고, 키보드의 로직은 다른 함수에서 분리시키는 로직
#include<signal.h>
#include<sys/time.h>
void time_handler(int signum)
{
static int cnt=0;
printf("timer expired[%d]\n", cnt++);
}
int main(void)
{
struct sigaction sa;
struct itimerval timer;
memset(&sa,0x00,sizeof(sa));
sa.sa_handler=&time_handler;
sigaction(SIGVTALRM,&sa,NULL);
timer.it_value.tv_sec=0;
timer.it_value.tv_usec=250000;
timer.it_interval.tv_sec=0;
timer.it_interval.tv_usec=250000;
setitimer(ITIMER_VIRTUAL,&timer,NULL);
while(1);
}
'리눅스 > Ubuntu 18.04.5 LTS' 카테고리의 다른 글
Linux Tettris 소스코드(배열모양:4 * 4) (0) | 2021.04.17 |
---|---|
curses.h: No such file or directory (0) | 2021.04.16 |
Linux Tettris game 프로그램코드(c언어) (0) | 2021.04.15 |
Ubuntu 18.04 파일실행 export PATH=./:$PATH (0) | 2021.04.14 |
Ubuntu 18.04 apt install/remove/list (0) | 2021.04.08 |