您当前所在位置: > 实用问答

原生JavaScript编写俄罗斯方块

时间:2018-07-29 18:49:02  来源:  作者:网络
Game234问答中心有网友提出了一个比较有代表性的问题【原生JavaScript编写俄罗斯方块】,小编觉得可能对其他网友也有帮助,所以将此问答整理出来了,希望对您有帮助。

小编为您搜罗的答案:

<p>首先这里感谢@jdkleo&nbsp; 提出的宝贵建议!<br /> 说实在的吧,我这个俄罗斯方块大家玩起来别骂我就万岁了,还没完全完成的,只完成了50%,而且还有很多BUG。<br /> 可以实现的功能:<br /> 1.掉方块<br /> 2.随机生成新方块<br /> 3.方块移动。<br /> 目前BUG还很多,由于是第一次写这么“大”的游戏,有1000多行代码,所以还请高人指点,BUG太多了。<br /> 按START开始游戏。<br /> 大家提提建议,我第一次写JS游戏。<br /> 参考了一下网上其他人的代码,但是不是照抄。<br /> 代码可以直接运行,不用引用JQUERY。<br /> 希望大神们能给点建议!!!!不甚感激!!!</p> <p>Ver 0.2版本已经出来了哦(2014-12-26),最新的代码:<br /> 此次修正的东西:<br /> 1.左边右边可以移动。<br /> 2.可以旋转<br /> 3.可以消除满行的方块。</p> <p>代码:</p> &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;html xmlns="https://www.w3.org/1999/xhtml"&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt; &lt;title&gt;无标题文档&lt;/title&gt; &lt;style type="text/css"&gt; #test { /*width:25px;*/ } .t { width:10px; height:10px; border:1px solid black; float:left; } body { margin:0 auto; width:1000px; height:600px; } /*游戏相关*/ #startGame { } #lines { } #level { } #time { } /*俄罗斯方块实体类*/ #tetris-area { width:auto; height:auto; background:blue; } /*JS生成的CLASS,俄罗斯方块实体*/ #tetris .block0,#tetris .block1, #tetris .block2, #tetris .block3,#tetris .block4,#tetris .block5,#tetris .block6 { z-index:1000; font-size:10px; line-height:1em; position:absolute; width:13px; height:13px; border:0.5px solid red; background:#000; } &lt;/style&gt; &lt;script src="jquery.js"&gt;&lt;/script&gt; &lt;script type="text/javascript"&gt; //2维数组,用来存放俄罗斯方块的坐标 var xYAxis=[]; xYAxis.push([1,2],[3,4]); //alert(xYAxis[1][0]); //复制节点 /*$(document).ready(function(e) { for(i=0;i&lt;2;i++) { if(i==1) { // $("#test").append("&lt;br&gt;"); //加上换行符 } $(".t").clone().appendTo("#test"); } //动态得到test(container)的宽度,包含两边的边框BORDER $("#test").width(($(".t").width()+2)*2+1); }); */ //获得区域的横坐标和纵坐标 function getArea(x,y,unit,id) { this.x=x; this.y=y; this.unit=unit; //每个单元的大小,单位为像素 this.el=document.getElementById(id); //得到ID对象 this.board=[]; //面板,即在区域范围内的元素(俄罗斯方块) /*创建2D范围矩阵*/ for(var y=0;y&lt;this.y;y++) { this.board.push(new Array()); for(var x=0;x&lt;this.x;x++) { this.board[y].push(0); } } /*从2D矩阵中消除元素*/ this.destroy=function() { for(var y=0;y&lt;this.board.length;y++) { for(var x=0;x&lt;this.board[y].length;x++) { if(this.board[y][x]) { this.el.removeChild(this.board[y][x]); this.board[y][x]=0; } } } } //添加元素 this.addElement=function(el) { //得到起始元素的X开始坐标和Y开始坐标的位置(错误) //得到X坐标的下落次数,和Y轴的左右移动的次数 var xBegin=parseInt(el.offsetLeft/unit); var yBegin=parseInt(el.offsetTop/unit); if(xBegin&gt;=0&&xBegin&lt;=this.x&&yBegin&gt;=0&&yBegin&lt;=this.y) { this.board[yBegin][xBegin]=el; //确定元素的位置 } } //消掉所有的行 this.removeFullLines=function() { var lines=0; for(var i=this.y-1;i&gt;0;i--) { if(this.linesRelated(i)) { this.removeLines(i); lines++; y++; } } return lines; //返回线条 } //和线性有关的东西(判断是否满了) this.linesRelated=function(y) { for(var x=0;x&lt;this.x;x++) { if(!this.board[y][x]){return false;} //如果不为0的话,那么菜返回FALSE } return true; }; //去掉行 this.removeLines=function(y) { for(var x=0;x&lt;this.x;x++) { this.el.removeChild(this.board[y][x]); this.board[y][x]=0; } y--; for(;y&gt;0;y--) { /*今天暂时写到这里*/ /*继续于2014-12-21*/ for(var x=0;x&lt;this.x;x++) { if(this.board[y][x]) { var el=this.board[y][x]; el.style.top=el.offsetTop+this.unit+"px"; this.board[y+1][x]=el; this.board[y][x]=0; } } } }; //活动区域 this.getBlock=function(y,x) { if(y&lt;0){return 0;} if(y&lt;this.y&&x&lt;this.x) { return this.board[y][x]; } else { throw "Area get failed!"; } } } /*俄罗斯方块实体类*/ function Tetris() { var self =this; //自身 var operate=null; this.area=null; this.operate=null; //操作 this.status=new State(); //新建状态 /*初始化X,Y,单元为5或者20*/ this.x=20; this.y=20; this.unit=20; this.running=null; //是否在运行中 //俄罗斯方块实体ID this.id="tempid"; /*开始的时候暂停是FALSE的*/ this.paused=false; //开始游戏 this.start=function() { self.reset(); //重新开始游戏 self.status.start(); this.area=new getArea(this.x,this.y,this.unit,"tetris-area"); //获得Area对象 ,其中TEMPID是俄罗斯方块实体类ID this.operate=new OperateTetris(this.area,self); //是否可以替换 if(this.operate.mayPlace()) { //alert(1); this.operate.place(); } else { self.gameOver(); } } //游戏结束 this.gameOver=function() { self.status.stopGame(); //停止游戏 self.operate.stopGame(); //操作类停止游戏 } /*重置游戏*/ this.reset=function() { if(this.operate) { self.operate.destroy(); //重新开始 self.operate=null; } if(self.area) { self.area.destroy(); self.area=null; } //隐藏游戏结束 document.getElementById("game_over").style.display="none"; document.getElementById("next_operate").style.display="block"; //下一个操作 document.getElementById("keys_Press").style.display="block"; //显示按键 self.status.reset(); self.paused=false; document.getElementById("tetris-pause").style.display="block"; //暂停按钮 } /*暂停游戏*/ this.pause=function() { if(self.operate==null) { return ; } if(self.paused) { self.operate.running=true; /*这里还没写完2014-12-22*/ } else { } } //上 this.up=function() { if(self.operate&&self.operate.isRunning()&&!self.operate.isStopped()) { if(self.operate.mayRotate()) { self.operate.rotate(); self.status.setActions(self.status.getActions()+1); } } } //下 this.down=function() { if(self.operate&&self.operate.isRunning()&&!self.operate.isStopped()) { if(self.operate.mayMoveDown()) { self.operate.moveDown(); self.status.setActions(self.status.getActions()+1); } } } //左 this.left=function() { if(self.operate&&self.operate.isRunning()&&!self.operate.isStopped()) { if(self.operate.mayMoveLeft()) { self.operate.moveLeft(); self.status.setActions(self.status.getActions()+1); } } } //右 this.right=function() { if(self.operate&&self.operate.isRunning()&&!self.operate.isStopped()) { if(self.operate.mayMoveRight()) { self.operate.moveRight(); self.status.setActions(self.status.getActions()+1); } } } //开始游戏 document.getElementById("startGame").onclick=function(){self.start()}; //} //Tetris是一个整体类,里面包含了很多方法。 var keyboard=new Keyboard(); //创建键盘类实体 keyboard.set(keyboard.n,this.start); keyboard.set(keyboard.up,this.up); keyboard.set(keyboard.down,this.down); keyboard.set(keyboard.left,this.left); keyboard.set(keyboard.right,this.right); document.onkeydown=keyboard.event; //按下按键按钮的事件 /*键盘操作方法*/ function Keyboard() { this.up=38; //上 this.down=40; //下 this.left=37; //左 this.right=39; //右 this.n=78; this.p=80; this.r=82; this.space=32; //空格 this.f12=123; this.escape=27; //退格键 this.keys=[]; //键位集合 this.funcs=[]; var self=this; //设置键位 this.set=function(key,func) { this.keys.push(key); this.funcs.push(func); } this.event=function(e) { if(!e){e=window.event;} for(var i=0;i&lt;self.keys.length;i++) { if(e.keyCode==self.keys[i]) { self.funcs[i](); } } } } //具体的操作类 function OperateTetris(area,tetris) { var self=this; //当前对象 this.area=area; this.tetris=tetris; this.types=null; //方块的类型; this.nextType=null; //下一个类型 //初始化X和Y this.x=null; this.y=null; this.position=0; //初始位置 this.board=[]; //用来填充HTML元素的 this.elements=[]; this.nextElements=[]; //下一个元素 this.running=null; //是否在运行中 this.stopped=null; //是否停止 this.fallDownId=null; //往下掉落的 this.speed=null; //速度 /*方块的组合方式,用数组进行组合(二维数组) 用0,1表示是否有方块存在,如果是0:不存在,1:存在, 以下的逻辑就可以非常的清楚了。*/ this.blockComplex=[ [ [0,0,1],[1,1,1],[0,0,0] //_| ], [ [1,0,0],[1,1,1],[0,0,0] //L ], [ [0,1,0],[1,1,1],[0,0,0] //T ], [ [0,0,0],[1,1,1],[0,0,0] //-- ], [ [0,0,0],[0,1,1],[0,1,1] //口 ], [ [0,1,1],[0,1,0],[1,1,0] //Z ] ]; this.stopGame=function() { this.running=false; } /*一连串的GETTER方法 分别是速度,X,Y轴,运行和停止的GETTER方法*/ this.getSpeed=function() { return this.speed; } this.getX=function() { return this.x; } this.getY=function() { return this.y; } this.isRunning=function() { return this.running; } this.isStopped=function() { return this.stopped; } //重置(初始化) this.reset=function() { if(this.fallDownId) { clearTimeout(this.fallDownId); //下落的时候去掉时间间隔 } this.types=this.nextType; this.nextType=random(this.blockComplex.length); this.position=0; this.board=[]; this.elements=[]; this.x=null; this.y=null; this.speed=200; //速度暂定为51 this.running=false; this.stopped=false; //移除下一个元素 for(var i=0;i&lt;this.nextElements.length;i++) { document.getElementById("next_operate").removeChild(this.nextElements[i]); } this.nextElements=[]; //下一个元素 } //下一个类型,随机抽取 this.nextType=random(this.blockComplex.length); //重置 this.reset(); /*判断是否替换*/ this.mayPlace=function() { var isOperate=this.blockComplex[this.types]; /*area开始的坐标原点*/ var areaStartX=parseInt(this.area.x-isOperate[0].length); var areaStartY=1; var lineFound=false; var lines=0; for(var y=isOperate.length-1;y&gt;=0;y--) { for(var x=0;x&lt;isOperate[y].length;x++) { if(isOperate[y][x]) { lineFound=true; if(this.area.getBlock(areaStartY,areaStartX+x)) {return false;} } } if(lineFound) { lines++; } if(areaStartY-lines&lt;0) { break; } } return true; } /*替换*/ this.place=function() { //初始化 var operate=this.blockComplex[this.types]; //区域开始X轴的位置 var AreaXStartPos=parseInt(this.area.x-operate[0].length); //区域开始Y轴的位置 //var AreaYStartPos=parseInt(this.area.y-operate[0]); var AreaYStartPos=1; //因为X轴的位置可能变化,而Y轴总是从最上面下来的,所以是1 this.x=AreaXStartPos; //把新的位置赋给X; this.y=AreaYStartPos; //把新的位置赋给y; //构建空对象,并存入BOARD /*y:行,x:列*/ //alert(operate[0].length+" "+operate.length); this.board=this.createEmpty(operate[0].length,operate.length); /*线条,往下掉落,初始化*/ var lines=0; var foundLines=false; //循环遍历,先遍历行,每一行再来遍历列 for(var yAxis=operate.length-1;yAxis&gt;=0;yAxis--) { for(var xAxis=0;xAxis&lt;=operate[yAxis].length;xAxis++) { if(operate[yAxis][xAxis]) { var el=document.createElement("div"); el.className="block"+this.types; //确定这个元素的CLASSNAME //确定左边距和上边距 el.style.left=(this.x+xAxis)*this.area.unit+"px"; el.style.top=(this.y+yAxis)*this.area.unit+"px"; this.area.el.appendChild(el); //这个EL去APPEND主要的EL。 this.board[yAxis][xAxis]=el; this.elements.push(el); //推入elements中 } } /*个人感觉这个功能应该是加速往下掉落的方法?不明觉厉*/ if(lines) { yAxis--; } if(foundLines) { lines++; } } this.running=true; this.fallDownId=setTimeout(this.fallDown,this.speed); //间隔时间,掉落下的 var nextOperate=this.blockComplex[this.nextType]; for(var y=0;y&lt;nextOperate.length;y++) { for(var x=0;x&lt;nextOperate[y].length;x++) { //创建元素 if(nextOperate[y][x]) { /*先写到这里:2014-12-22*/ var el=document.createElement("div"); el.className="block"+this.nextType; el.style.left=(x*this.area.unit)+"px"; el.style.top=(y*this.area.unit)+"px"; document.getElementById("next_operate").appendChild(el); this.nextElements.push(el); //下一个元素 } } } } //创建空对象,即所有的都为0的对象,并返回对象 this.createEmpty=function(x,y) { var elements=[]; for(var y2=0;y2&lt;y;y2++) { elements.push(new Array()); for(var x2=0;x2&lt;x;x2++) { elements[y2].push(0); } } return elements; } //下落(这是一个最关键的函数,决定了这个游戏的成败) this.fallDown=function() { if(self.isRunning()) { if(self.mayMoveDown()) { self.moveDown(); self.fallDownId=setTimeout(self.fallDown,self.speed); //下落的间隔时间 } else { for(var i=0;i&lt;self.elements.length;i++) { self.area.addElement(self.elements[i]); } var lines=self.area.removeFullLines(); if(lines) { /*这里到时候再写*/ self.tetris.status.setLines(self.tetris.status.getLines()+lines); } self.reset(); if(self.mayPlace()) { self.place(); } else { self.tetris.gameOver(); } } } else { } } //是否可以旋转俄罗斯方块 this.mayRotate=function() { for(var y=0;y&lt;this.board.length;y++) { for(var x=0;x&lt;this.board[y].length;x++) { if(this.board[y][x]) { /新的X,Y的值/ var newY=this.getY()+this.board.length-1-x; var newX=this.getX()+y; if(newY&gt;this.area.y){return false;} if(newX&lt;0){return false;} if(newX&gt;=this.area.x){return false;} if(this.area.getBlock(newY,newX)){return false;} //获得区域 } } } return true; } //旋转俄罗斯方块 this.rotate=function() { var puzzle=this.createEmpty(this.board.length,this.board[0].length); //创建一个空的矩阵 for(var y=0;y&lt;this.board.length;y++) { for(var x=0;x&lt;this.board[y].length;x++) { //旋转,X轴和Y轴的坐标互换 if(this.board[y][x]) { var newY=puzzle.length-1-x; var newX=y; var el=this.board[y][x]; //旋转前的对象 var moveY=newY-y; var moveX=newX-x; //长度是offsetTop或left加上偏移量 el.style.left=el.offsetLeft+(moveX*this.area.unit)+"px"; el.style.top=el.offsetTop+(moveY*this.area.unit)+"px"; puzzle[newY][newX]=el; } } } this.board=puzzle; } //下落方法(进行判断) this.mayMoveDown=function() { for(var y=0;y&lt;this.board.length;y++) { for(var x=0;x&lt;this.board[y].length;x++) { if(this.board[y][x]) { if(this.getY()+y+1&gt;=this.area.y){this.stopGame=true;return false;} //如果触底,那么就停止游戏 if(this.area.getBlock(this.getY()+y+1,this.getX()+x)){this.stopGame=true;return false;} } } } return true; } //下落 this.moveDown=function() { //用一个循环去控制下落 for(var i=0;i&lt;this.elements.length;i++) { this.elements[i].style.top=this.elements[i].offsetTop+this.area.unit+"px"; } this.y++; } this.mayMoveLeft=function() { /*可以向左移动(判断方法)*/ for(var y=0;y&lt;this.board.length;y++) { for(var x=0;x&lt;this.board[y].length;x++) { if(this.board[y][x]) { if(this.getX()-1+x&lt;0) { return false; } if(this.area.getBlock(this.getY()+y,this.getX()+x-1)){return false;} } } } return true; } //向左移动 this.moveLeft=function() { /*向左移动(判断方法)*/ for(var i=0;i&lt;this.elements.length;i++) { this.elements[i].style.left=this.elements[i].offsetLeft-this.area.unit+"px"; } this.x--; } /*是否可以向右移动*/ this.mayMoveRight=function() { for(var y=0;y&lt;this.board.length;y++) { for(var x=0;x&lt;this.board[y].length;x++) { if(this.board[y][x]) { if(this.getX()+1+x&gt;=this.area.x){return false;} if(this.area.getBlock(this.getY()+y,this.getX()+x+1)){return false;} } } } return true; } /*向右移动*/ this.moveRight=function() { for(var i=0;i&lt;this.elements.length;i++) { this.elements[i].style.left=this.elements[i].offsetLeft+this.area.unit+"px"; } this.x++; } /*摧毁方法*/ this.destroy=function() { for(var i=0;i&lt;this.elements.length;i++) { this.area.el.removeChild(this.elements[i]); } this.elements=[]; this.board=[]; this.reset(); } } /*俄罗斯方块状态*/ function State() { /*初始化*/ this.level; this.time; this.score; this.opeate; this.lines; this.apm; //不明觉厉 this.actions; //动作 this.el= { "lines":document.getElementById("lines"), "level":document.getElementById("level"), "time":document.getElementById("time"), "apm":document.getElementById("apm"), "operate":document.getElementById("operate") } this.timeId=null; var self=this; //开始游戏 this.start=function() { this.reset(); //重置 this.timeId=setInterval(this.incTime,1500); } /*停止游戏*/ this.stopGame=function() { if(this.timeId) { clearInterval(this.timeId); } } //重置 this.reset=function() { this.stopGame(); this.level=1; this.time=0; this.score=0 this.opeate=0; this.lines=0; /*以后可能加INNERHTML*/ this.el.level=this.level; this.el.time=this.time; this.el.score=this.score; this.el.operate=this.opeate; this.el.lines=this.lines; } //和SetInterval有关 this.incTime=function() { self.time++; self.el.time.innerHTML=self.time; //设置时间 self.actions=parseInt(self.actions/self.time)*60; this.el.apm.innerHTML=self.apm; } /*设置分数*/ this.setScore=function(i) { this.score==i; this.el.score.innerHTML=this.score; } /*设置等级*/ this.setLevel=function(i) { this.level=i; this.el.level.innerHTML=this.level; //设置内部HTML }; this.getLevel=function() { return this.level; } //线条的SETTER方法 this.setLines=function(i) { this.lines=i; this.el.lines.innerHTML=this.lines; } this.getLines=function() { return this.lines; } //设置动作 this.setActions=function(i) { this.actions=i; //this.el.actions.innerHTML=this.actions; } this.getActions=function() { return this.actions; } //设置apm this.setApm=function(i) { this.apm=i; this.el.apm.innerHTML=this.apm; } this.getApm=function() { return this.apm; } //控制下落操作的类 this.setOperate=function(i) { this.opeate=i; this.el.operate=this.operate; } this.getOperate=function() { return this.opeate; } } //随机数,产生1~6的 function random(i) { return Math.floor(Math.random()*i); } } /*Tetris是一个整体类,里面包含了很多方法*/ &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;div id="tetris"&gt; &lt;!--正方形 --&gt; &lt;div id="test"&gt; &lt;div class="t"&gt;&lt;/div&gt; &lt;/div&gt; &lt;!--长方形--&gt; &lt;div id="rect"&gt; &lt;div class="r"&gt; &lt;/div&gt; &lt;/div&gt; &lt;!-- 俄罗斯方块实体类--&gt; &lt;div id="tetris-area"&gt; &lt;/div&gt; &lt;!-- 下一个操作--&gt; &lt;div id="next_operate"&gt;&lt;/div&gt; &lt;!--游戏结束--&gt; &lt;div id="game_over"&gt;Game Over&lt;/div&gt; &lt;!-- 按键 --&gt; &lt;div id="keys_Press"&gt; &lt;/div&gt; &lt;input type="button" id="startGame" value="Start" /&gt; &lt;!--线条 --&gt; &lt;div id="lines"&gt;&lt;/div&gt; &lt;!--等级 --&gt; &lt;div id="level"&gt;&lt;/div&gt; &lt;!--apm(不知道有什么作用) --&gt; &lt;div id="apm"&gt;&lt;/div&gt; &lt;!--时间 --&gt; &lt;div id="time"&gt;&lt;/div&gt; &lt;!--控制下落操作 --&gt; &lt;div id="operate"&gt;&lt;/div&gt; &lt;!-- 功能键(暂停)--&gt; &lt;div id="tetris-pause"&gt; &lt;/div&gt; &lt;!-- 功能键(继续)--&gt; &lt;div id="tetris-resume" style="display:none"&gt; &lt;/div&gt; &lt;/div&gt; &lt;script&gt; var tx=new Tetris(); tx.x=12; tx.y=22; tx.unit=14; //tx.start(); //开始游戏 &lt;/script&gt; &lt;/body&gt; &lt;/html&gt; <p>演示图:</p> <p><img alt="" src="https://p0.qhimg.com/t01a3d04aa457b99629.png" /></p> <p>项目git地址:<br /> https://git.oschina.net/KMSFan/Tetris_Yang<br /> </p> <p>项目演示地址:https://runjs.cn/detail/ggo07ery</p> <p>以上所述就是本文的全部内容了,希望能够对大家学习javascript有所帮助。</p>

希望以上答案对您您所帮助,另外此问题所属游戏为:俄罗斯方块,游戏库地址://www.91hq.net/tvgame/8105/

可能您对者【俄罗斯方块】游戏还不是很了解,小编在此为您简短的介绍一下吧。【俄罗斯方块】简介如下: 游戏加入了裸眼3D机能,游戏的画面效果看起来非常的绚丽,五颜六色的方块加上爆炸效果,就像方块在你眼前飞舞一样。游戏包括20种不同的模式以及最多8人的联机模式,加上对应擦身以及AR技术,本作一定能够让你充分的体验到3DS版俄罗斯方块的魅力。 游戏共有25种模式的介绍。包括14种单机模式、10种联机模式、2种AR卡片模式。本作的日版预定在10月20日发售,美版则在10月2日发售。下面就是本作新公开的游戏画面。

小编还为您推荐了几篇与【俄罗斯方块】相关的文章:

时代周刊评选历史50佳游戏:俄罗斯方块位居榜首 DOTA排名49

美国《时代周刊》历史50佳游戏评选结果,俄罗斯方块位居第一,任天堂旗下《马里奥64》与《塞尔达传说-时之笛》排名2、3,DOTA上榜排在49位。

这才叫大屏 市政大楼秒变游戏机让你畅快玩俄罗斯方块

城会玩!大楼秒变游戏机,以色列特拉维夫把市政大楼变成一块3000平米的游戏显示屏,让人们操纵1米多高操纵杆面对着几十米开外的大楼玩俄罗斯方块,让人们感受到了什么叫大屏

steam推出拟人恋爱游戏《Tetro High》 俄罗斯方块寻找真爱之旅

最近Steam Greenlight就出现了这么一款《Tetro High》没错~就是标题所说的俄罗斯方块拟人恋爱游戏,完全无法想像到底该怎么对一个俄罗斯方块产生恋爱情感啊

经典版俄罗斯方块玩腻了?看六边形俄罗斯方块,挑战智商

《俄罗斯方块》大家小时候都玩过,最强大脑上也进行过这款游戏得PK,而且是盲打,可见这款游戏确实是一款经典游戏,目前经过各种更新,新推出了一款六边形俄罗斯方块,闲暇之余可以消遣消遣,

综述:俄罗斯方块30周年 PSP十年传奇谢幕

【17173专稿 未经授权请勿转载】今天,是俄罗斯方块诞生30周年,“俄罗斯方块之父”阿列克谢·帕基特诺夫(Alexey Pajit

长大后再玩俄罗斯方块果然不一样

周末乐翻天问:白素贞属于哪种蛇▼白蛇真羡慕你们这些有对象的人▼我就剩帅了最新骗术曝光▼神职降临感谢您为搞笑素材做出的杰出贡献▼你是来搞笑的评论区永远是真相聚集地▼我看到了狗头开大追

菲斯 图腾过关方法及俄罗斯方块解密技巧 详解怎么玩

  菲斯这款解密游戏里面,所有的谜题解答都非常隐晦,对于新手来说可能会比较难理解,对于俄罗斯方块的秘密,其实只要掌握一些技巧,过关还是比较简单的,下面是详细方法。  这下面图里,图腾已经对照换成字母了

视频: 俄罗斯方块神一般的境界!! 详解怎么玩

视频: 史上最憋屈的俄罗斯方块 详解怎么玩

视频: 魂斗罗大战俄罗斯方块 详解怎么玩

相关下载

玩家评论

俄罗斯美女如云,中国人到这工作,为何宁愿选择单身?_姑娘

原标题:俄罗斯美女如云,中国人到这工作,为何宁愿选择单身? 导语:俄罗斯美女如云,中国人到这工作,为何宁愿选择单身? 随着经济全球化的来临,越来越多的人愿意到详情>>

阅读: 4
日期: 2020-04-16
俄罗斯电信服务提供商“Rostelecom”品牌形象升级

原标题:俄罗斯电信服务提供商“Rostelecom”品牌形象升级 Rostelecom成立于1993年,最初专注于长途电话,现在是俄罗斯政府、企业和个人用户最大的电详情>>

阅读: 2
日期: 2020-04-16
一架俄罗斯的航班80人送医,“破案”全程高能

原标题:一架俄罗斯的航班80人送医,“破案”全程高能 俄罗斯抵沪航班60人确诊 乘客:有人有咳嗽症状 登机前未详情>>

阅读: 0
日期: 2020-04-15
黑龙江13日新增境外输入确诊病例79例从俄罗斯输入

原标题:黑龙江13日新增境外输入确诊病例79例 从俄罗斯输入 2020年4月13日0-24时,黑龙江省省内无新增确诊病例,无新增疑似病例。截至4月13日24时,累计报详情>>

阅读: 3
日期: 2020-04-14
俄罗斯男子自拍时滑倒从15楼窗户翻出 挂窗外15分钟后被救

原标题:俄罗斯男子自拍时滑倒从15楼窗户翻出 挂窗外15分钟后被救 近日,俄罗斯36岁的男子安东·科兹洛夫在自拍时不慎从15楼的窗户翻出,十分危险。 详情>>

阅读: 5
日期: 2020-04-14
俄罗斯抵上海一航班新冠肺炎确诊者增至60人

(原标题:俄罗斯抵上海一航班新冠肺炎确诊者增至60人) 详情>>

阅读: 3
日期: 2020-04-13
《冠军超音速》俄罗斯站:春季赛第一回即将开启!

让音符装点你的春天,《冠军超音速》巡回赛将在俄罗斯站打响春季赛第一回!《偶像超音速》节日拼图迎来4星人气角色赛妮娅,5星偶像瑞贝卡加入节日兑换。还有超级详情>>

阅读: 8
日期: 2020-04-13
此民族有吃人的习惯,几乎将汉人灭族,如今后人居住俄罗斯_羯族

原标题:此民族有吃人的习惯,几乎将汉人灭族,如今后人居住俄罗斯 319年,羯人石勒建立赵国,史称后赵,石勒重用汉人大臣,学习汉人农桑和经学,进行一系列汉化。但详情>>

阅读: 5
日期: 2020-04-11
内蒙古新增27例境外输入确诊病例 均来自俄罗斯

(原标题:内蒙古自治区卫生健康委员会) 详情>>

阅读: 5
日期: 2020-04-11
《黑魂》联动《血源》出COS!老猎人盯上了防火女?_俄罗斯

原标题:《黑魂》联动《血源》出COS!老猎人盯上了防火女? 《血源诅咒》和《黑暗之魂》是宫崎英高的两部代表作品,两作游戏除了同样有着超高的游戏难度详情>>

阅读: 6
日期: 2020-04-10
从《俄罗斯方块》到《动物森友会》盘点引发我国社会效应的游戏

这两天,《健身环大冒险》和《动物森友会》作为近期热门游戏的代表,终于登上了央视新闻。与此同时,NS主机(日版)的价格也从正常时候2200元可以再商量商量和老板详情>>

阅读: 2
日期: 2020-04-10
被骂俄罗斯版《盗梦空间》,实则它的剧本,迷之梦幻_维克多

原标题:被骂俄罗斯版《盗梦空间》,实则它的剧本,迷之梦幻 丨本文首发于皮皮电影 皮皮电影 / 每天一部精彩电影推荐 2020开年,一部俄罗斯新片火了。 火详情>>

阅读: 7
日期: 2020-04-08
俄罗斯妹子Cos美图合集赏 性感火辣超爱大尺度

今天为大家带来的是俄罗斯美女Coser Lada Lyumos的Cos作品。她是一位喜欢拍摄大尺度美照的妹子,于2012年开启了Cosplay之旅。小姐姐不仅长得好看精致,各方面详情>>

阅读: 4
日期: 2020-04-08
质疑官方瞒报新冠确诊数,俄罗斯医生被捕

原标题:质疑官方瞒报新冠确诊数,俄罗斯医生被捕 当地时间4月2日,俄罗斯一名女医生在运送医疗物资的途中被捕,警方以违反隔离禁令为由将其扣留近20个小详情>>

阅读: 3
日期: 2020-04-07
这个省昨日新增20例境外输入病例:均从俄罗斯输入,乘同一航班

原标题:这个省昨日新增20例境外输入病例:均从俄罗斯输入,乘同一航班 每经编辑:卢祥勇 据黑龙江省卫健委通报,4月6日,全省新增境外输入确诊病例20例,均为详情>>

阅读: 5
日期: 2020-04-07
20人从俄罗斯进入黑龙江后确诊,详情披露

原标题:20人从俄罗斯进入黑龙江后确诊,详情披露 据黑龙江卫健委消息:4月5日0-24时,黑龙江省省内无新增确诊病例,无新增疑似病例。省内现有无症状感染详情>>

阅读: 5
日期: 2020-04-07
黑龙江通报20例俄罗斯输入病例详情

原标题:黑龙江通报20例俄罗斯输入病例详情 每经编辑:马原 黑龙江省卫生健康委员会6日通报,2020年4月5日0-24时,全省新增境外输入确诊病例20例,均为中国详情>>

阅读: 4
日期: 2020-04-07
黑龙江新增境外输入确诊病例20例均从俄罗斯输入

原标题:黑龙江新增境外输入确诊病例20例 均从俄罗斯输入 中新网4月7日电 据黑龙江卫健委网站消息,4月6日0-24时,黑龙江全省新增境外输入确诊病例20例详情>>

阅读: 1
日期: 2020-04-07
俄罗斯总统普京将继续远程办公

原标题:俄罗斯总统普京将继续远程办公 当地时间5日,俄罗斯总统新闻秘书佩斯科夫表示,鉴于新冠肺炎疫情在俄罗斯境内的扩散,普京总统将继续远程办公,至详情>>

阅读: 3
日期: 2020-04-05
快讯!俄罗斯新增658例新冠肺炎确诊病例,累计5389例

原标题:快讯!俄罗斯新增658例新冠肺炎确诊病例,累计5389例 【环球网快讯】据俄罗斯卫星网刚刚消息,过去24小时内,俄罗斯新增658例新冠肺炎确诊病例,累计详情>>

阅读: 3
日期: 2020-04-05
俄罗斯一男子枪杀5人,因不满路人大声说话

原标题:俄罗斯一男子枪杀5人,因不满路人大声说话 [环球网快讯]法新社援引相关调查人员的话说,当地时间4日晚,俄罗斯梁赞市附近发生一起枪击案,一名32详情>>

阅读: 5
日期: 2020-04-05
快讯!俄罗斯一男子枪杀5人,因不满路人大声说话

原标题:快讯!俄罗斯一男子枪杀5人,因不满路人大声说话 【环球网快讯】法新社援引相关调查人员的话说,当地时间4日晚,俄罗斯梁赞市附近发生一起枪击案,一详情>>

阅读: 1
日期: 2020-04-05
俄罗斯发生枪击案致5死,嫌犯因5人在窗前大声说话开枪

原标题:俄罗斯发生枪击案致5死,嫌犯因5人在窗前大声说话开枪 据俄罗斯侦查委员会消息,当地时间4日夜间,位于梁赞州的叶拉齐玛镇发生了枪击案,致5人死亡详情>>

阅读: 6
日期: 2020-04-05
俄罗斯梁赞州发生枪击案:致5人死亡,嫌犯已落网

原标题:俄罗斯梁赞州发生枪击案:致5人死亡,嫌犯已落网 央视新闻客户端4月5日消息,据俄罗斯侦查委员会消息,当地时间4日夜间,位于梁赞州的叶拉齐玛镇发生详情>>

阅读: 1
日期: 2020-04-05
俄罗斯梁赞州发生枪击案致5人死亡

原标题:俄罗斯梁赞州发生枪击案 致5人死亡 据俄罗斯侦查委员会消息,当地时间4日夜间,位于梁赞州的叶拉齐玛镇发生了枪击案,致5人死亡。目前32岁的犯罪详情>>

阅读: 2
日期: 2020-04-05
俄罗斯一公寓楼发生爆炸后部分倒塌已致1死4伤

原标题:俄罗斯一公寓楼发生爆炸后部分倒塌 已致1死4伤 俄媒现场图 【海外网4月4日编译报道】 据俄罗斯卫星通讯社消息,俄罗斯紧急情况部证实,莫斯详情>>

阅读: 3
日期: 2020-04-04
俄媒:抗击疫情给俄罗斯教育系统带来巨变

原标题:俄媒:抗击疫情给俄罗斯教育系统带来巨变 参考消息网4月4日报道俄媒称,抗击疫情为俄罗斯教育系统带来巨变。 据俄罗斯《消息报》网站4月3日报详情>>

阅读: 3
日期: 2020-04-04
参考快讯:普京说俄罗斯准备在石油减产问题上合作

原标题:参考快讯:普京说俄罗斯准备在石油减产问题上合作 参考消息网4月4日报道据法新社莫斯科消息,俄罗斯总统普京当地时间4月3日说,俄罗斯已经做好准详情>>

阅读: 6
日期: 2020-04-04
俄罗斯新增582例新冠肺炎确诊病例累计达4731例

原标题:俄罗斯新增582例新冠肺炎确诊病例 累计达4731例 中新网4月4日电 据俄罗斯卫星网报道,俄罗斯当局4日表示,俄罗斯24小时内新增582例新冠肺炎确详情>>

阅读: 3
日期: 2020-04-04
俄罗斯新增582例确诊病例累计确诊4731例

原标题:俄罗斯新增582例确诊病例 累计确诊4731例 据央视新闻消息,根据俄罗斯新冠病毒防疫官网发布的信息,截至莫斯科时间4月4日11时15分,俄罗斯境内新详情>>

阅读: 5
日期: 2020-04-04
中方为俄罗斯送上的抗疫口号,太燃!

原标题:中方为俄罗斯送上的抗疫口号,太燃! “外交部发言人办公室”消息,在4月3日外交部例行记者会上,有记者问:中国政府援助俄罗斯的25.5吨物资已于4月2详情>>

阅读: 3
日期: 2020-04-04
​俄罗斯从4月4日起暂停所有撤侨行动

原标题:​俄罗斯从4月4日起暂停所有撤侨行动 塔斯社4月3日援引俄罗斯防疫指挥部消息称,为了最大限度地保护俄公民的健康,遏制境外新冠肺炎疫情输入风详情>>

阅读: 3
日期: 2020-04-04
俄罗斯新增新冠肺炎确诊601例,累计确诊4149例

原标题:俄罗斯新增新冠肺炎确诊601例,累计确诊4149例 俄罗斯新冠病毒疫情防控指挥部当地时间4月3日上午10:30发布消息,在过去一天内俄罗斯新增601例新详情>>

阅读: 6
日期: 2020-04-03
俄罗斯新增新冠肺炎确诊601例 累计确诊人数4149例

原标题:俄罗斯新增新冠肺炎确诊601例 累计确诊人数4149例 人民网莫斯科4月3日电(记者 屈佩)俄罗斯新冠病毒疫情防控指挥部当地时间4月3日上午10:30详情>>

阅读: 3
日期: 2020-04-03
俄媒:俄罗斯总统普京定期接受新冠病毒检测

原标题:俄媒:俄罗斯总统普京定期接受新冠病毒检测 参考消息网4月2日报道俄媒称,俄罗斯总统新闻秘书佩斯科夫向记者表示,总统普京定期接受新冠病毒检测详情>>

阅读: 3
日期: 2020-04-03
俄罗斯新增771例新冠肺炎确诊病例,累计3548例

原标题:俄罗斯新增771例新冠肺炎确诊病例,累计3548例 【海外网4月2日|战疫全时区】 据今日俄罗斯报道,俄罗斯新增771例新冠肺炎确诊病例,累计达3548例详情>>

阅读: 4
日期: 2020-04-02
中国援助俄罗斯抗疫物资1日晚离京赴俄

原标题:中国援助俄罗斯抗疫物资1日晚离京赴俄 △图片为中国驻俄罗斯大使馆提供 北京时间1日晚间,中国政府援助俄罗斯的抗疫物资离开北京前往俄详情>>

阅读: 3
日期: 2020-04-02
美国从俄罗斯进口医疗物资,表示与其他国家合作抗击疫情

原标题:美国从俄罗斯进口医疗物资,表示与其他国家合作抗击疫情 央视新闻4月2日报道,美国国务院发言人1日发表声明称,上周的G20首脑会议各方达成一致,共详情>>

阅读: 5
日期: 2020-04-02
美国向俄罗斯购买60吨医疗物资,已到货

原标题:美国向俄罗斯购买60吨医疗物资,已到货 【文/观察者网 徐乾昂】新冠肺炎捅开美国医疗物资缺口。誓不做“祈求者”的美国,被曝向多国求助。3月3详情>>

阅读: 2
日期: 2020-04-02
俄罗斯大神制作现实版《极品飞车9:最高通缉》预告

近日,俄罗斯大神Владислав Чекунов在油管上自制了《极品飞车9:最高通缉》的预告,而且使用全部都是现实车辆和现实场景,真的能够以假乱真,讲真小编已经分不清这详情>>

阅读: 10
日期: 2020-04-01
精彩推荐