|
导读无聊时写的,稍作修改就可以支持多人游戏的,实在是懒得写下去了i键:上,j键:左,k键:下,l键:右<html><style>td width:2pt;height:2pt;f... 无聊时写的,稍作修改就可以支持多人游戏的,实在是懒得写下去了i键:上,j键:左,k键:下,l键:右 <html> <style> td {width:2pt;height:2pt;font-size:2pt;} </style> <script> function Pos(x,y) { this.x = x; this.y = y; return this; } function Snake(x,y) { this.node = new Array(); for (var i=0;i<20;i++) this.node[i] = new Pos(x,y); this.direction = 0; this.board = null; this.setBoard = function (board) { this.board = board; } this.left = function () { var c; with (this) if (board.check(node[0].x-1,node[0].y)) { clear(); moveNode(); node[0].x--; c = board.getDot(node[0].x,node[0].y); draw(); } else c = 'black'; this.direction = 2; return c; } this.right = function () { var c; with (this) if (board.check(node[0].x+1,node[0].y)) { clear(); moveNode(); node[0].x++; c = board.getDot(node[0].x,node[0].y); draw(); } else c = 'black'; this.direction = 4; return c; } this.up = function () { var c; with (this) if (board.check(node[0].x,node[0].y-1)) { clear(); moveNode(); node[0].y--; c = board.getDot(node[0].x,node[0].y); draw(); } else c = 'black'; this.direction = 1; return c; } this.down = function () { var c; with (this) if (board.check(node[0].x,node[0].y+1)) { clear(); moveNode(); node[0].y++; c = board.getDot(node[0].x,node[0].y); draw(); } else c = 'black'; this.direction = 3; return c; } this.moveNode = function () { with (this) for (var i=node.length-1;i>0;i--) { node[i].x = node[i-1].x; node[i].y = node[i-1].y; } } this.draw = function () { with (this) board.drawDot(node[0].x, node[0].y); } this.clear = function () { with (this) { if (node.length>1) if (node[node.length - 1].x == node[node.length - 2].x && node[node.length - 1].y == node[node.length - 2].y) return; board.clearDot(node[node.length - 1].x, node[node.length - 1].y); } } this.move = function () { var c; with (this) { if (direction==1) c = up(); if (direction==2) c = left(); if (direction==3) c = down(); if (direction==4) c = right(); } return c; } } function Board(name,col,row) { this.name = name; this.obj = null; this.col = col; this.row = row; this.draw = function () { var i,j; document.write('<table id=' + this.name + ' border=0>'); for (j=0;j<this.row;j++) { document.write('<tr>'); for (i=0;i<this.col;i++) document.write('<td>&nbsp;</td>'); document.write('</tr>'); } document.write(''); this.obj = eval(this.name); } this.check = function (x,y) { if (this.obj.rows[y].cells[x].style.background == 'black') return false else return true; } this.getDot = function (x,y) { return this.obj.rows[y].cells[x].style.background; } this.drawDot = function (x,y) { this.obj.rows[y].cells[x].style.background = 'black'; } this.clearDot = function (x,y) { this.obj.rows[y].cells[x].style.background = 'white'; } this.addDot = function () { var x,y; with (this) { do { x = Math.ceil(Math.random()*(col-3) + 1); y = Math.floor(Math.random()*(row-3) + 1); } while (getDot(x,y) != 'white') obj.rows[y].cells[x].style.background = 'red'; } } this.clear = function () { var i,j; for (j=0;j<this.row;j++) for (i=0;i<this.col;i++) if (i==0 || j==0 || i==this.col-1 || j==this.row-1) this.obj.rows[j].cells[i].style.background = 'black'; else this.obj.rows[j].cells[i].style.background = 'white'; for (i=0;i<10;i++) this.addDot(); } } function keyPress() { if (event.keyCode==105 && snake.direction!=1 && snake.direction!=3) snake.direction=1; if (event.keyCode==106 && snake.direction!=2 && snake.direction!=4) snake.direction=2; if (event.keyCode==107 && snake.direction!=1 && snake.direction!=3) snake.direction=3; if (event.keyCode==108 && snake.direction!=2 && snake.direction!=4) snake.direction=4; } var count=0; function run() { var c = snake.move(); if(c=='black') alert('Game Over!'); else { if(c=='red') { count++; for (var i=0;i<5;i++) snake.node[snake.node.length] = new Pos(snake.node[snake.node.length-1].x, snake.node[snake.node.length-1].y); board.addDot(); score.value = count; } window.setTimeout('run()',30); } } </script> <body> SCORE:<input name=score type=text value=0 disabled onfocus=this.blur()><br> <script> var board = new Board('GameBoard',50,40); board.draw(); board.clear(); var snake = new Snake(1,1); snake.setBoard(board); snake.draw(); document.body.onkeypress = keyPress; window.setTimeout('run()',10); </script> <body> </html> |
温馨提示:喜欢本站的话,请收藏一下本站!