#include<iostream>
using namespace std;
const int M=15;
const int N=10;
const int C=4;
int map[M+1][N];
int pic[C][C];
int col;
struct flag_pic{
int rows;
int cols;
}flag[C];
int main(){
for(int i=0;i<M;i++)
for(int j=0;j<N;j++){
cin>>map[i][j];
}
for(int i=0;i<C;i++)
for(int j=0;j<C;j++){
cin>>pic[i][j];
}
cin>>col;
//将地图最下端填充1
for(int i=0;i<N;i++)
map[15][i]=1;
//记录小方块坐标
int k=0;
for(int i=0;i<C;i++){
for(int j=0;j<C;j++){
if(pic[i][j]==1){
flag[k].rows=i;
flag[k].cols=j;
k++;
}
}
}
//模拟小方块下落
int row=0;
bool check_flag;
for(;;){
check_flag = false;
for(int i=0;i<C;i++){
if(map[row+flag[i].rows][col-1+flag[i].cols]==1){
check_flag = true;
break;
}
}
if(check_flag){
break;
}
row++;
}
//修改map
for(int i=0;i<C;i++){
map[row-1+flag[i].rows][col-1+flag[i].cols]=1;
}
//输出map
for(int i=0;i<M;i++){
for(int j=0;j<N;j++){
cout<<map[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
CCF篇:201604-2 俄罗斯方块
猜你喜欢
转载自blog.csdn.net/weixin_41297324/article/details/84727998
今日推荐
周排行