Рейтинг темы:
  • Голосов: 1 - Средняя оценка: 3. Если голосов меньше 5 оценка не показывается.
  • 1
  • 2
  • 3
  • 4
  • 5
код игры яваскрипт
#1
есть игра "перепрыгивалка" http://www.03www.su/2005/25/25-2010-01.htm
есть код которые модифицировал и разделил, код ява
Код:
var block_size=45;var flashflipflop=true;var flashon=false;var t1=null;var t2=null;var gridset=new Array(0,0,2,2,2,0,0,0,0,2,2,2,0,0,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,0,0,0,0,2,2,2,0,0);var gameset=new Array();var gamesettmp=new Array();var gfx=new Array();var balls_left=32;var bsrc=0;var xsrc=0;var ysrc=0;var bdest=0;var game_on=false;var wincnt=0;fblk=-1;
function winner()
{
clearTimeout(t1);

if(wincnt<7) set_block(21+wincnt,wincnt+4);
else if(wincnt>20 && wincnt<28)set_block(wincnt,1);
else if(wincnt==28) wincnt=-1;

wincnt++;
if(game_on==false) t1=setTimeout("winner()",100)
alert("Вы ПОБЕДИЛИ!");
}

function flash_block(blk){if(blk==-1) flashon=false;else{fblk=blk;flashon=true;t2=setTimeout("flasher()",1)}}
function flasher(){clearTimeout(t2);if(flashon){flashflipflop=!flashflipflop;if(flashflipflop) set_block(fblk,1);else set_block(fblk,2);t2=setTimeout("flasher()",80)}else flashflipflop=true}
function pick(blk,x,y){
focus();
if(game_on){
    if(bsrc==0){if(gameset[blk]==2){flash_block(blk);bsrc=blk;xsrc=x;ysrc=y}
}
else{flash_block(-1);
if(gameset[blk]==1){var mv=false;var xeq=false;var yeq=false;var btl=0;
if(y==ysrc && x-xsrc==1||xsrc-x==1){yeq=true;mv=true}/* можно ходить если на соседней клетке пусто*/
else if(x==xsrc && y-ysrc==1||ysrc-y==1){xeq=true;mv=true}

if(y==ysrc && x-xsrc==2||xsrc-x==2){yeq=true;mv=true}/*можно ходить если на клетке через одну пусто*/
else if(x==xsrc && y-ysrc==2||ysrc-y==2){xeq=true;mv=true}

if(xeq && y>ysrc) btl=((y-1)*7)+x;else if(xeq && y<ysrc) btl=((y+1)*7)+x;/*условие при котором определяется соседняя клетка*/
else if(yeq && x>xsrc) btl=(y*7)+x-1;else if(yeq && x<xsrc) btl=(y*7)+x+1;

if(mv && gameset[btl]==2){set_block(bsrc,1);gameset[bsrc]=1/*шарик которым перепрыгиваем должен исчезнуть в начальной точке 1, не исчезать 2*/;
set_block(blk,2);gameset[blk]=2/*при нажатии куда в конечной точке должен появится шарик 2, не появится 1*/;
set_block(btl,1);gameset[btl]=1/*шарик который перепрыгиваем или перед конечной точкой исчезает 1, не исчезает 2*/;balls_left--}
else set_block(bsrc,2);bsrc=0}else{set_block(bsrc,2);bsrc=0}}}if(balls_left==1){game_on=false;winner()}
}

function init(){if(document.images){for(n=0;n<4;n++){gfx[n]=new Image(block_size,block_size);gfx[n].src="images/i"+n+".gif"}var gfxinc=0;for(n=0;n<7;n++){gfx[n+4]=new Image(block_size,block_size);gfx[n+4].src="images/l"+gfxinc+".gif";if(n!=2) gfxinc++}clear_grid()} }
function rotate_grid(){focus();flash_block(-1);var sst=42;for(n=0;n<49;n++){if(gridset[n]!=0) gamesettmp[sst]=gameset[n];sst-=7;if(sst<0)sst+=50}for(n=0;n<49;n++){if(gridset[n]!=0){gameset[n]=gamesettmp[n];set_block(n,gamesettmp[n])}}}
function clear_grid(){focus();flash_block(-1);balls_left=32;for(n=0;n<49;n++){if(gridset[n]!=0){gameset[n]=gridset[n];set_block(n,gridset[n])}}game_on=true}
function set_block(blk,state){var tmp="block"+blk;document.images[tmp].src=gfx[state].src}


var lf=0;var lf2=0;var fillcnt=0;for(n=0;n<49;n++)/*количество ячеек*/{
    if(gridset[n]!=0) document.getElementById('poles').innerHTML += '<a href="Javascript:pick('+n+','+lf+','+lf2+')"><img src="images/i0.gif" name="block'+n+'" width='+block_size+' height='+block_size+' border=0 hspace=0 vspace=0></a>';
    else{document.getElementById('poles').innerHTML += '<img src="images/f'+fillcnt+'.gif" width='+block_size+' height='+block_size+' border=0 hspace=0 vspace=0>'; fillcnt++}
    if(lf++==6){document.getElementById('poles').innerHTML += "<br>";lf=0;lf2++}
    else document.getElementById('poles').innerHTML += "<nobr>";
}

и код HTML
Код:
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<TITLE>Игра. Перепрыгивалка</TITLE>
</HEAD>
<BODY bgcolor="#000000" onLoad="init()"><CENTER><TABLE width=450 cellpadding=0 cellspacing=0 border=0><TR>
<TD colspan=3 width=450 height=70><IMG src="images/boardtop.gif" width=449 height=70 hspace=0 vspace=0></TD>
</TR><TR>
<TD width=67 height=314><IMG src="images/boardleft.gif" width=67 height=314 hspace=0 vspace=0></TD>
<TD width=315 height=314 id='poles'></TD>
<TD width=68 height=314><IMG src="images/boardright.gif" width=68 height=314 hspace=0 vspace=0></TD>
</TR><TR>
<TD colspan=3 width=450 height=65><IMG src="images/boardbottom.gif" width=449 height=21 hspace=0 vspace=0><BR><A href="Javascript:rotate_grid()"><IMG src="images/buttonrotate.gif" width=97 height=44 border=0></A><IMG src="images/boardbottom2.gif" width=254 height=44><A href="Javascript:clear_grid()"><IMG src="images/buttonreset.gif" width=98 height=44 border=0></A><BR></TD>
</TR></TABLE></CENTER> <CENTER> <P><BR>
<INPUT TYPE="BUTTON" NAME="info" VALUE="правила" onClick="alert('Правила игры просты. Вам нужно оставить на поле всего 1 шарик. Для этого Вы должны перепрыгивать шариком через шарик, при этом шарик через который Вы перепрыгните пропадет');"> </P>
<P>&nbsp;</P>
<P align="center">
    <IMG src="1/ban1.gif" width="468" height="60" onLoad="setTimeout('wechseln()', 8000)"></P>
<P align="center">
    <FONT color="#0000ff" size="2">
        Copyright © 2001
        <A style="COLOR: rgb(0,0,255)" href="mailto:info@03www.su">info@03www.su</A>
        BYN., ALL RIGHTS RESERVED <BR> SE@RCHER BYN&nbsp; logo are registered trademarks&nbsp; Online in RuNet <BR> &nbsp;Last Updated:&nbsp; Oct 20, 2001
    </FONT>
</P>
</CENTER>
</BODY>
<script type='text/javascript' src='main.js'></script>
</HTML>

в коде пытаюсь разобратся нужно несколько модифицровать код, чтобы:
1. Можно было ходить на соседнюю клетку (сделал)
2. Чтобы после перепрыгивания шарик не исчезал (сделал).
Но часть кода
Код:
if(xeq && y>ysrc) btl=((y-1)*7)+x;else if(xeq && y<ysrc) btl=((y+1)*7)+x;/*условие при котором определяется соседняя клетка*/
else if(yeq && x>xsrc) btl=(y*7)+x-1;else if(yeq && x<xsrc) btl=(y*7)+x+1;

и
Код:
set_block(btl,1);gameset[btl]=1/*шарик который перепрыгиваем исчезает 1, не исчезает 2*/;balls_left--}

это условие при котором шарик перед конечной точкой (куда сходили) не исчезает!
в двух случаях когда перепрыгиваем и когда ходим!
А как сделать чтобы было только в одном случае!
Когда перепрыгиваем шарик должен остаться!
а когда ходим на соседнюю клетку - шарик должен исчезнуть из начальной точке.

Прошу Вас подсказать

 
Ответить


Переход:


Просматривают эту тему: 1 Гость(ей)