大家谁能帮我看看是哪里不对,提交到系统中是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. 干货分享:学术Essay写作流程及写作技巧详解

    Academic essay是指留学生作业中的一种,其范围非常广泛,可以是任何一种话题.而学术essay主要是指其中比较正式的.客观的话题,有明确的研究目的与研究对象.例如“Research on t ...

  2. ELK 安装Beat

    章节 ELK 介绍 ELK 安装Elasticsearch ELK 安装Kibana ELK 安装Beat ELK 安装Logstash Beat是数据采集工具,安装在服务器上,将采集到的数据发送给E ...

  3. mysql 深度分页

    mysql  分页查询使我们常见的需求 ,但是随着页数的增加查询性能会逐渐下降,尤其是到深度分页的情况.我们可以把分页分为两个步骤,1.定位偏移量,2.获取分页条数的 数据. 所以当数据较大页数较深时 ...

  4. 安装VMtools vim编辑器的使用 压缩包命令 Linux下的用户管理 (第三天)

    VM tools:方便我们虚拟机和宿主机之间复制数据或移动文件等 安装VMtools 1.菜单栏-虚拟机-安装VM tools 将其选中 2.进入系统,在桌面位置里面有VM tools的光盘,双击进入 ...

  5. Ubantu学习笔记3

    修改PATH环境变量 ~/.profile --->(在文件最后一行添加) PATH="要增加的路径:$PATH" 或者 export 使用变量="调用参数&quo ...

  6. POJ - 1065 Wooden Sticks(贪心+dp+最长递减子序列+Dilworth定理)

    题意:给定n个木棍的l和w,第一个木棍需要1min安装时间,若木棍(l’,w’)满足l' >= l, w' >= w,则不需要花费额外的安装时间,否则需要花费1min安装时间,求安装n个木 ...

  7. 《新标准C++程序设计》3.1.1-3.1.3(C++学习笔记5)

    构造函数 1.构造函数的概念和作用 (1)概念 构造函数就是一类特殊的成员函数,其名字和类一样,不写返回值类型(void也不可以写),可以有参数,可以重载. 如果定义类时没写构造函数,则编译器生成一个 ...

  8. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring DI(依赖注入)的实现方式属性注入和构造注入

    依赖注入(Dependency Injection,DI)和控制反转含义相同,它们是从两个角度描述的同一个概念. 当某个 Java 实例需要另一个 Java 实例时,传统的方法是由调用者创建被调用者的 ...

  9. 记录一道神仙CTF-wtf.sh-150

    记录一道完全超出我能力的CTF神仙题(不愧是世界级比赛的真题orz),此题我仅解出了第一部分的flag,第二部分则参考了WP.不得不说这种题目解出来还是很有自豪感的嘛~  直接看题! 0x01 第一部 ...

  10. axios基础介绍

    axios基础介绍 get请求要在params中定义,post要在data中定义.