프로그래밍

 3198, 1/160 회원가입  로그인  
   영원한공부
   [C언어] 멀티쓰레드??

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3074 [복사]


제가 지렁이게임(아이템을 먹으면 길이가 길어지는)을 c언어로 만드는 도중

① 아이템을 먹으면 길이가 증가

② 방향키를 누르면 다른 방향키를 누를 때까지 그 방향으로 계속 진행

이 2가지를 구현 하려다가 막혔는데 지금 이것들을 구현하려고 하는 방법이


① 아이템을 먹으면 count를 1 증가시킴. 만약 count가 1이면 같은 위치에서 1번씩 더 출력함.

ㅇ->ㅇㅇ-> ㅇㅇ->  ㅇㅇ->   ㅇㅇ->    ㅇㅇ->     ㅇㅇ  

② 실시간으로 입력?

이런 식인데 이걸 구현하려면


① 동시에 재귀함수를 여러개 실행
② 버퍼에 데이터가 있을 때만 getch()실행

이런 게 돼야 하는데 질문해보니  '멀티쓰레드'를 이용하면 된다고 하던데 멀티쓰레드를 다룬

책이 있나요?

  Hit : 11134     Date : 2011/06/27 10:21



    
목탁든교황님 아뇨, 재귀 저얼때 필요 없구요.
버퍼에 데이터가 있을때만 getch() 안해도 되구요
멀티쓰레드 무슨 소립니까.
멀티쓰레드는 몬스터하고 유저하고 다르게 움직일때 필요한거구요.
뱀꼬리에 장애물이 움직이지 않는 이상 필요 없습니다.

제 생각에
버퍼에 데이터가 있을때만 getch()
하는것은
if ( kbhit() )
을 말하는 것 같네요.
while(1) // 무한 루프
{
......if( kbhit() ) {
// 내용
......}
}
하시면 버튼이 눌렸을때만 저 if문 안으로 들어갑니다.

제가 만든거 보여드릴까요?

입력을 안받아도 움직이려면 else 문 만들고 거기에 코딩하면 되겠죠.
그리고 만들때 꼬리배열에는 좌표만 써넣는게 좋습니다.

tail[100] = {304, 305, 405, 505}

이렇게하면
....@○
.........○○
이런모양의 꼬리가 되겠죠?
2011/06/27  
목탁든교황님 그리고 Sleep 으로 멈추는 시간 주세요 2011/06/27  
목탁든교황님 http://cafe.naver.com/godgamesoftware/3203

여기에 있습니다.
2011/06/27  
영원한공부 아 kbhit() 라는 함수가 있었군요. 덕분에 2번째 문제는 해결 됐어요. 1번째는 아직 잘 모르겠네요.

그리고 좋은 카페 가르쳐주셔서 감사합니다.
2011/06/28