
Гама на JavaScript прямо в онлайне
Спецвыпуск хакер, номер #002, стр. 002-060-5
{
objectdy=-objectdy;  	// Мяч отражается
score++;  		// Очки возрастают
}
if (objectdx<0 && (racketpos*2-1==objectx || racketpos*2==objectx ||racketpos*2+1==objectx))
// Аналогично: если мяч движется влево и находится в зоне ракетки
{ 
objectdy=-objectdy; 	// Мяч отражается
score++;  		// Очки возрастают
}
	deltascore++; 		//  Количество отскоков увеличилось на единицу
	if (deltascore==5){  	//  Если мяч отскочил уже 5 раз, ускорим игру!
	deltascore=0; 		// Сбросили счетчик отскоков на ноль
	waitdelay=waitdelay*0.75; // Уменьшили задержку, т.е. ускорили на 25%
	}
	if (errorflag!=1)scoreboard.value="Score: "+score;  // Вывели очки в табло, если все ОК
} // Конец блока if, проверявшего, находится ли мяч на последней горизонтали
	
	//  Теперь три легких случая - мяч у трех стенок:	
if (objecty<2) objectdy=-objectdy;  // Мяч у верхней стенки, меняем направление
	if (objectx>29)objectdx=-objectdx; // Мяч у правой стенки, меняем направление
	if (objectx<2) objectdx=-objectdx; // Мяч у левой стенки, меняем направление
	
	//  Осуществляем движение:	
objectx+=objectdx;  // Двигаем объект по X
	objecty+=objectdy; // Двигаем объект по Y
	if (objecty>19) errorflag=1;  // Ошибка! Мяч не был вовремя отражен!
} // Конец тела функции
 Вот, собственно, и все! Теперь тебе остается со спокойным сердцем закрыть тэг <SCRIPT> и создать внутри <BODY> с помощью стандартных тэгов кнопочку Start Game (onclick=newgame()), форму (name=battleForm) и внутри ее TEXTAREA размером 30 на 20 (name=battleTA cols=30 rows=20). Не забудь про табло <INPUT name=scoreboard>, и твоя первая игра полностью готова!
Напоследок хочу привести код полного HTML-файла со всем  необходимым и пожелать тебе новых игр на JavaScript!
	Листинг финального файла squash.htm:
<!- Между этих строк расположены комментарии для HTML
Cтандартный заголовок
-->
<HTML>
<HEAD>
<TITLE>Squash!</TITLE>
</HEAD>
<!- 
Собственно, главный JS-сценарий
//-->
<SCRIPT LANGUAGE=javascript>
<!--
var fieldx=1;  	   // X-координата игрового поля
var fieldy=1;	   // Y-координата игрового поля
var objectx=2;	   // X-координата мячика
var objectdx=1;	   // Смещение мячика по оси X
var objecty=2;	   // Y-координата мячика
var objectdy=1;	   // Смещение мячика по оси Y
var racketpos=7;	   // Положение ракетки
var errorflag=0;	   // Если 0, то все ОК. Единица, если мяч вовремя не отбит
var score=0;	   // Набранные очки
var deltascore=1;	   // Количество отскоков
var waitdelay=200; // Задержка в миллисекундах между движениями мячика (скорость игры)
var onflag=0;	   // Если 0, то игра не начата. Единица, если уже идет
var printscreen;	   // Главная переменная вывода 
function newgame(){  // Объявляем функцию newgame без аргументов 
if(onflag==0){ 	// Т.е. если игра не начата, то...
		errorflag=0;  		// Сбрасываем в значение по умолчанию
		score=0;  		// Очевидно, что очков пока нет
		objectx=objecty=2;  	// Задаем начальные координаты для мяча
		fieldx=fieldy=1; 		// Задаем начальные координаты для поля