展开全部

java版的我没32313133353236313431303231363533e4b893e5b19e31333330346531有,给你看个js版的:

.d {margin :1px;width:19px;height:19px;background:gray;position:absolute;}

.f {top:0px;left:0px;background:black;position:absolute;}

var over=false,shapes=("0,1,1,1,2,1,3,1;1,0,1,1,1,2,2,2;2,0,2,1,2,2,1,2;0,1,1,1,1,2,2,2;1,2,2,2,2,1,3,1;1,1,2,1,1,2,2,2;0,2,1,2,1,1,2,2").split(";");

function create(tag,css){

var elm=document.createElement(tag);

elm.className = css;

document.body.appendChild(elm);

return elm;}

function Tetris(c, t, x, y){

var c=c?c:"c";

this.divs = [create("div",c),create("div",c),create("div",c),create("div",c)];

this.reset = function(){

this.x = typeof x != 'undefined'?x:3;

this.y = typeof y != 'undefined'?y:0;

this.shape = t?t:shapes[Math.floor(Math.random()*(shapes.length-0.00001))].split(",");

this.show();

if(this.field&&this.field.check(this.shape,this.x,this.y,'v')=='D'){

over=true;

this.field.fixShape(this.shape,this.x,this.y);

alert('game over');}}

this.show = function(){

for(var i in this.divs){

this.divs[i].style.left = (this.shape[i*2]*1+this.x)*20+'px';

this.divs[i].style.top = (this.shape[i*2+1]*1+this.y)*20+'px';}}

this.field=null;

this.hMove = function(step){

var r = this.field.check(this.shape,this.x- -step,this.y,'h');

if(r!='N'&&r==0){

this.x-=-step;

this.show();}}

this.vMove = function(){

if(this.field.check(this.shape,this.x,this.y- -1,'v')=='N'){

this.y++;

this.show();}

else{

this.field.fixShape(this.shape,this.x,this.y);

this.field.findFull();

this.reset();}}

this.rotate = function(){

var s=this.shape;

var newShape=[3-s[1],s[0],3-s[3],s[2],3-s[5],s[4],3-s[7],s[6]];

var r = this.field.check(newShape,this.x,this.y,'h');

if(r=='D')return;

if(r==0){

this.shape=newShape;

this.show();}

else if(this.field.check(newShape,this.x-r,this.y,'h')==0){

this.x-=r;

this.shape=newShape;

this.show();}}

this.reset();}

function Field(w,h){

this.width = w?w:10;

this.height = h?h:20;

this.show = function(){

var f = create("div","f")

f.style.width=this.width*20+'px';

f.style.height=this.height*20+'px';}

this.findFull = function(){

for(var l=0;l

var s=0;

for(var i=0;i

s+=this[l*this.width+i]?1:0;}

if(s==this.width){

this.removeLine(l);}}}

this.removeLine = function(line){

for(var i=0;i

document.body.removeChild(this[line*this.width+i]);}

for(var l=line;l>0;l--){

for(var i=0;i

this[l*this.width- -i]=this[(l-1)*this.width- -i];

if(this[l*this.width- -i])this[l*this.width- -i].style.top = l*20+'px';}}}

this.check = function(shape, x, y, d){

var r1=0,r2='N';

for(var i=0;i<8;i+=2){

if(shape[i]- -x < 0 && shape[i]- -x

{r1 = shape[i]- -x;}

else if(shape[i]- -x>=this.width && shape[i]- -x>r1)

{r1 = shape[i]- -x;}

if(shape[i+1]- -y>=this.height || this[shape[i]- -x- -(shape[i+1]- -y)*this.width])

{r2='D'}}

if(d=='h'&&r2=='N')return r1>0?r1-this.width- -1:r1;

else return r2;}

this.fixShape = function(shape,x,y){

var d=new Tetris("d",shape,x,y);

d.show();

for(var i=0;i<8;i+=2){

this[shape[i]- -x- -(shape[i+1]- -y)*this.width]=d.divs[i/2];}}}

var f = new Field();

f.show();

var s = new Tetris();

s.field = f;

s.show();

window.setInterval("if(!over)s.vMove();",500);

document.onkeydown = function(e){

if(over)return;

var e = window.event ? window.event : e;

switch(e.keyCode){

case 38: //up

s.rotate();

break;

case 40: //down

s.vMove();

break;

case 37: //left

s.hMove(-1);

break;

case 39: //right

s.hMove(1);

break;}}

本回答由网友推荐

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

java俄罗斯方块简单代码_求个简单的俄罗斯方块java代码,初学者能看懂的相关推荐

  1. java写一个简单的浪漫代码_求一个简单但是浪漫的表白方法!!

    鲜花表白 只要和爱情沾边儿那都离不开玫瑰花,所以最简单的方式就是用玫瑰花表白,玫瑰花表白可以体现在数量上,有送一朵的,有送十一朵的,又送三十三朵,还有送九十九朵的.除此之外,还可以摆鲜花阵表白,一般情 ...

  2. mysql PHP注册代码_求分享简单的php注册+mysql数据库登录源码

    [PHP] 纯文本查看 复制代码HTML代码: 登录注册注销 //登录模态框 aria-hidden="true"> ×Close 请登录 用户名: pattern=&quo ...

  3. java smtp收信_求一个简单java编写的邮件收发程序,邮件发送程序为smtpsend,邮件接收程序为popreceive。急需,感谢。...

    展开全部 import javax.mail.*; import javax.mail.internet.*; import java.util.*; import java.io.*; public ...

  4. java输出葫芦图形_参遇话手作——三张图教你看懂砑花葫芦制作过程

    在上一篇文章中我们介绍了葫芦的雕和刻,今儿我们聊聊砑花葫芦. 砑花葫芦 大家都知道葫芦在我国的应用,可以追溯到大约7000年前的河姆渡新石器时代,包括药用.食用.日用.乐器和工艺品制作等多方面的应用, ...

  5. 单片机编程好学吗?单片机初学者怎样看懂代码?

    单片机在很多人看来好像门槛很高,在某些人看来很简单. 所以,单片机编程好不好学,这取决于谁去学,有没有基础,有没有兴趣. 我自己是通过自学学会的,我个人认为相对java那些纯软件,单片机比较好学. 单 ...

  6. java 安卓蓝牙程序_求Java大神帮忙,简单修改下安卓蓝牙串口输出程序代码!!急...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 附上蓝牙串口通讯代码, package com.test.BTClient; import java.io.File; import java.io.Fi ...

  7. java声明变量简单程序_零基础学编程之java变量

    01使用变量的意义 变量相当于自然语言中的代词,代词具有代替.指示作用,比如每个人的姓名,代表的就是真实的一个个体.如果没有名字,我们在交流的时候,讨论某一个人就需要说:身高1米75,单眼皮,双下巴的 ...

  8. python博弈论代码_使用 40 多行的 Python 代码实现一个简单的演化过程

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 在纳米比亚的 PyCon 会议上,我发表了一篇名为 <使用 Python 解决"升级版的剪 ...

  9. 我的世界java版gamemode指令_我的世界(电脑Java版)简单又好玩指令教程

    注:该教程基于Java V1.16.3 通常可以兼容1.13+的版本 1.9-1.12可能会有不兼容 已知的不兼容会在文章中标出并给出旧版本指令 如果发现其他不兼容指令可以在评论区提问 指令是< ...

最新文章

  1. 应有尽有!这可能是最全的 AI 面试笔记了
  2. R语言tidyr包separate()函数实战详解:一列裂变为多列
  3. 剑指offer之分行从上到下之字行打印二叉树
  4. 【Kubernetes】k8s 的基本使用指令
  5. Struts的文件上传与下载
  6. 【Oracle】ORA-01157: cannot identify/lock data file 201 - see DBWR trace file
  7. bzoj 1671: [Usaco2005 Dec]Knights of Ni 骑士(BFS)
  8. 什么是git subcommand,如何创建git子命令?
  9. AST介绍:解析html生成语法树
  10. [Swift] 成语我抖Wordle成语猜谜游戏
  11. UNITY TUIO的使用
  12. WIN10彻底禁用UAC(用户账户控制)
  13. 挖掘目录穿越漏洞实战经验
  14. Axure RP 8制作计时器
  15. 查询vue版本时报错:“文件名、目录名或卷标语法不正确“
  16. 左、右外连接的写法及(+)的用法
  17. pt-table-checksum使用总结
  18. FPGA系统性学习笔记连载_Day1数字电路基础篇
  19. node中的__dirname
  20. 大数据技术之_01_Linux学习_01_linux的入门+VM和linux的安装+linux的目录结构+远程登录到linux服务器+vi和vim编辑器+开机、重启和用户登录注销+用户管理+用户组管理

热门文章

  1. WiFi 6E与WiFi7技术特点
  2. 【N沟道MOS管和P沟道MOS管】经典全详解
  3. 【虚幻】使用项目启动程序(ProjectLauncher)打补丁包(保姆级)
  4. FileUpload选择图片并上传
  5. 射频放大器的原理和作用(射频放大器和功率放大器的区别)
  6. JS-向当前url追加参数
  7. JAVA语句加叹号是什么意思_js函数前加分号和感叹号是什么意思?有什么用?
  8. 使用adb命令对手机屏幕截图
  9. vue前端下载——jszip压缩和解压,结合file-saver导出图片zip,每20个图片分一个目录
  10. android 方块平移动画,android – 在Surface View中动画和旋转图像