俄罗斯方块

import java.io.BufferedInputStream;
import java.util.Scanner;

public class Main {
	
	public static int a[][]=new int [40][40];
	public static int f[][]=new int [10][10];
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner cin=new Scanner (new BufferedInputStream(System.in));
		for(int i=1;i<=15;i++)
		{
			for(int j=1;j<=10;j++)
			{
				a[i][j]=cin.nextInt();
			}
		}
		for(int i=1;i<=4;i++)
		{
			for(int j=1;j<=4;j++)
			{
				f[i][j]=cin.nextInt();
			}
		}
		int n=cin.nextInt(),l=1;
		while(!Check(n, l)&&l<=15)
		{
			l++;
		}
		Draw(n,l-1);
		for(int i=1;i<=15;i++)
		{
			for(int j=1;j<=10;j++)
			{
				System.out.print(a[i][j]+" ");
			}
			System.out.println();
		}
	}
	public static boolean Check(int x,int y) {//判断最后四行
	    for(int i=0;i<4;i++)
	    {
	        for(int j=0;j<4;j++)
	        {
	            if(a[y+i][x+j]+f[i+1][j+1]==2) {
	               // System.out.println(y+" "+i);
	                return true;
	                
	            }
	        }
	    }
	    return false;
	}
	public static void Draw(int x,int y) {
		for(int i=0;i<4;i++)
		{
			for(int j=0;j<4;j++)
			{
				a[y+i][x+j]+=f[i+1][j+1];
			}
		}
	}
}

原文地址:https://www.cnblogs.com/Calculus9/p/14564017.html