SELECT menu, name, info, href, status, content, color, description, keywords, title FROM menu WHERE main = 'video' ORDER BY step

SELECT title FROM menu WHERE main = 'video' AND menu = 'game5'

SELECT id FROM course WHERE courl = 'game5'

SELECT access FROM course WHERE id = '16'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'demo'

SELECT access FROM packet WHERE packet = 'demo'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'demo' AND status = 'open'

SELECT id, packet, topic, paysum, access, days, strip, name, volume, price, link, info, status, step, youtube, details, bonus1, bonus2 FROM packet WHERE packet = 'game5'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'club'

SELECT access FROM packet WHERE packet = 'club'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'club' AND status = 'open'

SELECT discount, stop_date, TIMEDIFF(stop_date, NOW()) time_left FROM discount WHERE packet = 'game5' AND pupil_id IN (0, '') AND (procode = '' OR procode = '' OR procode IN (SELECT packet FROM access a WHERE a.pupil_id = '' AND a.status = 'open')) AND NOW() BETWEEN open_date AND stop_date ORDER BY discount DESC

SELECT id, status, access_till, DATE(IF(status = 'open', ADDDATE(access_till, INTERVAL 30 DAY), ADDDATE(NOW() , INTERVAL 30 DAY))) buy_till FROM access WHERE pupil_id = '' AND packet = 'game5' ORDER BY access_till DESC LIMIT 1

SELECT email FROM pupil WHERE id = ''

SELECT pupil FROM pupil WHERE id = ''

SELECT courl FROM course WHERE id = '16'

SELECT access FROM course WHERE id = '16'

SELECT lesson_id, SUM(IF(r.status='view',1,0)) views, SUM(IF(r.status='view',0,1)) dones, AVG(IF(stars>0,stars,NULL)) stars FROM report r JOIN lesson l ON r.lesson_id = l.id WHERE course_id = '16' AND r.status IN ('sent', 'done', 'view') GROUP BY lesson_id

SELECT l.id lesson_id, lesson, intro, tasks, l.video, video_length, demo, l.checking, r.youtube, r.archive, r.points, r.duration, r.learned, r.complex, r.opinion, r.stars my_stars, r.status, if(r.status IN ('done','sent'), 1, 0) solved, r.pupil_id for_pupil_id, p.pupil for_pupil FROM lesson l LEFT JOIN report r ON r.lesson_id = l.id AND r.pupil_id = '3223' LEFT JOIN pupil p ON r.pupil_id = p.id WHERE l.status = 'show' AND l.course_id = '16' GROUP BY l.id, r.pupil_id ORDER BY l.step

SELECT final_id FROM packet WHERE packet = 'game5'

SELECT lesson_id, pupil_id, pupil FROM report r JOIN lesson l ON r.lesson_id = l.id JOIN pupil p ON r.pupil_id = p.id WHERE course_id = '16' AND r.status IN ('sent', 'done') ORDER BY lesson_id, r.sent_date DESC

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT in_club FROM pupil WHERE id = ''

SELECT access FROM course WHERE courl = 'game5'

SELECT access FROM packet WHERE packet = 'game5'

SELECT COUNT(*) FROM access WHERE pupil_id = '' AND packet = 'game5' AND status = 'open'

SELECT SUM(3600 * HOUR(video_length) + 60 * MINUTE(video_length) + SECOND(video_length)) FROM lesson WHERE status = 'show' AND course_id = '16' AND video_length is not null

select count(*) from report r join lesson l on r.lesson_id = l.id where l.course_id = '16' and l.status = 'show' and r.pupil_id = '' and r.status = 'done'

select pupil_id, pupil from report r join pupil p on r.pupil_id = p.id join lesson l on r.lesson_id = l.id where l.course_id = '16' and l.status = 'show' and r.status in ('sent', 'done') group by 1 having count(*) = '22' order by max(sent_date) asc

SELECT access_from, access_till FROM access WHERE pupil_id = '' AND packet = 'game5' ORDER BY access_from DESC LIMIT 1

SELECT l.id lesson_id, r.status FROM lesson l LEFT JOIN report r ON r.lesson_id = l.id AND r.pupil_id = '' WHERE l.status = 'show' AND l.course_id = '16' ORDER BY l.step

SELECT packet, discount, open_date FROM discount WHERE pupil_id = '' AND bonus_from_packet = 'game5' ORDER BY open_date DESC LIMIT 1

SELECT final_id FROM packet WHERE packet = 'game5';

SELECT bonus1, bonus2, days, bonusto FROM packet WHERE packet = 'game5'

SELECT IF(ADDDATE(access_from, INTERVAL 41 DAY) >= NOW(), ADDDATE(access_from, INTERVAL 41 DAY), NULL) bonus1_till FROM access WHERE pupil_id = '' AND packet = 'game5' ORDER BY access_from DESC LIMIT 1

SELECT COUNT(*) FROM report WHERE pupil_id = '' AND lesson_id = '295' AND status IN ('sent', 'done')

SELECT topic, packet, paysum, name FROM packet p WHERE p.bonusable = 1 AND p.status = 'show' AND p.paysum > 0 AND packet NOT IN (SELECT packet FROM access WHERE pupil_id = '') AND packet NOT IN (SELECT packet FROM discount WHERE pupil_id = '' AND status = 'show') AND packet <> 'game5' ORDER BY p.paysum DESC

C# обучение для чайников | Видеокурсы | Сокобан

C# обучение для чайников

Формула программиста
основатель — Волосатов Евгений Витольдович

Игра СОКОБАН

Приглашаю пройти видеокурс по созданию полноценной игровой программы СОКОБАН.
Мы вместе, за руку, пройдём по всем этапам создания законченной интеллектуальной игры.
1. Создание редактора уровней.
2. Придумывание этих самых уровней.
3. Создание собственно игры.
4. Решение олимпиадной задачки для добавления ИИ.
5. Переделка игры в режим "на двоих".
6. Написание класса Phone для связи двух программ по сети.
7. Создание сетевой версии игры Sokoban.
8. Оформление итоговой программы.

Открытие 27 ноября в 18:00

Название: Игра Сокобан
Объём: 21 видеоурок.
Доступ: 30 дней

5,000 руб


Для подписки на пакет необходимо авторизоваться.

Список уроков | фото | видео

# Название видеоурока Решило Рейтинг Доступ
1 Сокобан - Вступление 00:11:09 114 чел. ★ 4.8 Done
  Отчёт отправил: 3223. Тимур Решено за 20 мин. [Показать отчёт]
Научился: играть в сокобан 
Сложности: пройти 10 уровней 
Комментарии: ++ 
2 Сокобан - Подготовка - Картинки и лабиринт 00:04:56 76 чел. ★ 4.9 Demo
3 Сокобан - Редактор - Загрузка 00:33:25 75 чел. ★ 4.9 Done
  Отчёт отправил: 3223. Тимур Решено за 2 час. 00 мин. [Показать отчёт]
Сложности: вбил знаки табуляции в текстовый файл, потом икал ошибку переполнения массива) 
Комментарии: все супер. жду следующего урока 
4 Сокобан - Редактор - Интерфейс 00:40:37 63 чел. ★ 5 Done
  Отчёт отправил: 3223. Тимур Решено за 1 час. 00 мин. [Показать отчёт]
Сложности: менять размер картинок 
Комментарии: все понятно и доходчиво 
5 Сокобан - Редактор - Редактирование 00:38:33 55 чел. ★ 4.9 Done
  Отчёт отправил: 3223. Тимур Решено за 2 час. 00 мин. [Показать отчёт]
Научился: добавлять и удалять ячейки 
Сложности: ничего 
Комментарии: все отлично 
6 Сокобан - Редактор - Сохранение 00:44:47 52 чел. ★ 4.9 Done
  Отчёт отправил: 3223. Тимур Решено за 2 час. 00 мин. [Показать отчёт]
Научился: перезаписывать массив с новым размером 
Сложности: у меня почему-то после нажатия кнопки удаления строки, эту последнюю строку в текстовом файле не удаляет, а удаляет последнюю строку последнего уровня, но характеристики нового уровня(ширина, высота) записывает. Не могу найти ошибку. Помогите,  
Комментарии: все супер, буду разбираться 
7 Сокобан - Редактор - Улучшение 00:29:00 51 чел. ★ 5 Done
  Отчёт отправил: 3223. Тимур Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Совершенству 
Сложности: ничего 
Комментарии: Здорово, что программа постоянно модернизируется  
8 Сокобан - Создаём свои уровни 00:08:05 49 чел. ★ 4.9 Done
  Отчёт отправил: 3223. Тимур Решено за 20 мин. [Показать отчёт]
Научился: создавать уровни 
Сложности: ничего 
Комментарии: все супер! жду продолжения 
9 Сокобан - Игра - Интерфейс 00:43:45 52 чел. ★ 5 Done
  Отчёт отправил: 3223. Тимур Решено за 1 час. 00 мин. [Показать отчёт]
Научился: все это было в рекдаторе 
Сложности: пока ничего 
Комментарии: все отлично! 
10 Сокобан - Игра - Управление 01:06:38 45 чел. ★ 5 Done
  Отчёт отправил: 3223. Тимур Решено за 2 час. 00 мин. [Показать отчёт]
Научился: двигать игрока 
Сложности: перерисовывать объекты 
Комментарии: игрок ходит по стенам. так и должно пока быть? 
11 Сокобан - Решалка - Тестер 00:59:55 39 чел. ★ 5 Done
  Отчёт отправил: 3223. Тимур Решено за 1 час. 30 мин. [Показать отчёт]
Научился: перерисовывать консоль и двигать символы по консоли 
Сложности: обновление 
Комментарии: понятно и доходчиво! 
12 Сокобан - Решалка - Мышка 00:53:02 38 чел. ★ 5 Done
  Отчёт отправил: 3223. Тимур Решено за 2 час. 00 мин. [Показать отчёт]
Научился: познакомился с алгоритмом "в ширину" 
Сложности: алгоритм 
Комментарии: все супер!  
13 Сокобан - Решалка - Яблоко 00:44:23 36 чел. ★ 5 Done
  Отчёт отправил: 3223. Тимур Решено за 3 час. 00 мин. [Показать отчёт]
Научился: алгоритму перемещения яблока 
Сложности: сложновато было по началу 
Комментарии: Волшебство какое-то прям) А можно ли увидеть алгоритм, который сделал Orange? с четырехмерным массивом? 
14 Сокобан - Решалка - Оптимизация 00:11:37 36 чел. ★ 5 Done
  Отчёт отправил: 3223. Тимур Решено за 30 мин. [Показать отчёт]
Научился: совершенству 
Сложности: додуматься до такого 
Комментарии: в сотни раз быстрее начала работать! 
15 Сокобан - Игра - Автоходы 00:42:22 35 чел. ★ 4.9 Done
  Отчёт отправил: 3223. Тимур Решено за 3 час. 00 мин. [Показать отчёт]
Научился: добавлять наработки консоли на Формс 
Сложности: найти исправления в ApplaSolver 
Комментарии: все супер! 
16 Сокобан - Редактор - На двоих 00:31:57 33 чел. ★ 5 Done
  Отчёт отправил: 3223. Тимур Решено за 1 час. 30 мин. [Показать отчёт]
Научился: добавлять в карту новые объекты 
Сложности: создавать новые уровни, искать нового персонажа 
Комментарии: все отлично, с нетерпением жду реализации игры на двоих 
17 Сокобан - Игра - На двоих 00:15:40 33 чел. ★ 5 Done
  Отчёт отправил: 3223. Тимур Решено за 30 мин. [Показать отчёт]
Научился: ничего нового не было 
Сложности: переделать метод Step 
Комментарии: хороший короткий урок 
18 Сокобан - Телефон - TCP/IP протокол 00:47:44 44 чел. ★ 5 Done
  Отчёт отправил: 3223. Тимур Решено за 3 час. 00 мин. [Показать отчёт]
Научился: как реализовывать взаимодействие клиента и сервера 
Сложности: по ходу урока становится понятно, "что, как , к чему" все это делается 
Комментарии: все понятно и доступно. Спасибо. 
19 Сокобан - Игра - На двоих по сети 00:56:59 32 чел. ★ 5 Done
  Отчёт отправил: 3223. Тимур Решено за 2 час. 00 мин. [Показать отчёт]
Научился: применять класс Phone в приложениях 
Сложности: решать проблемы рассинхронизации, требующая от программиста сноровки, которая есть у Евгения Витольдовича 
Комментарии: очень познавательный урок. жаль, что не получилось протестировать на двух компьютерах. Позже попробую. 
20 Сокобан - Завершение 00:37:44 31 чел. ★ 5 Done
  Отчёт отправил: 3223. Тимур Решено за 1 час. 30 мин. [Показать отчёт]
Научился: изменять игру при необходимости 
Сложности: написать все это 
Комментарии: Завершен самый большой проект этого сайта(на 27.03.15). Игра Сокобан. Видно, что Евгений Витольдович проделал огромную работу перед записями этих уроков, за что ему огромное спасибо! Самое интересное и самым сложным было - это автоходы и возможность игры на двоих на разных компьютерах. Занятия очень понравились, во время уроков каждый класс, метод подробно объясняются, зачем и для чего он. 
21 ФИНАЛЬНЫЙ урок. Видео-обзор проекта Сокобан 00:23:23 21 чел. ★ 5 $
22 VIP. Бот для игры БАЛДА 01:22:57 4 чел. ★ 5 $
  Итого:   22 видеоурока общей продолжительностью 13 час. 48 мин. 4 чел. ★ 4.97  
  Финалисты:   zhikharevav,   Ильшат,   Максим,   Новопашин Владимир .

Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: как всегда, записывать видео!
Трудности: придумать сценарий обзора
Кажется, что обзор немного скомкан. Не показал сетевую игру. Вообще, игра еще не завершена. Дорабатывать можно сколько угодно долго =) Например, в мыслях сделать режим Кампании, сохранение прогресса и много чего еще. Спасибо Евгению Витольдовичу за то, что дал базу для написания таких простых, и вместе с тем, не простых игр.
Смотреть видеозапись: https://youtu.be/5xPrVrlNoOA
Научился: Закрепил классы и из наследование, деллигаты, enum и передочу данных по TCP/IP протоколу
Трудности: Вносить свои улучшения, но это было интересно =)
Курс отличный! Если вы давно зотели написать большой проект, но боялись начать, то этот курс как раз для вас =) Но я уже немного подустал, так что обзор получился далеко не лучший.. Следующий курс. По всей видимости "Мат Конём и Слоном" надо добивать, а потом наконец-то смогу отдохнуть =)
Смотреть видеозапись: https://youtu.be/gaJZpbh1CKw