Проект "Танчики"
Самый сложный, но самый интересный проект из всех. Напишите игру, в которой два игрока управляют танками и могут стрелять друг в друга. Вряд ли вы уложитесь в два (и даже в четыре) занятия, но усилия стоят того!
Этапы разработки:
Создайте новый проект "Tanks". Для начала добавьте один PictureBox и заставьте его двигаться с клавиатуры. Дети уже почти умеют это делать - помоги им подсказками. Затем научите его не покидать форму. Для этого напишите метод TryMove(PictureBox entity, Point destination) и отладьте его
Добавьте преграды. Это будет List<PictureBox> (расскажи, что это такое), в который в Form_Load нужно будет добавить все "заграждения", заранее добавленные на форму. Модифицируйте метод TryMove так, чтобы танк не могу попасть "внутрь" преграды. Используйте метод IntersectsWith у элемента управления. Он возвращает true, когда у указанных элементов управления есть общая область (то есть двигаться в таком случае нельзя)
Научите танк стрелять. Создайте List<PictureBox>, в который будут добавляться все снаряды, выпущенные противниками. У них будет одинаковая текстура (неважно, чей снаряд; если он оказался внутри вас - вы труп), а направление можно сохранить в любом из полей Text, Tag или Name (они не используются в PictureBox). Добавьте таймер, обрабатывающий движение снарядов. Перемещайте снаряды в обработчике его Tick, попутно проверяя: если снаряд оказался внутри танка (Rectangle снаряда пересекается с Rectangle танка) - тот умирает (или получает урон); если снаряд оказался внутри текстуры, то снаряд исчезает (текстура, кстати, может быть разрушаемой, и тогда она исчезнет тоже!); если снаряд оказался внутри другого снаряда, исчезают оба
Добавьте второго противника, выделите ему свои управляющие клавиши. Добавьте обработку его физики в метод TryMove. Готово! Устройте танковые бои в оставшееся время!
Далее описаны проекты, подробный алгоритм создания и код которых можно найти в учебнике. Увидев, что код проектов есть в учебнике дети, естественно, начнут его копировать и у них, как ни странно, ничего не заработает. Причина простая – если просто скопировать код из учебника, то методы не будут привязаны к конкретным событиям на форме. Так что расскажи ребятам, что лучше всего им будет самим писать код, немного сверяясь с учебником. Это относится ко всем проектам ниже.
Проект "Калькулятор"
Этот проект могут выполнить дети, которые умеют работать, с такими элементами Windows Forms как Button и TextBox.
Подробная инструкция создания данного проекта описана в учебнике. Здесь я расскажу о том, какие варианты улучшения проекта можно задать детям на дом или дать особо продвинутым детям делать прямо на занятии:
Самое очевидное и самое простое – дай детям задание добавить для калькулятора функции возведения в степень, а также подсчет остатка от деления
Если дети уже знают, как работать с MessageBox, можно попросить их сделать так, чтобы калькулятор «надоедал» пользователю просьбами приобрести платную версию после каждой подсчитанной операции
Можно добавить смешные пасхалки. Например, если результатом вычисления становится какое-то определенное число, выскакивает какая-то связанная с этим числом шутка (дай детям самим придумать эти пасхалки)
