C/C++ 예제

시삽: 레드플러스 님 
게시판 이동:
 제목 : 3차원 배열을 사용하여 테트리스 블록 표현
글번호: 343
작성자: 레드플러스
작성일: 2013/01/16 오전 12:01:54
조회수: 4950
// 3차원 배열을 사용하여 테트리스 블록 표현
// 이 예제의 내용은 실제 테트리스 만들기 프로젝트에서 사용할 예정
#include <stdio.h>

// 테트리스 블록 : 총 7개의 블록 생성
int blocks[28][4][4] =
    {
        // ####
        {
            {0, 1, 0, 0},
            {0, 1, 0, 0},
            {0, 1, 0, 0},
            {0, 1, 0, 0}
        },  
        {
            {0, 0, 0, 0},
            {0, 0, 0, 0},
            {1, 1, 1, 1},
            {0, 0, 0, 0}
        },    
        {
            {0, 1, 0, 0},
            {0, 1, 0, 0},
            {0, 1, 0, 0},
            {0, 1, 0, 0}
        },    
        {
            {0, 0, 0, 0},
            {0, 0, 0, 0},
            {1, 1, 1, 1},
            {0, 0, 0, 0}
        },

        // ##
        // ##
        {
            {1, 1, 0, 0},
            {1, 1, 0, 0},
            {0, 0, 0, 0},
            {0, 0, 0, 0}
        },  
        {
            {1, 1, 0, 0},
            {1, 1, 0, 0},
            {0, 0, 0, 0},
            {0, 0, 0, 0}
        },    
        {
            {1, 1, 0, 0},
            {1, 1, 0, 0},
            {0, 0, 0, 0},
            {0, 0, 0, 0}
        },    
        {
            {1, 1, 0, 0},
            {1, 1, 0, 0},
            {0, 0, 0, 0},
            {0, 0, 0, 0}
        },

        //  #
        // ###
        {
            {0, 0, 0, 0},
            {0, 1, 0, 0},
            {1, 1, 1, 0},
            {0, 0, 0, 0}
        },  
        {
            {0, 0, 0, 0},
            {0, 1, 0, 0},
            {1, 1, 0, 0},
            {0, 1, 0, 0}
        },    
        {
            {0, 0, 0, 0},
            {0, 0, 0, 0},
            {1, 1, 1, 0},
            {0, 1, 0, 0}
        },    
        {
            {0, 0, 0, 0},
            {0, 1, 0, 0},
            {0, 1, 1, 0},
            {0, 1, 0, 0}
        },

        //   #
        // ###
        {
            {0, 0, 0, 0},
            {0, 0, 1, 0},
            {1, 1, 1, 0},
            {0, 0, 0, 0}
        },  
        {
            {0, 1, 1, 0},
            {0, 0, 1, 0},
            {0, 0, 1, 0},
            {0, 0, 0, 0}
        },    
        {
            {1, 1, 1, 0},
            {1, 0, 0, 0},
            {0, 0, 0, 0},
            {0, 0, 0, 0}
        },    
        {
            {1, 0, 0, 0},
            {1, 0, 0, 0},
            {1, 1, 0, 0},
            {0, 0, 0, 0}
        },

        // #
        // ###
        {
            {0, 0, 0, 0},
            {1, 0, 0, 0},
            {1, 1, 1, 0},
            {0, 0, 0, 0}
        },
        {
            {0, 0, 1, 0},
            {0, 0, 1, 0},
            {0, 1, 1, 0},
            {0, 0, 0, 0}
        },                 
        {                 
            {1, 1, 1, 0},
            {0, 0, 1, 0},
            {0, 0, 0, 0},
            {0, 0, 0, 0}
        },                 
        {                 
            {1, 1, 0, 0},
            {1, 0, 0, 0},
            {1, 0, 0, 0},
            {0, 0, 0, 0}
        },

        //  ##
        // ##
        {
            {0, 0, 0, 0},
            {0, 1, 1, 0},
            {1, 1, 0, 0},
            {0, 0, 0, 0}
        },  
        {
            {0, 1, 0, 0},
            {0, 1, 1, 0},
            {0, 0, 1, 0},
            {0, 0, 0, 0}
        },    
        {
            {0, 0, 0, 0},
            {0, 1, 1, 0},
            {1, 1, 0, 0},
            {0, 0, 0, 0}
        },  
        {
            {0, 1, 0, 0},
            {0, 1, 1, 0},
            {0, 0, 1, 0},
            {0, 0, 0, 0}
        },  

        // ##
        //  ##
        {
            {0, 0, 0, 0},
            {1, 1, 0, 0},
            {0, 1, 1, 0},
            {0, 0, 0, 0}
        },  
        {
            {0, 0, 1, 0},
            {0, 1, 1, 0},
            {0, 1, 0, 0},
            {0, 0, 0, 0}
        },
        {  
            {0, 0, 0, 0},
            {1, 1, 0, 0},
            {0, 1, 1, 0},
            {0, 0, 0, 0}
        },  
        {
            {0, 0, 1, 0},
            {0, 1, 1, 0},
            {0, 1, 0, 0},
            {0, 0, 0, 0}
        },
    }; // end blocks[][][]



void main(void)
{
    int num = 0;
    int i, j;
    while (1)
    {
        printf("0~27까지 번호입력 : _\b"); scanf("%d", &num);

        if (num < 0 && num > 27)
        {
            break;
        }

        for(i = 0; i < 4; i++)                    // 행 반복
        {
            for(j = 0; j < 4; j++)                // 열 반복
            {
                if (blocks[num][i][j] == 1)
                {
                    printf("■");
                }
                else
                {
                    printf("  "); // □
                }
            }
            printf("\n");
        }        
    }
}
 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트

(댓글을 남기려면 로그인이 필요합니다.)

관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 !. 쉬어가기 : 가짜 프로그래머와 진짜 프로그래머의 차이 (1) - 레드플러스 2005-07-26 5784
  6. 배열(1차원 및 다차원 배열) - 레드플러스 2005-07-26 5441
  6.1. 1차원 배열 - 레드플러스 2005-08-04 4447
  6.1.1. 예제. 배열의 선언, 요소수 생성, 초기화, 참조 : 일차원배열1.c - 레드플러스 2005-08-04 4591
  6.1.2. 배열의 선언과 동시에 요소수 생성과 동시에 초기화 : 일차원배열2.c - 레드플러스 2005-08-04 4613
  gets_s()와 atoi()로 값 입력 받아 배열에 저장한 후 출력 array_student_2021-09-09_9-38-20.png(3 KB) 레드플러스 2021-09-09 2413
  6.2. 다차원 배열 - 레드플러스 2005-08-04 4458
  6.2.1. 이차원 배열 선언, 요소수 생성, 초기화, 참조 - 레드플러스 2005-08-05 4770
  6.2.2. 2차원 배열의 선언과 동시에 요소수 생성과 동시에 초기화 - 레드플러스 2005-08-05 4548
  6.2.3. 이차원 배열을 사용한 성적처리 프로그램 - 레드플러스 2005-11-07 6295
  2차원 배열 입출력.c - 레드플러스 2012-09-20 3962
  6.3. 3차원 배열 - 레드플러스 2005-11-08 4635
현재글 3차원 배열을 사용하여 테트리스 블록 표현 - 레드플러스 2013-01-16 4950
  C 언어 코드 샘플 - N명의 학생의 점수를 입력받아 1차원 배열에 저장 후 총점 구... c-array-input-with-scanf.png(45 KB) 레드플러스 2021-12-27 2530
다음글 5. 함수 C_함수_정의_호출.png(67 KB) 레드플러스 2005-07-26 6299
 
손님 사용자 Anonymous (손님)
로그인 Home