코드
테트리스
ehei
2006. 2. 13. 21:46
그 동안 공부한 것을 테스트해보기 위해 급히 만든 테트리스. 현재는 도스 용이다.
// 싱글, 멀티 플랫폼 분리. 자동 블록 떨어지기 추가. 완전 메시지 방식
// for network play test
그건 그렇고 메모리 누수는 없는지 걱정된다. 처음에 웬일인지 프로그램이 종료되기 위해 5초 이상 걸리는 일도 있어서(지금은 코드를 엎어서 다행히 해방), 가능한 메모리 관리를 적게 할 수 있는 STL을 적극 사용했다. 최적화도 해야 하나 일단 그래픽 라이브러리로 이걸 래핑하는 것이 더 급하다.
네트워크를 위해 필요한 메시지의 구조체는 다음과 같다.
struct Message
{
enum Message _message ;
int playerId ;
int blockId ; // 새로운 블록이 등장 시 어떤 것인지 확인
}
시작 시, 상대의 playId를 수신하여 초기화한다. 이후, 해당 playId의 메시지가 들어오면 버퍼에 쌓았다가 사용자 입력이 없으면 처리한다.
아래는 스크린샷: 눈에 안 띠는데 잘 보면 블록 모양이다... 2인 플레이 상태.