Мои комментарии к игре "Камень-ножницы-бумага"

Здесь вы сможете рассмотреть любую строчку кода и понять, почему в том или ином месте написано то или иное

Строка

Комментарий к строке

<html> Открывающий тег <html> – этим тегом начается любая Html-страница
<head> Заголовок Html-страницы
<title>Камень-ножницы-бумага</title> Заглавие окна браузера – надпись "Камень-ножницы-бумага" появляется слева сверху окна обозревателя (на синем фоне)
</head> Окончание заголовка Html-страницы
<body> Начивается <body> – видимая часть Html-страницы
<table width=100%> Прозрачная таблица во всю ширину экрана
<tr> Новая строка таблицы
<td width=100%> Новая ячейка таблицы шириной в 100%
<center> Центрирование (последующие элементы располагаются по центру экрана
<h2><a id=mys>0</a>:<a id=kos>0</a></h2> Внутри заголовка H2 располагаются два функциональных текста, разделённых двоеточием, которым присвоены id=mys и id=kos, что нужно для возможности изменять содержимое этих функциональных текстов (для сообщения счёта игрока и счёта компьютера)
<tr> Новая строка таблицы
<td width=100%> Новая ячейка таблицы шириной в 100%
<center> Центрирование
<h2><a id=sost>Это игра 'Камень-ножницы-бумага'. Ваш соперник – компьютер. Выбирайте, кликнув по картинке. Игра идёт до тех пор, пока кто-нибудь не накопит 20 очков</a></h2> Внутри заголовка H2 располагается функциональный текст (id=sost), в котором вначале игры написаны правила, а потом – выиграл или проиграл человек после того или иного хода
<tr> Новая строка таблицы
<td width=50%> Новая ячейка таблицы шириной в 50%
<center> Центрирование
<img src=pus.GIF name="myw" height=200> Рисунок, изображение на котором – файл pus.GIF, ему присвоено имя name="myw", чтобы можно было изменять его изображение
<td width=50%> Новая ячейка таблицы шириной в 50%
<center> Центрирование
<img src=pus.GIF name="kow" height=200> Рисунок, изображение на котором – файл pus.GIF, ему присвоено имя name="kow", чтобы можно было изменять его изображение
<tr> Новая строка таблицы
<td width=50%> Новая ячейка таблицы шириной в 50%
<center> Центрирование
<fieldset id=vibor> Рамочка для элементов
<center> Центрирование
<legend>Выберите камень, ножницы или бумагу</legend> Легенда рамочки
<input type=image src=kam.GIF onclick=kamonclick() width=150 onmouseover="document.myw.src='kam.GIF';"> Кнопка-изображение, при нажатии на которую запускается подпрограмма kamonclick() (смотри СКРИПТ); при наведении мыши на которую изображение на рисунке "myw" сменяется на 'kam.GIF'
<input type=image src=nos.GIF onclick=nosonclick() width=150 onmouseover="document.myw.src='nos.GIF';"> Кнопка-изображение, при нажатии на которую запускается подпрограмма nosonclick() (смотри СКРИПТ); при наведении мыши на которую изображение на рисунке "myw" сменяется на 'nos.GIF'
<input type=image src=bum.GIF onclick=bumonclick() width=150 onmouseover="document.myw.src='bum.GIF';"> Кнопка-изображение, при нажатии на которую запускается подпрограмма bumonclick() (смотри СКРИПТ); при наведении мыши на которую изображение на рисунке "myw" сменяется на 'bum.GIF'
</fieldset> Окончание рамочки
</table> Окончание таблицы
<br><br> 2 раза новая строка
<h5>Игру подготовил Нагаев Борис. <a href="http://bnagaev.narod.ru">bnagaev.narod.ru</a></h5> Моя подпись и ссылка на мой сайт
<center> Центрирование
<h2><a href="kam_js.htm" id=again style= "visibility = hidden">Сыграть ещё раз</a></h2> Спрятанная ссылка на этот файл, нужная, чтобы "сыграть ещё раз"
<script language="javascript"> Вот здесь и начинается самое интересное. Здесь начинается сам скрипт (написанный на языке javascript). Всё, что было до этого – было форматирование, а это – уже само программирование.
var myss; Объявление переменной myss (количество очков игрока). Обратите внимание: после каждого действия в javascript следует писать точку с запятой. Это одычно не обязательно, но в некоторых случаях (например, при приравнивании со сложением) необходимо. Поэтому проще привыкнуть ставит всегда!
var koss; Объявление переменной koss (количество очков компьютера)
var wib; Объявление переменной wib (выбор компьютера в игре – соответственно КАМЕНЬ , НОЖНИЦЫ или БУМАГА
myss = 0; Приравнивание переменной myss к 0
koss = 0; Приравнивание переменной koss к 0
function kamonclick() Выбор игроком камня. Подпрограмма, которая выполняется, когдаа игрок нажимает на изображение камня. В javascript подпрограммы объявляются при помощи function. "Тело" программы, то есть её содержимое, "обрамляют" в знаки "{" (вначале) и "}" (вконце)
{ "Тело" программы, то есть её содержимое, "обрамляют" в знаки "{" (вначале) и "}" (вконце)
wib=Math.floor(Math.random()*3+1); Приравнивание переменной wib к случайному числу: 1, 2 или 3.Математическое выражение Math.floor(Math.random()*3+1) соответствует случайному выбору чисел 1, 2 или 3. Math.floor(x) – целая часть (обратите внимание: не округление!) числа x. Math.random() – случайное нецелое число от нуля до единицы
if(wib == 1) Условие, что переменная wib равна 1 (выпал камень). Внимание: в условиях следует писать не один знак "=", а два! Иначе произойдёт приравнивание!
{ "Тело" условия, то есть его содержимое, "обрамляют" в знаки "{" (вначале) и "}" (вконце)
document.kow.src="kam.GIF"; Изображение на рисунке kow сменилось на kam.GIF
setTimeout("nich()", 0); Через 0 секунд запусти подпрограмму nich() (выпала ничья: и у компьютера, и у игрока камни)
} "Тело" условия, то есть его содержимое, "обрамляют" в знаки "{" (вначале) и "}" (вконце)
if(wib == 2) Условие, что переменная wib равна 2 (выпали ножницы).
{ "Тело" условия, то есть его содержимое, "обрамляют" в знаки "{" (вначале) и "}" (вконце)
document.kow.src="nos.GIF"; Изображение на рисунке kow сменилось на nos.GIF
myss = myss + 1; Счёт игрока увеличился на 1
setTimeout("ya()", 0); Через 0 секунд запусти подпрограмму ya() (добавь игроку очко на экране)
if(myss == 20) Условие, что переменная myss равна 20 (игрок набрал максимальное количество очков)
{ "Тело" условия, то есть его содержимое, "обрамляют" в знаки "{" (вначале) и "}" (вконце)
alert("Вы победили"); Выведи сообщение на экран: "Вы победили"
vibor.style.visibility = "hidden"; Спрячь рамочку с кнопками-изображениями, чтобы игрок не продолжил ненароком игру ;)
again.style.visibility = ""; Покажи ссылку "Сыграть ещё раз"
} Содержимое условия "обрамляют" в знаки "{" (вначале) и "}" (вконце)
} Содержимое условия "обрамляют" в знаки "{" (вначале) и "}" (вконце)
if(wib == 3) Условие, что переменная wib равна 3 (выпала бумага).
{ Содержимое условия "обрамляют" в знаки "{" (вначале) и "}" (вконце)
document.kow.src="bum.GIF"; Изображение на рисунке kow сменилось на bum.GIF
koss = koss + 1; Счёт компьютера увеличился на один
setTimeout("ko()", 0); Через 0 секунд запусти подпрограмму ko() (добавь компьютеру очко на экране)
if(koss == 20) Условие, что переменная koss равна 20 (компьютер набрал максимальное количество очков)
{ Содержимое условия "обрамляют" в знаки "{" (вначале) и "}" (вконце)
alert("Вы проиграли!"); Выведи сообщение на экран: "Вы проиграли!"
vibor.style.visibility = "hidden"; Спрячь рамочку с кнопками-изображениями
again.style.visibility = ""; Покажи ссылку "Сыграть ещё раз"
} Содержимое условия "обрамляют" в знаки "{" (вначале) и "}" (вконце)
} Содержимое условия "обрамляют" в знаки "{" (вначале) и "}" (вконце)
} Содержимое подпрограммы "обрамляют" в знаки "{" (вначале) и "}" (вконце)
function nosonclick() Выбор игроком ножниц
{
Внимание! Эта и следующая подпрограммы не комментируются, так как в них всё аналогично предыдущей. Больше ясности это комментирование не внесёт
wib=Math.floor(Math.random()*3+1);
if(wib == 2) //выпали ножницы
{
document.kow.src="nos.GIF";
setTimeout("nich()", 0);
}
if(wib == 3) //выпала бумага
{
document.kow.src="bum.GIF";
myss = myss + 1;
setTimeout("ya()", 0);
if(myss == 20)
{
alert("Вы победили");
vibor.style.visibility = "hidden";
again.style.visibility = "";
}
}
if(wib == 1) //выпал камень
{
document.kow.src="kam.GIF";
koss = koss + 1;
setTimeout("ko()", 0);
if(koss == 20)
{
alert("Вы проиграли!");
vibor.style.visibility = "hidden";
again.style.visibility = "";
}
}
}
function bumonclick() //выбор игроком бумаги
{
wib=Math.floor(Math.random()*3+1);
if(wib == 3) //выпала бумага
{
document.kow.src="bum.GIF";
setTimeout("nich()", 0);
}
if(wib == 1) //выпал камень
{
document.kow.src="kam.GIF";
myss = myss + 1;
setTimeout("ya()", 0);
if(myss == 20)
{
alert("Вы победили");
vibor.style.visibility = "hidden";
again.style.visibility = "";
}
}
if(wib == 2) //выпали ножницы
{
document.kow.src="nos.GIF";
koss = koss + 1;
setTimeout("ko()", 0);
if(koss == 20)
{
alert("Вы проиграли!");
vibor.style.visibility = "hidden";
again.style.visibility = "";
}
}
}
С этой строки комментарии возобновляются
function nich() //выведение счета и состояния игры на экран Подпрограмма ya – выведение на экран разных надписей, показывающих, что этот ход – ничья
{
sost.innerText="Ничья!"; Содержимое функционального текста sost сменяется на "Ничья!"
}
function ya() Подпрограмма ya – выведение на экран разных надписей, показывающих, что этот ход выиграл игрок
{
sost.innerText = "Вы получаете очко!"; Содержимое функционального текста sost сменяется на "Вы получаете очко!"
mys.innerText = myss; Содержимое функционального текста mys сменяется на значение переменной myss
}
function ko() Подпрограмма ko – выведение на экран разных надписей, показывающих, что этот ход выиграл компьютер
{
sost.innerText="Компьютер получает очко!"; Содержимое функционального текста sost сменяется на "Компьютер получает очко!"
kos.innerText=koss; Содержимое функционального текста kos сменяется на значение переменной koss
}
</script> Завершение скрипта
</body> Завершение видимой части html-страницы
</html> Завершение html-страницы
Посмотреть саму игру
Используются технологии uCoz