SlideShare una empresa de Scribd logo
1 de 27
Игры на работе:
Tetris Coding Dojo своими руками




             Сергей Зеленин
                  Александр Баглай
Зачем нам Java?
Чаще всего отвечают




«Заказчик должен быть доволен!»
Не вся работа веселая




Тем более, если проект не твой!
А когда для себя кодишь




Стартапы, фреймворки, велосипеды…
Тогда не так скучно
Мозгу нужны игры!
Coding dojo




Или игра в программирование
Tetris Coding Dojo




Или научи компьютер играть в тетрис
Как начать играть?



1) IP сервера
2) Читаем help
3) Качаем клиента
Регистрация




На главной страничке «Register»
Затем введи твое имя
Ну а после регистрации сразу начнется игра
Как начать играть?



1) Твой «клиент»
2) Тут твой код
3) Так запускаем
Что писать в «клиенте»?
Что писать в «клиенте»?




1) Тип фигурки “I”, “O”, “J”, “L”, “S”, “Z”, “T”
2) Координаты фигурки в текущий момент
3) Состояние стакана тетриса
Что писать в «клиенте»?




 Стакан – это строка из пробелов и «*»
 Слева-направо, снизу-вверх
 Падающей фигурки нет в стакане
Доска почета




Количество очков
Уровень игры
Критерий перехода на следующий уровень
Сколько линий «снял»
Доска почета
Как начисляются очки?




Линии «сняты» = уровень*[1, 3, 7, 15]*100
Фигурка упала = 10
Стакан переполнен = -500
При переполнении стакана он обнуляется
Поиграем?




            Рисунок: http://humourtop.com/cochons-photos-humour/page42.html#.UGasPVGcSO4



В паре веселей!
Поиграем?



  Demo
Что имеем?
 Драйв в разработке
 Среда для прокачки навыков
 Можно экспериментировать с новым
 Фидбек будет быстрым
 Это весело
 Нетворкинг
 А нам +1 к треннинговым тулзам
Технические особенности
 2129 строк кода и 2132 строк тестов
 Ничего сверх сложного




 Время – около 100 middle*h
 Middle справится
Технические особенности



     Q&A
Мы продолжаем



Уже есть то же, но в «змейку»
Уже есть «automated testing dojo»
Еще пару игрулек в разработке
Мы регулярно собираемся поиграть
И нам это нравится
Это все open source




 Open source – отдавая получаешь
 Хочешь погаматься с друзьями?
 Пиши нам на http://codenjoy.com
К чему все это?




Найди напарника
Берите идею, которая драйвит
Берите Java и делайте что-то новое
У вас получится!!!
Игры на работе:
Tetris Coding Dojo своими руками




             Сергей Зеленин
                  Александр Баглай

Más contenido relacionado

Similar a Cергей Зеленин. Aлександр Баглай "Tetris coding dojo"

Игра в программирование? Настольные игры для обучения программированию
Игра в программирование? Настольные игры для обучения программированиюИгра в программирование? Настольные игры для обучения программированию
Игра в программирование? Настольные игры для обучения программированиюАнатолий Шперх
 
Automated testing dojo - how to play game
Automated testing dojo - how to play gameAutomated testing dojo - how to play game
Automated testing dojo - how to play gameOleksandr Baglai
 
Automated testing dojo @ Confet&qa
Automated testing dojo  @ Confet&qaAutomated testing dojo  @ Confet&qa
Automated testing dojo @ Confet&qaOleksandr Baglai
 
Почему гейм джемы - это круто!
Почему гейм джемы - это круто!Почему гейм джемы - это круто!
Почему гейм джемы - это круто!Alexey Izvalov
 
анти – кафе
анти – кафеанти – кафе
анти – кафеSergey Gurjiy
 
интеллектуальная игра 10 11
интеллектуальная игра 10 11интеллектуальная игра 10 11
интеллектуальная игра 10 11preemstvennost
 
Александр Орлов -- Лидерство в тестировании
Александр Орлов -- Лидерство в тестированииАлександр Орлов -- Лидерство в тестировании
Александр Орлов -- Лидерство в тестированииsqadays8
 
Почему оно не находится! / Андрей Аксенов (Sphinx)
Почему оно не находится! / Андрей Аксенов (Sphinx)Почему оно не находится! / Андрей Аксенов (Sphinx)
Почему оно не находится! / Андрей Аксенов (Sphinx)Ontico
 
Использование игровых элементов и методов в процессе тестирования
Использование игровых элементов и методов в процессе тестированияИспользование игровых элементов и методов в процессе тестирования
Использование игровых элементов и методов в процессе тестированияSQALab
 
Тестируем игры для мобильных устройств: от прототипа до запуска
Тестируем игры для мобильных устройств: от прототипа до запускаТестируем игры для мобильных устройств: от прототипа до запуска
Тестируем игры для мобильных устройств: от прототипа до запускаSQALab
 
Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)
Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)
Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)Ontico
 
Glyanenko_ V_ specifika_testirovanija_konsol'nyh_igr
Glyanenko_ V_ specifika_testirovanija_konsol'nyh_igrGlyanenko_ V_ specifika_testirovanija_konsol'nyh_igr
Glyanenko_ V_ specifika_testirovanija_konsol'nyh_igruransoft
 
В игрострой через джемы
В игрострой через джемыВ игрострой через джемы
В игрострой через джемыDevGAMM Conference
 
Python для GameDev
Python для GameDevPython для GameDev
Python для GameDevPyNSK
 
Темная сторона разработки для iOS
Темная сторона разработки для iOSТемная сторона разработки для iOS
Темная сторона разработки для iOSOleg Poyaganov
 
Проходим тест Джоэла
Проходим тест ДжоэлаПроходим тест Джоэла
Проходим тест Джоэла0leGG
 
Качество включенО
Качество включенОКачество включенО
Качество включенОMagneta AI
 
Ladutko - Gamification in Quality Assurance
Ladutko - Gamification in Quality AssuranceLadutko - Gamification in Quality Assurance
Ladutko - Gamification in Quality AssuranceAndrey Ladutko
 

Similar a Cергей Зеленин. Aлександр Баглай "Tetris coding dojo" (20)

Joker2014
Joker2014Joker2014
Joker2014
 
Игра в программирование? Настольные игры для обучения программированию
Игра в программирование? Настольные игры для обучения программированиюИгра в программирование? Настольные игры для обучения программированию
Игра в программирование? Настольные игры для обучения программированию
 
Automated testing dojo - how to play game
Automated testing dojo - how to play gameAutomated testing dojo - how to play game
Automated testing dojo - how to play game
 
Automated testing dojo @ Confet&qa
Automated testing dojo  @ Confet&qaAutomated testing dojo  @ Confet&qa
Automated testing dojo @ Confet&qa
 
Почему гейм джемы - это круто!
Почему гейм джемы - это круто!Почему гейм джемы - это круто!
Почему гейм джемы - это круто!
 
анти – кафе
анти – кафеанти – кафе
анти – кафе
 
интеллектуальная игра 10 11
интеллектуальная игра 10 11интеллектуальная игра 10 11
интеллектуальная игра 10 11
 
Александр Орлов -- Лидерство в тестировании
Александр Орлов -- Лидерство в тестированииАлександр Орлов -- Лидерство в тестировании
Александр Орлов -- Лидерство в тестировании
 
Почему оно не находится! / Андрей Аксенов (Sphinx)
Почему оно не находится! / Андрей Аксенов (Sphinx)Почему оно не находится! / Андрей Аксенов (Sphinx)
Почему оно не находится! / Андрей Аксенов (Sphinx)
 
Использование игровых элементов и методов в процессе тестирования
Использование игровых элементов и методов в процессе тестированияИспользование игровых элементов и методов в процессе тестирования
Использование игровых элементов и методов в процессе тестирования
 
Тестируем игры для мобильных устройств: от прототипа до запуска
Тестируем игры для мобильных устройств: от прототипа до запускаТестируем игры для мобильных устройств: от прототипа до запуска
Тестируем игры для мобильных устройств: от прототипа до запуска
 
Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)
Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)
Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)
 
Glyanenko_ V_ specifika_testirovanija_konsol'nyh_igr
Glyanenko_ V_ specifika_testirovanija_konsol'nyh_igrGlyanenko_ V_ specifika_testirovanija_konsol'nyh_igr
Glyanenko_ V_ specifika_testirovanija_konsol'nyh_igr
 
В игрострой через джемы
В игрострой через джемыВ игрострой через джемы
В игрострой через джемы
 
Python для GameDev
Python для GameDevPython для GameDev
Python для GameDev
 
Темная сторона разработки для iOS
Темная сторона разработки для iOSТемная сторона разработки для iOS
Темная сторона разработки для iOS
 
Проходим тест Джоэла
Проходим тест ДжоэлаПроходим тест Джоэла
Проходим тест Джоэла
 
Качество включенО
Качество включенОКачество включенО
Качество включенО
 
Classtools
ClasstoolsClasstools
Classtools
 
Ladutko - Gamification in Quality Assurance
Ladutko - Gamification in Quality AssuranceLadutko - Gamification in Quality Assurance
Ladutko - Gamification in Quality Assurance
 

Cергей Зеленин. Aлександр Баглай "Tetris coding dojo"

Notas del editor

  1. Привет, меня зовут Саша Баглай. И мы вместе со своим напарником Сергеем Зелениным работаем в GlobalLogic. Я помагаю ребятам научиться джаве, а Серега лидит команды и выполняет роль архитектора. И вот мы познакомились и начали вместе чудить с треннингами. Об этом и поговорим сегодня. Но перед тем, немного лирики.
  2. Я этот вопрос часто задаю по долгу службы ребятам, которым в последствии помогаю изучать джаву. Ребята приходят и хотят выучить джаву. А зачем? И плюс минус ответы сходятся к одному…
  3. У нас в стране айти хорошо развивается, в основном, как мне кажется, благодаря заграничным заказчикам. Там идеи, у нас реализация. Инструменты, которыми мы пользуемся, кстати в основном так же не наши: IDE, библиотеки, сама java, книги, документация, google.Недавно покупал себе обувь к осени и на кассе я заметил надпись на коробке - сделано в Украине. Я порадовался этому. И купил, чтобы поддержать нашего производителя. И задумался, а какие Украинские программные продукты я поддерживаю - какими пользуюсь? А в разработке каких из них я сам принимал участие? Ну ладно, работа есть работа.
  4. Не всякую работу интересно работать. Айтишникам повезло – это люди, которые находят фан в таких вещах, которые обычных смертных не привлекают. Но даже с этим свойством часто встречается такая работа, ради которой сутра в субботу никогда не выйдешь в офис. Подними руку и скажи, из за чего ты точно в субботу добровольно не выйдешь на работу? Но оставим вопрос мотивации нашим менеджерам. Больше интересует другой вопрос - а из-за чего хочется выходить в субботу, оставаться после 18:00 в офисе и еще немного пошаманить?
  5. У меня это случается, когдаджаву я использую для своих целей. Раньше это были велосипеды, а с ростом опыта полезные фреймворки для поддержки проектов.Сейчас еще одно модное направление - поработать на стартап. Я думаю, что любой стартап стоит начинать с программирования для души - то, чем реально сам будешь пользоваться и кафйфовать. Украинцем для украинцев. Мы с напарником нашли такое направление на пересечении тренингов и игр. И стали писать на javaдля себя. По выходных, вечерами - но мы получали от этого удовольствие. И хоть это не было быстро, все же результат есть. Спасибо моему напарнику Сергею за это!Мы стали использовать часть из того, чему научились на коммерческих проектах, но теперь для себя, для души.
  6. Кстати о тренингах - мы с Сергеем частенько проводим тренинги и видим, что айтишникам не нравится. Монологи тренера не всегда привлекают так, как хотелось бы. Пусть информация на 100500% ценная, но если спикер не прокачанто мозг отказывается слушать, больше чем 15 минут. А скучающий мозг либо спит либо развлекается (привет троллям), либо разгребает почту.Можно спрятаться за красивыми слайдами, но это даст немного времени. (Кстати про красивые слайды – «Смерть от презентаций» Алексея Каптерева – очень рекомендую)Да и одним монологом тренера навыков у учащихся не прокачаешь. Надо что-то другое. Нужна практика. Но не нудная, а драйвовая. Вооружившись этим вопросом, мы ходили по тренингам к нашим более опытным коллегам, и что мы заметили…
  7. …наиболее запоминаемый и веселый тренинг случается тогда, когда тренер использует игры на тренинге. Простые детские игры. Ребята сразу же включаются в игру, а после тренер просто наводит мостик между игрой и рассматриваевым бизнес кейсом.Игры нужны! Играя мозг не скучает и не критикует.Все любят играться, но айтишники особенно!И вот мы стали искать подходящий для наших тренингов фреймворк.
  8. Одним из таких игровых тренингов был codingdojo,на котором Сергей участвовал. После мы провели его пару раз в своей компании и поняли, это хорошо! Суть codingdojo в том, чтобы решать какую-то задачку, зарабатывать этим баллы, сумма которых светится на экране рядом с очками других игроков. Быстрая обратная связь. Время на решение ограничено. Рядом кодит коллега ту же задачу. Он дишит в затылок, и это стимулирует. Пробуй, экспериментируй и увидишь как это скажется на твоей игре. Это весело. Программисты любят развлекаться. Развлекаться путем написания кода. Мы в этом убедились.
  9. И вот как-то раз Серега мне говорит - «а что если Тетрис взять за основу coding dojo?» Тогда я не сразу увидел картинку, которую он предлагает, а потому сказал "давай попробуйвыкати первый релиз - посмотрим, что получится". На первом демо, мы как дети игрались два часа - раскладывали фигурки программным образом. Время летело незаметно. А это было 7 часов вечера после непростого дня, наполненного митингами.Как оказалось, научить компьютер играть в тетрис довольно интересная задача. Вот мы и увлеклись. Как дети.После были фиксы, переработки, тестовые встречи с нашими близкими друзьями – и в результате получился тетрис кодингдоджо.
  10. Как играть?Все просто. Ведущий запускает сервак. Каждый участник регистрируется. Качает себе клиента. Запускает его в любимой IDE и начинает разбираться в правилах игры.
  11. Регистрируемся и начинаем играть
  12. В клиенте (который правильно называть сервером игрока, ибо это сервлет) Игрок кодит правила укладывания фигурок, а когда сервлет запущен – сервер начинает с ним общаться.
  13. Команд управления всего 4. Подвинуть фигурку влево/вправо, перевернуть или уронить ее. Метод answer должен вернуть список таких операций серверу в ответ на вопрос сервера.
  14. Сервер присылает клиенту состояние стакана и координаты и тип текущей фигурки.
  15. Состояние стакана закодировано в одной строке размером 10*20.
  16. А вот этот скрин красуется на экране проектора, где каждый игрок может посмотреть как играет его коллега за соседним ноутом. Тут он может наблюдать общее количество очков, уровень до которого добрался, сколько линий снял и задачу, которую предстоит решить чтобы добраться до следующего уровня.
  17. А это лидерборд где видны только очки игроков. Вот она обратная связь. Глядя сюда понимаешь, чьи инструменты круче.
  18. Очки начисляются просто.+ за упавшую фигурку и снятые линии- за переполненный стакан. В отличие от реальной игры, game over не наступает – просто стакан обнуляется и игра продолжается с начала.
  19. Обычно мы предлагаем играть ребятам в парах – это придает еще больше драйва
  20. Есть ли вопросы по внутренностям тренинга? На них ответит Сергей.
  21. Что мы имеем сейчас? Среду, в которой ребята могут проверить свои инженерные практики. Попробовать новые штуки, получить быстрый фидбек. Получить удовольствие и понетворкаться.
  22. Я хочу показать сколько кода надо написать, чтобы все получилось именно так. Я не поленился и посчитал общее количество строк кода. Их - 2129 кода. И всего на три строчки больше тестов - 2132. Написано и удалено, конечно же было раза в два больше, но тем не менее - 8000 строк кода и ребята могут получить удовольствие в виде соревнования в тетрис. Технологии тут, стыдно даже сказать, что энтерпрайсные - немного спринга, немного http, сервлеты, jsp, javascript… Проект писался месяца два по пару-тройку часов в неделю.
  23. Есть ли вопросы по внутренностям тренинга? На них ответит Сергей.
  24. Кроме тетриса уже сейчас создано еще два подобных фреймворка, один на основе игры в змейку, а второй для автоматизаторов. На них мы не останавливаем наш кодэнджой (так мы назвали наш тим). Будет еще. В разработке ругие игрушки, над которыми работают наши друзья. Собираем встречи, на которых играемся. Потом снова переходим в режим – покодить. Покодили – собираемся, и пробуем. Кстати, скоро (14 ноября) при поддержки xpdays будет проходить очередное собрание tetris coding dojo.Кто хочет принять участие в этом - велкам к нам.
  25. Как поиграться у себя в команде? Мы думаем, что опенсорс это наше все. А потому мы с напарником решили, что все наши игровые площадки будут открыты. Открывая, ты получаешь больше. Так кажется. Код можно скачать, чтобы сделать это напишите нам.
  26. Но тетрис это не главное – тетрис, как пример.Каждый из нас имеет в туду-загашнике ряд интересных идей, которые почему-то постоянно откладываются.Без напарника дело вряд ли далеко сдвинется, а потому найди себе напарника, единомышленника и давай вместе плить что-то для своего собственного кайфа. А потом собирайте других коллег и делитесь с ними. Толк будет, я уверен.