复制代码代码如下:
<! doctype html> <html> <head> <style type = "text/css">
ร่างกาย {พื้นหลัง:#000; แบบอักษร: 25px/25px 宋体;}
#box {float: ซ้าย; ความกว้าง: 252px; ชายแดน:#999 20px ridge; สี:#9f9; text-shadow: 2px 3px 1px#0f0; -
#info {float: ซ้าย; สี: #cfc; padding: 24px; -
#NEXT {Padding: 8px; Width: 105px; สี: #9F9; Text-Shadow: 2PX 3PX 1PX #0F0; -
</style> </head> <body>
<div id = "box"> </div> <div id = "info"> ถัดไป: <div id = "next"> </div> <div id = "text"> </div> </div>
<script type = "text/javascript">
var map = eval ("["+array (23) .oin ("0x801,")+"0xfff]");
var tatris = [[0x6600], [0x2222,0xf00], [0xC600,0x2640], [0x6c00,0x4620], [0x2260,0x2e0x6220,0x740] , 0x2320,0x2700]];
var char = {x: "/u3000", s: "/u25a0", t: "/u25a1"};
var keycom = {"38": "หมุน (1)", "40": "ลง ()", "37": "ย้าย (2,1)", "39": "ย้าย (0.5, -1) "," 32 ":" 0; หยุดชั่วคราว =! หยุดชั่วคราว "};
var dia, pos, bak, run, next, pause = false, info = {ความเร็ว: 1, บรรทัด: 0, คะแนน: 0};
ฟังก์ชั่นเริ่มต้น () {
dia = next.d;
bak = pos = {fk: [], y: 0, x: 4, s: next.s};
Nextdia ();
document.getElementById ("ถัดไป"). innerhtml = (next.d [next.s%next.d.length] | 0x10000) .ToString (2) .Slice (-16) , "$ & <br/>"). แทนที่ (/1/g,char.t). แทนที่ (/0/g, char.x);
document.getElementById ("text"). innerhtml = "คะแนน:"+info.score+"<br/> <br/> บรรทัด:"+info.lines+"<br/> <br/> ความเร็ว:"+ข้อมูล ความเร็ว;
หมุน (0);
run = setInterval ("หยุดชั่วคราว || down ()", ~~ (math.pow (1.3,12-info.speed)*30+20));
-
ฟังก์ชั่นมากกว่า () {
document.onkeydown = null;
การแจ้งเตือน ("Game Over");
-
ฟังก์ชั่น nextdia () {
next = {d: tatris [~~ (math.random ()*7)], s: ~~ (math.random ()*4)};
-
ฟังก์ชั่นอัปเดต (t) {
bak = {fk: pos.fk.slice (0), y: pos.y, x: pos.x, s: pos.s};
ถ้า (t) กลับ;
สำหรับ (var i = 0, a2 = ""; i <22; i ++)
a2+= map [i] .tostring (2) .slice (1, -1)+"<br/>";
สำหรับ (var i = 0, n; i <4; i ++)
if (/([[^0]+)/. ทดสอบ (bak.fk [i] .toString (2). แทนที่ (/1/g,char.t)))))))))))))))))))
a2 = a2.substr (0, n = (bak.y+i+1)*15-regexp. $ _. length-4)+regexp. $ 1+a2.slice (n+regexp. $ 1. ความยาว);
document.getElementById ("Box"). innerhtml = a2.replace (/1/g, char.s). Rewplace (/0/g,char.x);
-
ฟังก์ชั่นคือ () {
สำหรับ (var i = 0; i <4; i ++)
if ((pos.fk [i] & map [pos.y+i])! = 0) return pos = bak;
-
ฟังก์ชั่นหมุน (r) {
var f = dia [pos.s = (pos.s+r)%dia.length];
สำหรับ (var i = 0; i <4; i ++)
pos.fk [i] = (f >> (12-i*4) & 15) << pos.x;
อัปเดต (คือ ());
-
ฟังก์ชั่นลง () {
++ pos.y;
ถ้า (คือ ()) {
สำหรับ (var i = 0, r = 0; i <4 && pos.y+i <22; i ++)
if ((แผนที่ [pos.y+i] | = pos.fk [i]) == 0xfff) {
map.splice (pos.y+i, 1), map.unshift (0x801);
++ info.lines%20 == 0 && info.speed ++, r ++;
-
ClearInterval (เรียกใช้);
ถ้า (แผนที่ [1]! = 0x801) กลับมา ();
info.score+= ~~ (math.pow (r, 1.5)*10) +2;
เริ่ม();
-
อัปเดต();
-
ฟังก์ชั่นย้าย (t, k) {
pos.x+= k;
สำหรับ (var i = 0; i <4; i ++)
pos.fk [i]*= t;
อัปเดต (คือ ());
-
document.onkeydown = function (e) {
eval ("หยุดชั่วคราว ||"+keycom [(e? e: เหตุการณ์) .keycode]);
-
Nextdia ();
เริ่ม();
</script> </body> </html>