选择合适的线路你才可能找到 $ 的,快去试试 - 中国WEB开发者网络 (http://www.webasp.net) -- 网页特效 (http://www.webasp.net/javascript/) --- 选择合适的线路你才可能找到 $ 的,快去试试 (http://www.webasp.net/javascript/1/450.htm) |
| -- 发布日期: 2005-06-10 |
| <!-- 网页特效代码由[中国WEB开发者网络:http://www.ChinaWebDev.com]提供! --> <!-- 要实现此效果需要 2 个步骤: --> <!-- 第 1 步: --> <!-- 把<BODY>中的属性代码改为: --> <BODY onLoad="timerONE=window.setTimeout('scrollit_r2l(100)',500);initBoard();"> <!-- 第 2 步: --> <!-- 把下面的代码加到<BODY></BODY>区域中: --> <table borderlight=green> <tr> <td align=center><font size=5 color=red face="Arial, Helvetica, sans-serif"><strong>你试着走走看!</strong></font></td> </tr> <tr> <td align=center> <script> var line = ""; var x = 0; var y = 0; var full="*"; var blank = "."; var wall = "#"; var goal = "$"; var fill = ""; // Functions to create the board function makeboard() { for (var i=1; i<= 10; i++) this[i] = new makeRow(); return this; } function makeRow() { for (var i=1; i<= 10; i++) this[i]=blank; return this; } // Functions to fill & clear the board. function clearBoard (form) { // Clears & resets the board x = 0; y = 0; form.xval.value = 1; form.yval.value = 1; for (var i=1; i<= 10; i++) for (var j=1; j<= 10; j++) theBoard[i][j]=blank; drawMaze(); fillBoard(form); return; } function fillBoard (form) { // Clear board buffer line = ""; form.grid.value = ""; // Fill board buffer for (var i=1; i<= 10; i++) for (var j=1; j<= 10; j++) line += theBoard[i][j]; // Move buffer contents to board form.grid.value=line; } function plot (v, h) { theBoard[v][h] = fill; } function drawMaze() { // Plots the walls of the maze // // Ideally, a function should do this automatically, // or maybe I should write a maze generating function in JS! // Note: This program operates in Y,X co-ordinates (not standard X,Y). theBoard[10][10] = goal; theBoard[1][2] = wall; theBoard[2][2] = wall; theBoard[4][1] = wall; theBoard[4][2] = wall; theBoard[4][3] = wall; theBoard[2][3] = wall; theBoard[5][2] = wall; theBoard[6][2] = wall; theBoard[2][5] = wall; theBoard[4][5] = wall; theBoard[5][5] = wall; theBoard[2][6] = wall; theBoard[2][7] = wall; theBoard[9][10] = wall; theBoard[9][9] = wall; theBoard[8][9] = wall; theBoard[7][9] = wall; theBoard[10][7] = wall; theBoard[9][7] = wall; theBoard[8][7] = wall; theBoard[6][7] = wall; theBoard[9][2] = wall; theBoard[9][3] = wall; theBoard[9][4] = wall; theBoard[8][2] = wall; theBoard[7][4] = wall; theBoard[7][5] = wall; theBoard[6][5] = wall; theBoard[6][6] = wall; theBoard[6][7] = wall; theBoard[6][8] = wall; theBoard[6][9] = wall; theBoard[5][7] = wall; theBoard[5][8] = wall; theBoard[5][9] = wall; theBoard[4][9] = wall; } function update(form) { var horiz = eval(form.xval.value); var vert = eval(form.yval.value); plot(vert,horiz); fillBoard(form); return; } function initBoard() { theBoard = new makeboard(); fill = full; clearBoard(document.board); update(document.board); } // Functions to handle the player piece // // I suppose I could have written one function to handle this, // but it was getting too complex. Feel free to try. :) // function decx(form) { fill = blank; update(form); checkx = eval(form.xval.value - 1); checky = form.yval.value; if (form.xval.value > 1) { if (theBoard[checky][checkx] != wall) { form.xval.value=eval(form.xval.value - 1); } else { alert("THUD!\nYou hit a wall."); } if (theBoard[checky][checkx] == goal) { alert("YOU WIN!"); } } fill = full; update(form); } function incx(form) { fill = blank; update(form); checkx = eval(1 * form.xval.value + 1); checky = form.yval.value; if (form.xval.value < 10) { if (theBoard[checky][checkx] != wall) { form.xval.value=eval(1 * form.xval.value + 1); } else { alert("THUD!\nYou hit a wall."); } if (theBoard[checky][checkx] == goal) { alert("YOU WIN!"); } } fill = full; update(form); } function decy(form) { fill = blank; update(form); checkx = form.xval.value; checky = eval(form.yval.value - 1); if (form.yval.value > 1) { if (theBoard[checky][checkx] != wall) { form.yval.value=eval(form.yval.value - 1); } else { alert("THUD!\nYou hit a wall."); } if (theBoard[checky][checkx] == goal) { alert("YOU WIN!"); } } fill = full; update(form); } function incy(form) { fill = blank; update(form); checkx = form.xval.value; checky = eval(1 * form.yval.value + 1); if (form.yval.value < 10) { if (theBoard[checky][checkx] != wall) { form.yval.value=eval(1 * form.yval.value + 1); } else { alert("THUD!\nYou hit a wall."); } if (theBoard[checky][checkx] == goal) { alert("YOU WIN!"); } } fill = full; update(form); } // Various Functions function cheater (form) { // Refuse to change values manually, and start over. CHEATER! alert("You can't change this value manually.\nPlease use the buttons."); clearBoard(form); update(form); } </script> <form method="post" name="board"> <input type='button' value='Reset' onClick='clearBoard(this.form);update(document.board);' name="button"> <br> <textarea name="grid" rows="12" cols="10" wrap=virtual></textarea> <br> <!-- virtual-wrap is the key! Now one text line becomes a grid! --> <table> <tr> <td> <input type='button' value='UP' onClick='decy(this.form)' name="button2"> </td> <td> <input type='text' value='1' size=5 name='yval' onChange='cheater(this.form);'> </td> <td> <input type='button' value='DOWN' onClick='incy(this.form)' name="button2"> </td> <tr> <td> <input type='button' value='LEFT' onClick='decx(this.form)' name="button2"> </td> <td> <input type='text' value='1' size=5 name='xval' onChange='cheater(this.form);'> </td> <td> <input type='button' value='RIGHT' onClick='incx(this.form)' name="button2"> </td> </table> </form> </td> </tr> </table> |
| webasp.net |