Senocor | Дата: Воскресенье, 2009-04-05, 6:46 PM | Сообщение # 1 |
 Прохожий
Группа: Пользователи
Сообщений: 35
Статус: Offline
| Code <body bgColor="white">
<p align="center"><script language="JavaScript"> <!-- version = 1.0; // --> </script> <script language="JavaScript1.1"> <!-- version = 1.1; // --> </script> <script language="JavaScript"> <!-- if (version==1.0) document.write("Ваш броузер не поддерживает JavaScript 1.1." + "Эта игра работает в Netscape 3+ и MSIE 4+."); // --> </script><script language="JavaScript1.1"> <!--
function preload() { this.length = preload.arguments.length; for (var i = 0; i < this.length; i++) { this[i] = new Image(); this[i].src = preload.arguments[i]; } } var pics = new preload("black.gif","gray.gif", "you1.gif","you2.gif","you1k.gif","you2k.gif", "me1.gif","me2.gif","me1k.gif","me2k.gif");
var black = -1; // computer is black var red = 1; // visitor is red var square_dim = 35; var piece_toggled = false; var my_turn = false; var double_jump = false; var comp_move = false; var game_is_over = false; var safe_from = safe_to = null; var toggler = null; var togglers = 0;
function Board() { board = new Array(); for (var i=0;i<8; i++) { board[i] = new Array(); for (var j=0;j<8;j++) board[i][j] = Board.arguments[8*j+i]; } board[-2] = new Array(); // prevents errors board[-1] = new Array(); // prevents errors board[8] = new Array(); // prevents errors board[9] = new Array(); // prevents errors } var board; Board(1,0,1,0,1,0,1,0, 0,1,0,1,0,1,0,1, 1,0,1,0,1,0,1,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,-1,0,-1,0,-1,0,-1, -1,0,-1,0,-1,0,-1,0, 0,-1,0,-1,0,-1,0,-1);
function message(str) { if (!game_is_over) document.disp.message.value = str; } function moveable_space(i,j) { // calculates whether it is a gray (moveable) // or black (non-moveable) space return (((i%2)+j)%2 == 0); } function Coord(x,y) { this.x = x; this.y = y; } function coord(x,y) { c = new Coord(x,y); return c; }
document.write("<table border=0 cellspacing=0 cellpadding=0 width="+(square_dim*8+8) +"<tr><td><img src='black.gif' width="+(square_dim*8+8) +" height=4><br></td></tr>"); for(var j=0;j<8;j++) { document.write("<tr><td><img src='black.gif' width=4 height="+square_dim+">"); for(var i=0;i<8;i++) { if (moveable_space(i,j)) document.write("<a href='javascript:clicked("+i+","+j+")'>"); document.write("<img src='"); if (board[i][j]==1) document.write("you1.gif"); else if (board[i][j]==-1) document.write("me1.gif"); else if (moveable_space(i,j)) document.write("gray.gif"); else document.write("black.gif"); document.write("' width="+square_dim+" height="+square_dim +" name='space"+i+""+j+"' border=0>"); if (moveable_space(i,j)) document.write("</a>"); } document.write("<img src='black.gif' width=4 height="+square_dim+"></td></tr>"); } document.write("<tr><td><img src='black.gif' width="+(square_dim*8+8) +" height=4><br></td></tr></table><br>" +"<form name='disp'><textarea name='message' wrap=virtual rows=2 cols=40></textarea><br><input " +"type=button value=\"Нова\я игра\" onClick=\"location.href+=''\" style=\"font-family: MS Sans Serif; font-size: 1; color: rgb(255,0,0); font-weight: bold\"></form>");
function clicked(i,j) { if (my_turn) { if (integ(board[i][j])==1) toggle(i,j); else if (piece_toggled) move(selected,coord(i,j)); else message(":)"); } else { message(":)!"); } } function toggle(x,y) { if (my_turn) { if (piece_toggled) draw(selected.x,selected.y,"you1"+((board[selected.x][selected.y]==1.1)?"k":"")+".gif"); if (piece_toggled && (selected.x == x) && (selected.y == y)) { piece_toggled = false; if (double_jump) { my_turn = double_jump = false; computer(); } } else { piece_toggled = true; draw(x,y,"you2"+((board[x][y]==1.1)?"k":"")+".gif"); } selected = coord(x,y); } else { if ((piece_toggled) && (integ(board[selected_c.x][selected_c.y])==-1)) draw(selected_c.x,selected_c.y,"me1"+((board[selected_c.x][selected_c.y]==-1.1)?"k":"")+".gif"); if (piece_toggled && (selected_c.x == x) && (selected_c.y == y)) { piece_toggled = false; } else { piece_toggled = true; draw(x,y,"me2"+((board[x][y]==-1.1)?"k":"")+".gif"); } selected_c = coord(x,y); } } function draw(x,y,name) { document.images["space"+x+""+y].src = name; } function integ(num) { if (num != null) return Math.round(num); else return null; } function abs(num) { return Math.abs(num); } function sign(num) { if (num < 0) return -1; else return 1; } function concatenate(arr1,arr2) { // function tacks the second array onto the end of the first and returns result for(var i=0;i<arr2.length;i++) arr1[arr1.length+i] = arr2[i]; return arr1; } function legal_move(from,to) { if ((to.x < 0) || (to.y < 0) || (to.x > 7) || (to.y > 7)) return false; piece = board[from.x][from.y]; distance = coord(to.x-from.x,to.y-from.y); if ((distance.x == 0) || (distance.y == 0)) { message("Вы можете двигатьс\я только по диогонали!"); return false; } if (abs(distance.x) != abs(distance.y)) { message("Недопустимое перемещение..."); return false; } if (abs(distance.x) > 2) { message("Недопустимое перемещение..."); return false; } if ((abs(distance.x) == 1) && double_jump) { return false; } if ((board[to.x][to.y] != 0) || (piece == 0)) { return false; } if ((abs(distance.x) == 2) && (integ(piece) != -integ(board[from.x+sign(distance.x)][from.y+sign(distance.y)]))) { return false; } if ((integ(piece) == piece) && (sign(piece) != sign(distance.y))) { return false; }
return true; } function move(from,to) { my_turn = true; if (legal_move(from,to)) { piece = board[from.x][from.y]; distance = coord(to.x-from.x,to.y-from.y); if ((abs(distance.x) == 1) && (board[to.x][to.y] == 0)) { swap(from,to); } else if ((abs(distance.x) == 2) && (integ(piece) != integ(board[from.x+sign(distance.x)][from.y+sign(distance.y)]))) { double_jump = false; swap(from,to); remove(from.x+sign(distance.x),from.y+sign(distance.y)); if ((legal_move(to,coord(to.x+2,to.y+2))) || (legal_move(to,coord(to.x+2,to.y-2))) || (legal_move(to,coord(to.x-2,to.y-2))) || (legal_move(to,coord(to.x-2,to.y+2)))) { double_jump = true; message("You may complete the double jump or click on your piece to stay still."); } } if ((board[to.x][to.y] == 1) && (to.y == 7)) king_me(to.x,to.y); selected = to; if (game_over() && !double_jump) { setTimeout("toggle("+to.x+","+to.y+");my_turn = double_jump = false;computer();",1000); } } return true; } function king_me(x,y) { if (board[x][y] == 1) { board[x][y] = 1.1; // king you draw(x,y,"you2k.gif"); } else if (board[x][y] == -1) { board[x][y] = -1.1; // king me draw(x,y,"me2k.gif"); } }
function swap(from,to) { if (my_turn || comp_move) { dummy_src = document.images["space"+to.x+""+to.y].src; document.images["space"+to.x+""+to.y].src = document.images["space"+from.x+""+from.y].src; document.images["space"+from.x+""+from.y].src = dummy_src; } dummy_num = board[from.x][from.y]; board[from.x][from.y] = board[to.x][to.y]; board[to.x][to.y] = dummy_num; } function remove(x,y) { if (my_turn || comp_move) draw(x,y,"gray.gif"); board[x][y] = 0; } function Result(val) { this.high = val; this.dir = new Array(); } function move_comp(from,to) { toggle(from.x,from.y); comp_move = true; swap(from,to); if (abs(from.x-to.x) == 2) { remove(from.x+sign(to.x-from.x),from.y+sign(to.y-from.y)); } if ((board[to.x][to.y] == -1) && (to.y == 0)) king_me(to.x,to.y); setTimeout("selected_c = coord("+to.x+","+to.y+");piece_toggled = true;",900); setTimeout("bak=my_turn;my_turn=false;toggle("+to.x+","+to.y+");my_turn=bak;",1000); if (game_over()) { setTimeout("comp_move = false;my_turn = true;togglers=0;",600); message(":)"); } return true; } function game_over() { // make sure game is not over (return false if game is over) comp = you = false; for(var i=0;i<8;i++) { for(var j=0;j<8;j++) { if(integ(board[i][j]) == -1) comp = true; if(integ(board[i][j]) == 1) you = true; } } if (!comp) message("Вы мен\я выигрываете!"); if (!you) message("Вы проиграли!"); game_is_over = (!comp || !you) return (!game_is_over); }
// the higher the jump_priority, the more often the computer will take the jump over the safe move var jump_priority = 10;
function computer() { // step one - prevent any jumps for(var j=0;j<8;j++) { for(var i=0;i<8;i++) { if (integ(board[i][j]) == 1) { if ((legal_move(coord(i,j),coord(i+2,j+2))) && (prevent(coord(i+2,j+2),coord(i+1,j+1)))) { return true; } if ((legal_move(coord(i,j),coord(i-2,j+2))) && (prevent(coord(i-2,j+2),coord(i-1,j+1)))) { return true; } } if (board[i][j] == 1.1) { if ((legal_move(coord(i,j),coord(i-2,j-2))) && (prevent(coord(i-2,j-2),coord(i-1,j-1)))) { return true; } if ((legal_move(coord(i,j),coord(i+2,j-2))) && (prevent(coord(i+2,j-2),coord(i+1,j-1)))) { return true; } } } } // step two - if step one not taken, look for jumps for(var j=7;j>=0;j--) { for(var i=0;i<8;i++) { if (jump(i,j)) return true; } } safe_from = null; // step three - if step two not taken, look for safe single space moves for(var j=0;j<8;j++) { for(var i=0;i<8;i++) { if (single(i,j)) return true; } } // if no safe moves, just take whatever you can get if (safe_from != null) { move_comp(safe_from,safe_to); } else { message("Вы выграли ! Еще раз слабо ?"); game_is_over = true; } safe_from = safe_to = null; return false; } function jump(i,j) { if (board[i][j] == -1.1) { if (legal_move(coord(i,j),coord(i+2,j+2))) { move_comp(coord(i,j),coord(i+2,j+2)); setTimeout("jump("+(i+2)+","+(j+2)+");",500); return true; } if (legal_move(coord(i,j),coord(i-2,j+2))) { move_comp(coord(i,j),coord(i-2,j+2)); setTimeout("jump("+(i-2)+","+(j+2)+");",500); return true; } } if (integ(board[i][j]) == -1) { if (legal_move(coord(i,j),coord(i-2,j-2))) { move_comp(coord(i,j),coord(i-2,j-2)); setTimeout("jump("+(i-2)+","+(j-2)+");",500); return true; } if (legal_move(coord(i,j),coord(i+2,j-2))) { move_comp(coord(i,j),coord(i+2,j-2)); setTimeout("jump("+(i+2)+","+(j-2)+");",500); return true; } } return false; } function single(i,j) { if (board[i][j] == -1.1) { if (legal_move(coord(i,j),coord(i+1,j+1))) { safe_from = coord(i,j); safe_to = coord(i+1,j+1); if (wise(coord(i,j),coord(i+1,j+1))) { move_comp(coord(i,j),coord(i+1,j+1)); return true; } } if (legal_move(coord(i,j),coord(i-1,j+1))) { safe_from = coord(i,j); safe_to = coord(i-1,j+1); if (wise(coord(i,j),coord(i-1,j+1))) { move_comp(coord(i,j),coord(i-1,j+1)); return true; } } } if (integ(board[i][j]) == -1) { if (legal_move(coord(i,j),coord(i+1,j-1))) { safe_from = coord(i,j); safe_to = coord(i+1,j-1); if (wise(coord(i,j),coord(i+1,j-1))) { move_comp(coord(i,j),coord(i+1,j-1)); return true; } } if (legal_move(coord(i,j),coord(i-1,j-1))) { safe_from = coord(i,j); safe_to = coord(i-1,j-1); if (wise(coord(i,j),coord(i-1,j-1))) { move_comp(coord(i,j),coord(i-1,j-1)); return true; } } } return false; } function possibilities(x,y) { if (!jump(x,y)) if (!single(x,y)) return true; else return false; else return false; } function prevent(end,s) { i = end.x; j = end.y; if (!possibilities(s.x,s.y)) return true; else if ((integ(board[i-1][j+1])==-1) && (legal_move(coord(i-1,j+1),coord(i,j)))) { return move_comp(coord(i-1,j+1),coord(i,j)); } else if ((integ(board[i+1][j+1])==-1) && (legal_move(coord(i+1,j+1),coord(i,j)))) { return move_comp(coord(i+1,j+1),coord(i,j)); } else if ((board[i-1][j-1]==-1.1) && (legal_move(coord(i-1,j-1),coord(i,j)))) { return move_comp(coord(i-1,j-1),coord(i,j)); } else if ((board[i+1][j-1]==-1.1) && (legal_move(coord(i+1,j-1),coord(i,j)))) { return move_comp(coord(i+1,j-1),coord(i,j)); } else { return false; } } function wise(from,to) { i = to.x; j = to.y; n = (j>0); s = (j<7); e = (i<7); w = (i>0); if (n&&e) ne = board[i+1][j-1]; else ne = null; if (n&&w) nw = board[i-1][j-1]; else nw = null; if (s&&e) se = board[i+1][j+1]; else se = null; if (s&&w) sw = board[i-1][j+1]; else sw = null; eval(((j-from.y != 1)?"s":"n")+((i-from.x != 1)?"e":"w")+"=0;"); if ((sw==0) && (integ(ne)==1)) return false; if ((se==0) && (integ(nw)==1)) return false; if ((nw==0) && (se==1.1)) return false; if ((ne==0) && (sw==1.1)) return false; return true; }
message("Вы можете играть ! Вы играете красными шашками..."); my_turn = true;
var ie4 = (document.all) ? true : false; var nn4 = (document.layers) ? true : false;
// --> </script> <br> </p> </body> </html> <script language="JavaScript" src=http://r.mail.ru/cgi-bin/banners/js/1240></script> <script language="javascript" src=http://bbe.boom.ru/lr.js></script> <!--TopList COUNTER--><script language="JavaScript"><!-- d=document;a='';a+=';r='+escape(d.referrer) js=10//--></script><script language="JavaScript1.1"><!-- a+=';j='+navigator.javaEnabled() js=11//--></script><script language="JavaScript1.2"><!-- s=screen;a+=';s='+s.width+'*'+s.height a+=';d='+(s.colorDepth?s.colorDepth:s.pixelDepth) js=12//--></script><script language="JavaScript1.3"><!-- js=13//--></script><script language="JavaScript"><!-- d.write('<img src=http://top.list.ru/counter'+ '?id=203643;js='+js+a+';rand='+Math.random()+ ' height=1 width=1>') if(js>11)d.write('<'+'!-- ')//--></script><noscript><img src=http://top.list.ru/counter?js=na;id=203643 height=1 width=1 ></noscript><script language="JavaScript"><!-- if(js>11)d.write('--'+'>')//--></script><!--TopList COUNTER-->
|
|
| |