Морской бой: игровое поле

Программно создать игровое поледля Морского боя, включая нумерацию строк и столбцов. Зполнять поле текущим состоянием массива. Позволять пользователю изменять состояние массива и сохранять его в переменной сессии. Позволять очистить массив.

Пример (левое поле “My Field”)

Необходимо предоставить ссылку на работающий скрипт + ссылку на исходный код скрипта (копия файла скрипта с расширением txt).

Вводная по веб-программированию на PHP

Уважаемые студенты, изучающие веб-программирование на PHP!
Проверьте себя, что вы умеете из нижеперечисленного, всё ли у вас есть для того, чтобы двигаться в изучении веб-программирования дальше?

Вы должны понимать следующие элементы PHP:

Кроме этого, вы должны уметь:

  • пользоваться следующими встроенными функциями “из головы”, не подсматривая в документацию: isset(), empty(), rand(), count(), print_r(), error_reporting(), echo(), die(), exit(), setcookie(), time(), strlen();
  • ориентироваться в документации на php.net и в случае необходимости быстро отыскивать там нужную вам встроенную функцию;
  • понимать синтаксис описания встроенных функций в официальной документации php.net, уметь читать примеры и модифицировать их для использования в своём коде;
  • интегрировать код на PHP внутрь HTML-документа, устанавливать ссылки на php-скрипты с параметрами в них и отправлять на обработку php-скрипту простейшие веб-формы.

Если вы не осиливаете офдок на английском, то воспользуйтесь упрощённым курсом на W3Schools, в крайнем случае обратитесь к частично переведённой на русский язык официальной документации или купите (скачайте) книгу по PHP 5.x на русском.

Внимание! Полной документации по PHP 5.х, качественно переведённой на русский язык нет! Не поддавайтесь соблазну изучать PHP по различным устаревшим курсам, пособиям, книгам и сайтам, где идёт речь о 3-й или 4-й версии PHP. Они безнадёжно устарели!

Запускать свои скрипты лучше всего на сервере cs.mk.ee (предварительно убедитесь, что у всех файлов установлены права доступа 755). Если вы желаете работать с PHP локально на своём компьютере, то вам нужно установить XAMPP или любой другой набор из Apache2, PHP 5.x и других полезных программ из этого списка. Подобные комплекты софта созданы и для других ОС – для Мака и Линукса.

Писать свой код в Windows лучше всего в одном из следующих бесплатных текстовых редакторов с подсветкой синтаксиса и поддержкой прямой работы с FTP-сервером (перечисляю свои личные предпочтения, но разумеется никто не запрещает вам использовать Geany, Eclipse или любой другой свободный или коммерческий продукт, с которым вы будете чувствовать себя комфортно):

Экзамен по веб-программированию

Уважаемые студенты!

Экзамен по веб-программированию (PHP) состоится в будущий вторник, 1 июня, в 17:30 в компьютерном классе.
У тех, кто всё ещё не предоставил домашние задания ещё есть срок сделать это до 23:59 31.05.2010

До встречи на экзамене!

Итоговая задача про Ajax

Уважаемые студенты!
Публикую задачу на использования технологии Ajax. Решение задачи является одним из условий допуска к экзаменту.

Собственно, задача: создать страницу, которая показывает случайную фотографию из директории с фотографиями на сервере. Под фотографией разместить кнопку “Show Next Random Image”, нажатие на которую при помощи Ajax (т.е. без перезагрузки страницы) заменяет эту фотографию на другую случайную фотографию из той же директории.

Фотографии должны быть в формате jpeg, размером не меньше 500х500 пикселей, числом не менее 5 разных.

Ссылки на готовые работы (клиенткая часть ссылкой на html, серверная – ссылкой на txt) прошу оставлять в комментах к этой записе.

Удачи!

PHP & Ajax: что дальше?

Уважаемые студенты!

Те из вас, кто всерьёз заинтересовался программированием на PHP или использованием Ajax, могут посмотреть следующие презентации в поисках best practices и нюансов работы с этими технологиями в различных условиях:

Ajax and PHP
Ajax for PHP Developers
High Performance Ajax Applications
Enterprise PHP (PHP London Conference 2008)
PHP tips and tricks
Iterators in PHP

Javascript: что дальше?

Тем, кто всерьёз заинтересовался возможностями Javascript, в свободное время настоятельно рекомендую ознакомиться с:

Поскольку в конце курса по PHP мы ещё затронем тему объедининения между собой PHP и Javascript (jQuery) при помощи Ajax, то одновременно хочется успеть посмотреть, как строятся многоуровневые приложения с использованием сторонних веб-сервисов.

Будет здорово, если вы в рамках самостоятельной работы ознакомитесь с документацией и примерами следующих службам Google:

В таком случае на последней лекции мы сможем добавить их в наше учебное приложение. На экзамене Google API точно не будет, так что вы ничего не теряете, но самостоятельно ознакомившись с документацией у нас появляется шанс успеть больше.

Финальное задание по Javascript

Уважаемые студенты!

Сегодня мы закончили знакомство с Javascript. К этому языку программирования мы ещё вернёмся после того, как изучим основы PHP: для использования Ajax и различных Google API.

А пока домашнее задание:

При помощи Javascript, HTML и CSS (а главное – максимально активно используя jQuery) написать программу, играющую с пользователем в классические крестики-нолики.

Некое подобие технического задания:

  • перед началом игры пользователю необходимо представиться (ввести имя или никнейм, по которому программа в дальнейшем будет обращаться к пользователю);
  • перед началом игры случайным образом определяется, будет ли пользователь играть за крестики или за нолики;
  • игру всегда начинают крестики (не важно – играет на них компьютер или человек);
  • сложность AI (созданного вами “искусственного интеллекта”) может быть любой: похвально, если вы научите свою программу сводить любую партию вничью или выигрывать, если компьютер получает право первого хода. Но для зачёта достаточно, даже если компьютер будет делать ходы “наобум”.
  • необходимо воспроизвести все правила игры и определение победителя (с учётом ничьей);
  • в программе должна быть кнопка “Начать новую игру”;
  • после того, как компьютер сделает ход, нужно подсветить для пользователя клетку, заполненную компьютером и, если не наступил конец игры, оповестить его о переходе права хода к пользователю (Например, выводом сообщения “Теперь ваш ход, %username%”;
  • для ввода/вывода запрещается использовать alert() и prompt()
  • код программы должен быть корректно отформатирован и содержать комментарии в разумных количествах;
  • придерживайтесь “хороших практик” программирования: используйте семантически корректный HTML, отделите оформление и программный код от структуры файла, вынеся CSS и Javascript во внешний файл или секцию <head>;
  • постарайтесь при выполнении этого задания использовать знания, полученные в ходе курсов “Веб-технологии” и “Пользовательские интерфейсы”.

Работы разместите на своих серверах или на mk.ee/~%ваше_имя% и оставьте ссылку на свою работу в комментариях к этой записи.

Мотивационная часть

Кнут: на экзамен по веб-программированию допускаются только самостоятельно выполнившие это задание.

Пряник:  авторы наиболее интересных и функциональных программы (эффективность AI, процедура определение победителя, качество кода, использование средств jQuery, аккуратность интерфейса) получат весомый бонус на экзамене.