201604-2 試題名稱: 俄羅斯方塊
阿新 • • 發佈:2018-12-10
#include <stdio.h> int main() { int matrix[15][10]; int graphic[4][4]; int i, j, k; for(i=0; i<15; i++) { for(j=0; j<10; j++) { scanf("%d",&matrix[i][j]); } } for(i=0; i<4; i++) { for(j=0; j<4; j++) { scanf("%d",&graphic[i][j]); } } scanf("%d",&k); //模擬方塊下落的過程 int w; int flag = 0; int m; for(i=0; i<15; i++) { w = 0; for(m=i; m<i+4; m++) { for(j = k-1; j<k+3; j++) { if(graphic[w][j-k+1] == 1) { if(matrix[m][j] != 0) { flag = 1; break; } } } if(flag) { break; } w++; } if(flag) { break; } } i--; int q; int p=0; for(m = i; m < 15; m++)//在方格圖中將圖案的位置賦為1 { for(q=k-1; q<k+3; q++) { if(graphic[p][q-k+1]) { matrix[m][q] = 1; } } p++; if(p == 4) { break; } } //輸出方格圖案 for(i=0; i<15; i++) { for(j=0; j<10; j++) { printf("%d ",matrix[i][j]); } printf("\n"); } return 0; }