IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Помогите плиз с комментами, javascript
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 45
Пол: Мужской

Репутация: -  0  +


вообщем короче есть игрушка на джава скрипте - змейка. но я не до конца понимаю как она работает типа алгоритм ее, не поможете откомментить несколько моментов чтоб понять как ваще эта штука работает? :

Код
<html>
   <title>Змейка</title>
<head>
<style type = "text/css">
    <!--

body {background-color:#FFF8DC; color:#00FF00;text-align:center;font-family:Verdana;font-size:12px;font-weight:bold;}
-->
</style>

<script language="javascript">
    main = new image();
    main.src="fon.jpg";
    doter = new image();
    doter.src="dot.gif"
    </script>
</head>
<body onload='cantplay()'>
    <img src='fon.jpg' style='position:absolute; left: 9; top: 9'>
    <script>


    for(v=1;v<=100;v++)
        {document.write("<img src=dot.gif id='dot"+v+"'                 style='position:absolute;left:0;top:-200'>")}
    </script>
<div id='bd' style='position:absolute;width:150; left:45;top:15'>Нажмите кнопку<br><br><br>
<input type='button' onclick="level=1;startIt()" value="Начинающий"><br><br>  
<input type='button' onclick="level=2;startIt()" value="Средний"><br><br>
<input type='button' onclick="level=3;startIt()" value="Профессионал"><br><br></div>

<div id='go' style='position:absolute; width:100; left:60;top:-200'>Игра закончена</div>
<div id='ld' style='position:absolute; width:100; left:60;top:30'>Загрузка... </div>
<div id='yw' style='position:absolute; width:100; left:60;top:-200'>Вы выиграли !</div>

<script language="javascript">
direct="null";                            *** зачем вот эти 4 переменные???
sec=0;
run="get";
S=0;
var top=new Array();
var left=new Array();
var go=new Array()
for(n=2;n<=100;n++)
         {go[n]="not";top[n]=-200;left[n]=-200};
for(n=1;n<5;n++) {go[n]="yes"}

*** вот следующие 11 строк зачем
function locatEm(turn)
{ar=new Array(70,160,140,10,60,70,100,30,190,180);
am=new Array(10,110,190,170,60,30,60,80,150,120,20,130,180,160,200,180,70,100,90,20);
test=sec;
now=new Date();
sec=now.getSeconds();
if(test==sec){sec+=sec};
left[turn]=ar[sec%10];
top[turn]=am[sec%20];
showEm(turn);
if(turn!=5){showscore();speed-=rate}}

function SSnake()
{if(go[100]=="yes")
    {document.all.yw.style.pixelTop=60; lost="yes"}; for(i=99;i>1;i--)
{if(go[i]=="yes")
    {top[i]=top[(i-1)];left[i]=left[(i-1)]}};
if(direct=="up")
    {top[1]-=10};
if(direct=="down")
    {top[1]+=10};
if(direct=="left")
    {left[1]-=10};
if(direct=="right")
    {left[1]+=10};
*** ниже вот не понятно зачем
for(m=99;m>4;m--)
{
if(top[1]==top[m])
    {if(left[1]==left[m])         
        {if(go[m]!="yes")
            {go[m]="yes";locatEm((m+1))}
        else{lost="yes"}}}};
if(top[1]==top[100])
    {if(left[1]==left[100])
        {go[100]="yes"}};
    for(z=1;z<=99;z++)
    {if(go[z]=="yes")
        {showEm(z)}};
if(top[1]==0) {lost="yes"};
if(top[1]==210){lost="yes"};
if(left[1]==0){lost="yes"};
if(left[1]==210){lost="yes"};
if(lost!="yes")
    {setTimeout("SSnake()",speed)}
else
    {hideEm(1);
    if(go[100]!="yes")     
        {document.all.go.style.pixelTop=60; setTimeout("reaload()",2000)}}}
**здесь вот походу показывается эта змейка
function showEm(turn)
    {eval("document.all.dot"+turn+".style.pixelTop="+top[turn]);
    eval("document.all.dot"+turn+".style.pixelLeft ="+left[turn])}

*** здесь походу реакции на нажатия клавиш вверх вниз и тд
function keyDown()
{k=window.event.keyCode;

if(k==38)
    {if(direct!="down"){direct="up"}};
if(k==40)
    {if(direct!="up"){direct="down"}};
if(k==37)
    {if(direct!="right"){direct="left"}};
if(k==39)
    {if(direct!="left"){direct="right"}}}

function startIt()
    {if(run=="not")
        {S=0;
        add=0;
        showscore();
        if(level==1)
            {speed=151;rate=1.5; add=3};
        if(level==2)
            {speed=101;rate=1;add=5};
        if(level==3)
            {speed=51;rate=.5;add=9};
        direct="null";
        lost="not";         
                        top[1]=100;
        left[1]=90;
        setTimeout('locatEm(5)',3000);
        document.all.bd.style.pixelTop=-200;
        run="once";
        SSnake()}}

function reaload()
    {for(n=5;n<=99;n++)
        {go[n]="not"};
    for(e=1;e<=99;e++)
        {hideEm(e)};     run="not";
    document.all.go.style.pixelTop=-200;         
            document.all.bd.style.pixelTop=15;
    document.all.yw.style.pixelTop=-200}

*** это походу спрятать змейку
function hideEm(turn)
    {top[turn]=-200;
    eval("document.all.dot"+turn+".style.pixelTop=-200")}

function showscore()
    {S+=add;
    parent.score.document.write("<bo"+"dy bgcolor=#1e1e1e text=#99CCFF><center><font face=Verdana size=2><strong>Счет "+S+"</font></strong></center>");
    parent.score.document.close()}

function cantplay()
    {document.all.ld.style.pixelTop=-200; run="not"}
document.onkeydown = keyDown

</script>
<iframe src='score.html' name='score' width='200' height='20' frameborder='0' scrolling='no' style='position:absolute; top:215; left:10'>
</body>
</html>



Вот тут архив еще прикрепляю со всем рисунками и тд :
надеюсь на вашу помощь...


Прикрепленные файлы
Прикрепленный файл  snake.rar ( 8.37 килобайт ) Кол-во скачиваний: 159
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 22:48
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name