創建二維矩陣
有兩種方式
一種是從門口放,直到碰到底或其他貨物,要設計成for(int i=C-1;i>=0;i--) if(box[j][i-1]==i)break;
另一種是從底部找空間,如果遇到空間且貨物的右邊沒有任何物品就放置
不會有超時問題
switch (shape) {
case ("A"):
for(int w=0;w<C;w++) { 從底部找
for(int u=w;u<C;u++) { 判斷最後面的東西,直接把貨物推到最後面
if(box[h][u]==1||box[h+1][u]==1||box[h+2][u]==1||box[h+3][u]==1) {
w=u+1;
}
}
if(w<C&&box[h][w]==0&&box[h+1][w]==0&&box[h+2][w]==0&&box[h+3][w]==0) {//如果沒有壓到東西就放,空間-4
box[h][w]=1;
box[h+1][w]=1;
box[h+2][w]=1;
box[h+3][w]=1;
space-=4;
thr=false;
break;
}
}
if(thr==true)//擺到了最後面之後如果還是壓到東西就掰掰
throwout++;
break;
}