java.lang.ArrayIndexOutOfBounds

CCF的俄罗斯方块问题:
import java.util.Scanner;

public class Main {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int[][] x=new int[15][10];
for(int i=0;i<15;i++)
for(int j=0;j<10;j++)
x[i][j]=sc.nextInt();
int[][] y=new int[4][4];
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
y[i][j]=sc.nextInt();

    int z=sc.nextInt();
    int m=0;
    int[] xx=new int[4];
    int[] yy=new int[4];
    for(int i=0;i<4;i++)
        for(int j=0;j<4;j++)
            if(y[i][j]==1){
                xx[m]=i;
                yy[m]=j+z;
                m++;
            }
    int aa=0;
    boolean f=true;

while(f){
    for(int i=0;i<4;i++)
     if(x[xx[i]+1][yy[i]-1]!=1)  //提示我在这一行越界
        {aa++;}
     else{for(int j=0;j<4;j++)              
            x[xx[j]][yy[j]-1]=1;
     f=false;
     break;

     }

    if(aa==4){
        aa=0;
        for(int j=0;j<4;j++)
            xx[j]++;}
    }

    for(int i=0;i<15;i++)
    {   for(int j=0;j<10;j++)
        System.out.print(x[i][j]+" ");

            System.out.println();
    }

}

}
我输入的数据:
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 1 1 1 0 0
0 0 1 0 1 1 1 0 1 0
0 0 0 0 1 1 0 0 1 0
0 0 0 0
1 1 0 0
1 1 0 0
0 0 0 0
1 //把它改成不是1的数就正常,不明白

亲爱的,数组角标越界了,数组角标是从0开始的哦