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