Гама на JavaScript прямо в онлайне

Спецвыпуск хакер, номер #002, стр. 002-060-6

waitdelay=200; // Присваиваем значение по умолчанию

deltascore=0; // Нет игры - нет и отскоков

scoreboard.value="Score: "+score; //Записываем ноль в табло

main(); // Вызываем основную функцию

} //Конец блока if

} // Конец тела функции newgame

function main(){ // Объявляем функцию main без аргументов

if (errorflag!=1){//Если ошибки нет, т.е. если мяч успешно отбит...

definefield(); // Вызываем функцию, отвечающую за прорисовку поля

definemovement();// Вызываем функцию, отвечающую за движение объектов

onflag=1; // Обозначаем, что игра уже идет

setTimeout("main()",waitdelay);// Вызываем main через waitdelay миллисекунд

} //Конец блока if

else { //Ошибка! Мяч не был отбит!

printscreen="Вы жестоко ошиблись!!!!!"; // Формируем строку сообщения

battleForm.battleTA.value=printscreen; // Выводим сообщение

onflag=0; //Устанавливаем в состояние "игры нет"

} // Конец блока else

} // Конец тела функции main

function testbrowser(){ // Объявляем функцию testbrowser без аргументов

if (window.navigator.userAgent.indexOf("MSIE")== -1) // Если в объекте информации о

// браузере userAgent нет строки MSIE, то это - не Internet Explorer!

alert ("Please use IE for this page!"); // Используем метод alert для предупреждения

} // Конец тела функции testbrowser

function keyboard(){ // Объявляем функцию keyboard без аргументов

if (window.event.keyCode==37 && racketpos>1) racketpos--;

// Если нажата кнопка влево и ракетка не у левого края, двигаем ее влево

if (window.event.keyCode==39 && racketpos<15) racketpos++;

// Аналогично: нажата кнопка вправо и ракетка не у самого края, двигаем ее вправо

} // Конец тела функции keyboard

function definefield(){ // Объявляем саму функцию и в который раз без аргументов

printscreen=""; // Обнуляем переменную, отвечающую за прорисовку поля

fieldx=fieldy=1;// Начинаем поиск мячика с левого верхнего угла поля

// Блок 1:

while (fieldy<20){ // Для каждой строки по 19-ю включительно:

for (fieldx=1; fieldx<31; fieldx++){ // Для каждого элемента сравниваем:

if (objectx==fieldx && objecty==fieldy) printscreen+="o";

// Если совпали координаты, то на этом месте - мячик

else printscreen+="."; // Иначе - пусто

} // Конец цикла for - вся строка просмотрена в поисках мячика

fieldy++; // Берем следующую строку, и все сначала, пока не исчерпаем все 19 строк

} // Конец цикла while - все 19 строк пройдены

// Блок 2 для последней 20-ой строки:

for (fieldx=1; fieldx<16; fieldx++){ // Для каждого второго элемента (всего 15 позиций!)

if (racketpos==fieldx) printscreen+="=="; // Если совпали, значит рисуем ракетку

else printscreen+="..";// Иначе - пусто

} // Конец цикла for - где-то нарисовали ракетку

battleForm.battleTA.value=printscreen; // Рисуем наше поле в TEXTAREA "battleTA"

} // Конец функции definefield

function definemovement(){ // Объявляем функцию без аргументов

// Сразу самый сложный случай: мяч на последней горизонтали

if (objecty>18){ // Внимание! Мяч на предпоследней строке!

if (objectdx>0 && (racketpos*2-2==objectx || racketpos*2==objectx || racketpos*2-1==objectx))

Назад на стр. 002-060-5  Содержание  Вперед на стр. 002-060-7

загрузка...
Cпец Хакер #075Cпец Хакер #074Cпец Хакер #073Cпец Хакер #072Cпец Хакер #071Cпец Хакер #070Cпец Хакер #069Cпец Хакер #068Cпец Хакер #067Cпец Хакер #066Cпец Хакер #065Cпец Хакер #064Cпец Хакер #063Cпец Хакер #062Cпец Хакер #061Cпец Хакер #060Cпец Хакер #059Cпец Хакер #058Cпец Хакер #057Cпец Хакер #056Cпец Хакер #055Cпец Хакер #054Cпец Хакер #053Cпец Хакер #052Cпец Хакер #051Cпец Хакер #050Cпец Хакер #049Cпец Хакер #048Cпец Хакер #047Cпец Хакер #046Cпец Хакер #045Cпец Хакер #044Cпец Хакер #043Cпец Хакер #042Cпец Хакер #041Cпец Хакер #040Cпец Хакер #039Cпец Хакер #038Cпец Хакер #037Cпец Хакер #036Cпец Хакер #035Cпец Хакер #034Cпец Хакер #033Cпец Хакер #032Cпец Хакер #031Cпец Хакер #030Cпец Хакер #029Cпец Хакер #028Cпец Хакер #027Cпец Хакер #026Cпец Хакер #025Cпец Хакер #024Cпец Хакер #023Cпец Хакер #022Cпец Хакер #021Cпец Хакер #020Cпец Хакер #019Cпец Хакер #018Cпец Хакер #017Cпец Хакер #016Cпец Хакер #015Cпец Хакер #014Cпец Хакер #013Cпец Хакер #012Cпец Хакер #011Cпец Хакер #010Cпец Хакер #009Cпец Хакер #008Cпец Хакер #007Cпец Хакер #006Cпец Хакер #005Cпец Хакер #004Cпец Хакер #003Cпец Хакер #002Cпец Хакер #001