Задачка на понедельник

Aug 05, 2013 15:41

Есть вещи, которые делаются для души.
Одной из таких вещей является желание научить сына программировать.

Родилась идея программы RoboTank, которая позволяет программировать робота убивающего инопланетян. За выходные написан прототип для iPad, оттестировал на сыне.


Read more... )

программирование, ipad, дети, игры

Leave a comment

diablas August 5 2013, 13:59:42 UTC
Ну тогда все сводится просто к задаче перемещения по лабиринту,монстры тут не при чем.
Тогда надо очерчивать задачу,типа попытаться переместиться в самый дальний угол (1-й уровень) из,скажем,правого нижнего угла. Ребенок пишет программу В-В-В-В-В-Л-Л-Л-Л-Л ОК,уровень пройден!
На втором уровне появляются какие-то препятствия,которые надо обходить.Тогда уже все усложняется типа:
если стенка сверху,почти налево,а потом вверх,иначе вверх - пять раз повторить (кстати,циклы не предусмотрены :) )
потом пять раз то же самое,только меняются направления

Потом усложняем: отдельные блоки превращаются в стенки (усложнение условий проверок и усложнение алгоритмов действий

Потом можно суложнить наличием монстров,которых можно убить,а можно обойти

Потом на монстров нельзя натыкаться (добавляется "дальнее" (типа больше,чем на соседнюю клетку) зрение. Надо убегать и отстреливаться

Ну вот как-то так,ИМХО,понятней,интересней и есть плавное усложнение. Потому что так сходу не сильно понятна цель и как ее достичь. То есть какие-то механизмы есть,но что с ними делать и ради чего - непонятно.

Reply

alexeymas August 5 2013, 14:12:07 UTC
Это ж черновик программы.
Лабиринт лабиринтом, но например тот пример, что приведен на рисунке, он с монстрами решается совсем по другому, чем просто с лабиринтом.
А это доказывает, что существует целый класс задач, где наличие монстров - важно.

К тому же лабиринт без монстров менее инетресен детям, имхо.

Reply

diablas August 5 2013, 14:18:52 UTC
ОК,соглашусь с последним утверждением. :)
Но нужна цель. Если просто надо написать программу,чтобы их убить,то тогда не нежны никакие проверки наличия стен,достаточно просто написать что-нибудь типа В-В-В-П-выстрел вверх-Л-Л-Л-Л-выстрел вниз-П-выстрел вверх

Кстати,да,соглашусь,это тоже интересно,я вначале чего-то слишком усложнил задачу в попытке создать чуть ли не андроида :)

Но ведь без условий быстро приестся,потому что даже самый сложный лабиринт можно быдет запрограммировать,просто времени займет дофига... :(

А вот если ограничить количество выстрелов (то есть надо вводить проверку на наличие монстра на линии огня) - то уже интересней. А потом можно стенки двигать,например :)

Reply

alexeymas August 5 2013, 15:06:21 UTC
Просто если поменять каждую команду выстрел на связку (проверка+выстрел) то никакого видимого улучшения логики мы не создаем, кроме того, что программа получается длинее на один пункт.

А это - неправильно.
Поэтому проверку на чудовищ - можно опустить.
А стены - позволяют ориентироваться лучше по карте и опираясь на них ездить.

Reply

diablas August 5 2013, 15:08:57 UTC
ну я уже ниже (замутил комент другому человеку) понял,что я изначально не совсем правильно все понял. :)
я-то их считал тупо препятствиями на пути... :(

Reply

diablas August 5 2013, 14:31:51 UTC
Блин,давно мечтал найти что-то типа такого,только посложнее,как для взрослых. :)
Например выжить враждебный вирус с памяти с какими-то понятными правилами и набором команд типа ассеблерных . Сколько не искал,не нашел,даже хотел сам написать,но обломался. :(

Reply

alexeymas August 5 2013, 15:04:17 UTC
Да я тоже долго обламывался, а теперь взял и написал, хотя и в черновике
Но удовольствие получаю.

Reply

diablas August 5 2013, 15:06:21 UTC
но не то,попроще и для ребенка :)
а надо,чтобы вирусы еще и плодились,плюс изобретение более эффективных способов защиты и размножения...
короче,очень интересная задача
черт,если бы мне кто-то пару месяцев оплатил,я бы занялся,проект бы классный вышел,идей много :(
P.S. Это не намек! :)

Reply


Leave a comment

Up