zoukankan      html  css  js  c++  java
  • 201604-2 俄罗斯方块 Java

    大家谁能帮我看看是哪里不对,提交到系统中是0分,在Eclipse中可以得出例子中的结果

    思路:
    题目中有两个关键点:如何模拟下落的过程,如何判断方块下落在哪里停止。
    在数据的存储上,需要保存整个“棋盘”,需要保存下落方块的坐标。模拟下落可以row++
    判断在哪里停止,按照规则,方块最下部碰到底或者中间被拦住就应该停止了。在最后新增一行1可以简化判断边界。

    import java.util.Scanner;
    
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int ROW = 15;
    		int COL = 10;
    		int N = 4;
    		int board[][] = new int[ROW+1][COL];//整个俄罗斯方块
    		int block[][] = new int[N][N];//下落的图形的方块
    		int x[] = new int[4];//存储图形的横坐标
    		int y[] = new int[4];//存储图形的纵坐标
    		
    		int row,col;
    		for(int i=0;i<ROW;i++) {
    			for(int j=0;j<COL;j++) {
    				board[i][j] = sc.nextInt();
    			}
    		}
    		for(int i=0;i<N;i++) {
    			for(int j=0;j<N;j++) {
    				block[i][j] = sc.nextInt();
    			}
    		}
    		//初始列
    		col = sc.nextInt();
    		sc.close();
    		
    		//最下面加一行1,方便判断边界
    		for(int j=0;j<COL;j++) {
    			board[ROW][j] = 1;
    		}
    		
    		//得到图形的坐标
    		int k=0;
    		for(int i=N-1;i>=0;i--) {
    			for(int j=0;j<N;j++) {
    				if(block[i][j] == 1) {
    					x[k] = i;
    					y[k] = j;
    					k++;
    				}
    			}
    		}
    		row = 1;
    		col--;
    		boolean flag;
    		for(;;) {
    			flag = false;
    			for(int i=0;i<N;i++) {
    			if(board[row + x[i]][col + y[i]] == 1) {
    				flag = true;
    				break;
    				}
    			}
    			if(flag) {
    				break;
    			}
    			row++;
    		}
    		row--;
    		
    		//合并
    		for(int i=0;i<N;i++) {
    			board[row + x[i]][col + y[i]] = 1;
    		}
    		
    		//输出
    		for(int i=0;i<ROW;i++) {
    			for(int j=0;j<COL;j++) {
    				if(j != 0) {
    					System.out.print(board[i][j]);
    					System.out.print(" ");
    				}
    			}
    			System.out.println();
    		}
    	}
    
    }
    
    
    
  • 相关阅读:
    常用: JS 获取浏览器窗口大小
    教你开发jQuery插件
    JS基础篇--JS的event.srcElement与event.target(触发事件对象)
    javascript中基本类型和引用类型的区别分析
    代码风格与文件模板
    定制外观
    安装与使用
    with as 如何工作
    面向对象进阶
    mro具体解释
  • 原文地址:https://www.cnblogs.com/yu-jiawei/p/12357129.html
Copyright © 2011-2022 走看看