大家谁能帮我看看是哪里不对,提交到系统中是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();
}
} }

201604-2 俄罗斯方块 Java的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. java俄罗斯方块游戏代码

    java俄罗斯方块游戏代码: package com; import java.awt.Color; import java.awt.Graphics; import java.awt.event.K ...

  3. 俄罗斯方块游戏 --- java

    俄罗斯方块游戏 如有疑问请查看:http://zh.wikipedia.org/zh-tw/%E4%BF%84%E7%BD%97%E6%96%AF%E6%96%B9%E5%9D%97 更多疑问请参考: ...

  4. Java课设--俄罗斯方块Tetris

    Java程序设计课程作业报告 作业:俄罗斯方块游戏 姓名 赵璐媛 学号 程序得分 90% 作业报告 得分10% 实验总分 100% 作业目的: 掌握基本的图形程序设计方法 掌握Java事件处理程序编写 ...

  5. Java项目--俄罗斯方块

    Java项目--俄罗斯方块 百度盘链接 链接:http://pan.baidu.com/s/1mhQ9SYc 密码:9ujo 一.心得 二.游戏实例 游戏截图 目录结构 三.代码 1.主界面 Tetr ...

  6. Java实例---俄罗斯方块

    代码分析 定义格子 package com.ftl.tetris; /** * 定义格子 */ import java.awt.image.BufferedImage; public class Ce ...

  7. 台哥原创:java 俄罗斯方块源码

    大四的时候,用java开发,耗时一周 界面参照当时用的联想手机里的俄罗斯方块 ​ 这里的级别,标识难度,1是初级,方块下降速度很慢,5是最高级,下降速度最快 ​ 得分:每消除一行,会给10分,同时消除 ...

  8. 俄罗斯方块(Java实现)

    程序效果: 代码: //Box.java 1 package tetris; public class Box { private final int M = 30, N = 12; private ...

  9. JAVA SE 框架之俄罗斯方块的效果

    Mygame package com.sun.c; import java.awt.event.KeyListener; import com.sun.v.MyJpanel; import com.s ...

随机推荐

  1. python 4个人中有一人做了好事,一直有三个人说了真话,根据下面的对话判断是谁做的好事

    题目:4个人中有一人做了好事,一直有三个人说了真话,根据下面的对话判断是谁做的好事. A:不是我 B:是C C:是D D:C胡说 for inum in ['A','B','C','D']: prin ...

  2. 二十三、SAP中内表的修改

    一.通过MODIFY关键字来修改内表的内容,it相当于全部内容,wa相当于一条内容 二.效果如下

  3. 3.3. Mapping methods with several source parameters(具有多个源参数的映射方法)

    3.3. Mapping methods with several source parameters(具有多个源参数的映射方法) MapStruct 还支持具有多个源参数的映射方法.这是比较实用的, ...

  4. ZOJ - 3870 Team Formation(异或)

    题意:给定N个数,求这N个数中满足A ⊕ B > max{A, B})的AB有多少对.(A,B是N中的某两个数) 分析: 1.异或,首先想到转化为二进制. eg:110011(A)和 1(B)- ...

  5. [Mathematics][MIT 18.03] Detailed Explanation of the Frequency Problems in Second-Order Differential Equation of Oscillation System

    Well, to begin with, I'd like to say thank you to MIT open courses twice. It's their generosity that ...

  6. 简单看看LongAccumulator

    上篇博客我们看了AtomicLong和LongAdder的由来,但是有的时候我们想一下,LongAdder这个类也有点局限性,因为只能是每一次都+1,那有没有办法每次+2呢?或者每次乘以2?说得更抽象 ...

  7. git push 现有代码到一个新的分支

    git push origin HEAD:task/xxx-test-local git push的一般形式为 git push <远程主机名> <本地分支名>  <远程 ...

  8. 关于SOA的架构设计案例分析

    SOA体系架构及相关技术,主要应用在企业应用集成领域,它能够以服务的方式共享和复用企业现有应用资产,保护用户IT投资,并能够以服务的方式构建新的业务流程,对企业流程进行灵活重构和优化,增强业务的敏捷性 ...

  9. Tmux和一点nohup

    1.当我们用ssh连接服务器时,只有一个终端,但有时候我们希望有多个. 2.有些程序需要运行一些时间,在这个时间里,我们希望可以去做其他的事情. 3.有的程序要跑好几个小时,这时候,我们希望断开远程连 ...

  10. 题解 P1654 【OSU!】

    题面 一序列\(a\), 对于每一个\(i\)均有\(a_i\)有\(p_i\)的几率为1, 否则为\(0\) 求: \(a\)中极长全\(1\)子序列长度三次方之和的期望 前置知识 基本期望(期望的 ...