CCF201604-2俄罗斯方块

xiaoxiao2025-11-02  19

#include <iostream> #include <cstring> using namespace std; int a[18][10]; //数组设为 18 行,并赋初值为 1 (非零即可),可以避免判断是否到达下边界 int b[4][4]; int main() { memset(a, 1, sizeof(a)); for(int i=0; i<15; i++){ for(int j=0; j<10; j++){ cin >> a[i][j]; } } for(int i=0; i<4; i++){ for(int j=0; j<4; j++){ cin >> b[i][j]; } } int c; cin >> c; //开始模拟下落过程,对应方格同时为 1 则跳出循环 int i, j, k; for(k=0; k<15; k++){ for(i=0; i<4; i++){ for(j=0; j<4; j++){ if(b[i][j] && a[i+k][j+c-1]){ break; } } if(j!=4){ break; } } if(i!=4){ break; } } k--; // k-- 为板块上边缘对应的行 for(int i=0; i<4; i++){ for(int j=0; j<4; j++){ if(b[i][j]){ a[i+k][j+c-1] = 1; } } } for(int i=0; i<15; i++){ for(int j=0; j<10; j++){ cout << a[i][j] << " "; } cout << endl; } return 0; }

 

转载请注明原文地址: https://www.6miu.com/read-5038915.html

最新回复(0)