大家谁能帮我看看是哪里不对,提交到系统中是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. hadoop解决windows下:Failed to set permissions of path: \tmp\ \.staging to 0700

    17/04/24 15:32:44 WARN util.NativeCodeLoader: Unable to load native-Hadoop library for your platform ...

  2. 047-PHP数字前面补零,固定位数补0

    <?php #PHP 数字前面补零 固定位数补0 $num=128; $num=str_pad($num,8,"0",STR_PAD_LEFT); echo $num; // ...

  3. C++使用 scanf函数

    最近看了下C++,有些地方和c语言 还是不太一样的,当我在做输入一个数字的时候发现了错误.. 所以在使用scanf()的时候需要加下面这段在头文件  顶部: #define _CRT_SECURE_N ...

  4. CentOS7上防火墙操作

    firewalld打开关闭防火墙与端口 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl statu ...

  5. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-volume-down

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  6. Docker 容器shell

    版权所有,未经许可,禁止转载 章节 Docker 介绍 Docker 和虚拟机的区别 Docker 安装 Docker Hub Docker 镜像(image) Docker 容器(container ...

  7. TD信息通(无课表)使用体验

    首先,在注册账户的时候,TD信息通还是比较严谨的.用户名字符数.密码字符数.邮箱格式等都有要求,我认为,这对App的长远发展来说,是很重要的一个细节.而且,在登陆之前,会有一项关于是否自动登陆的选择, ...

  8. POJ 1276:Cash Machine 多重背包

    Cash Machine Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 30006   Accepted: 10811 De ...

  9. POJ 1423:Big Number 求N的阶乘的长度 斯特林公式

    Big Number Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 27027   Accepted: 8626 Descr ...

  10. PHP上传图片,路径保存在数据库中,根据图片路径显示图片

    1.创建数据表   CREATE TABLE image( id int(4) unsigned NOT NULL AUTO_INCREMENT, name varchar(100) default ...