📄 youxi.txt
字号:
<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);'>
<br>
<textarea name="grid" rows="12" cols="10" wrap=virtual&rt;</textarea&rt;<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)'></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)'></td>
<tr>
<td><input type='button' value='LEFT' onClick='decx(this.form)'></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)'></td>
</table>
</form>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -