OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 15 Август, 2018 14:16

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 102 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Вторник, 07 Февраль, 2012 14:54 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2289
Откуда: Россия, Санкт-Петербург
Внимание! Если на одной машине запущено два или более экземпляров ББ, то первый прерывается по Ctrl+Break, второй прерывается по Ctrl+Shift+Break, третий и последующие - не прерываются. Дело в том, что клавиатурные комбинации глобальны в системе. ББ пытается сначала захватить Ctrl+Break. Если не получилось, пробует Ctrl+Shift+Break. Пока захвативший комбинацию экземпляр ББ продолжает работать, новые экземпляры эту комбинацию захватить не могут.

Может быть, у вас Ctrl+Break не работает потому, что фоном запущен другой ББ (ну, скажем, в одном вы пишете диссертацию, а в другом экспериментируете с роботом).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Вторник, 07 Февраль, 2012 14:56 

Зарегистрирован: Четверг, 01 Июнь, 2006 11:14
Сообщения: 240
убрал из конфига вызов скскрипт.инит, перекомпилил
запустил blackbox1
зациклился, но по контрлбрэйку такое получилось (серый модуль остался и после нажатия на ок):
Вложение:
err.png
err.png [ 222.25 КБ | Просмотров: 5636 ]


в логе значений фалс 3 шт но не отдает управление пока контрлбрэйк не нажму...
перепроверил
если подождать около 10 сек, то управление отдает норм
норм отдает управление
ждать не надо, просто часики висели 10сек


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Вторник, 07 Февраль, 2012 15:07 

Зарегистрирован: Четверг, 01 Июнь, 2006 11:14
Сообщения: 240
итак:
раскоментирование халта не помогало из-за скскрипт.инит в конфиге
т.е. если
в скробот раскомментировать халт и исправить 20 на 128 и не вызывать сксрипт.инит из конфига или вручную, то робот не зацикливает программу и ведет себя "хорошо" (стоит там где разбился, цвет поменял)

с контролбрэйком пока не понятно, но тестировать тогда надо на пустом вайле уже


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Вторник, 07 Февраль, 2012 15:14 

Зарегистрирован: Четверг, 01 Июнь, 2006 11:14
Сообщения: 240
Александр Ильин писал(а):
Внимание! Если на одной машине запущено два или более экземпляров ББ, то первый прерывается по Ctrl+Break, второй прерывается по Ctrl+Shift+Break, третий и последующие - не прерываются. Дело в том, что клавиатурные комбинации глобальны в системе. ББ пытается сначала захватить Ctrl+Break. Если не получилось, пробует Ctrl+Shift+Break. Пока захвативший комбинацию экземпляр ББ продолжает работать, новые экземпляры эту комбинацию захватить не могут.

Может быть, у вас Ctrl+Break не работает потому, что фоном запущен другой ББ (ну, скажем, в одном вы пишете диссертацию, а в другом экспериментируете с роботом).

запускался бб единожды, но...
например со старыми виндовыми играми под вин7-64 была такая заморочка, они запускались со второго раза, первый раз запускался ран32.длл а второй раз уже сама игра и когда выходишь из игры, то 1 ядро процессора занято тем ран32.длл. его вручную надо было убивать. правда с какого-то времени это прекратилось (мб заплатки).
но тут в диспетчере задач подозрительного ничего нету вроде


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Вторник, 07 Февраль, 2012 15:18 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2289
Откуда: Россия, Санкт-Петербург
___ писал(а):
т.е. если в скробот раскомментировать халт и исправить 20 на 128 и не вызывать сксрипт.инит из конфига или вручную, то робот не зацикливает программу и ведет себя "хорошо" (стоит там где разбился, цвет поменял)
А я-то всё не могу понять, в чём тут дело. А вы, оказывается, в конфиге прописали. Ясно.
Можно просто в начале программы вызывать R.SetErrorHandler(NIL). Это отменит нежелательный эффект от SkScript.Init, если таковой имеется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Вторник, 07 Февраль, 2012 15:29 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1086
Александр Ильин писал(а):
Можно просто в начале программы вызывать R.SetErrorHandler(NIL).

А Можно R.SetErrorHandler(MyErrorHandler), где
Код:
PROCEDURE MyErrorHandler;
BEGIN
  Log.String('Апстену!!!111');Log.Ln;
  HALT(128);
END MyErrorHandler;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Вторник, 07 Февраль, 2012 15:44 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1086
Trurl писал(а):
Если бы был отдельный модуль робота для КП, в каждую команду можно было бы вставить предусловие и трап был бы всего в одном шаге от нужного места.

Хотел сделать интерфейсный модуль типа
Вложение:
Робот.odc [1.73 КБ]
Скачиваний: 165

но так робот не успевает сломаться (в смысле - покраснеть).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: о визуализации движения робота
СообщениеДобавлено: Вторник, 07 Февраль, 2012 15:53 

Зарегистрирован: Четверг, 01 Июнь, 2006 11:14
Сообщения: 240
Info21 писал(а):
Вот какая мысль:

Если программа для робота -- обычная КП-программа,
но за кадром все команды отправляются в список, и пошаговый показ идёт после выполнения собственно программы.

Причём *без* обратной связи насчёт где именно оно в программе гробанулось :)
Штоб крепче думали :)


даже такую штуку прикрутить не смогу%)

Илья Ермаков писал(а):
Info21 писал(а):
но за кадром все команды отправляются в список, и пошаговый показ идёт после выполнения собственно программы.


В давешнем моём Lab так и делалось, там был такой механизм отложенного показа для исполнителей.

Сейчас я думаю, что и такой показ не нужен, достаточно начертить траекторию движения...


вообще хотел посмотреть, что для робота есть для бб.
просто позанимался с тремя учениками (5, 8, 11кл на кумире), темы линейного алгоритма все схватывают просто мигом, процедуры у 5кл уже вызывают затруднения, 11кл быстро (но не всегда видит, какие выделить в процедуры). все трое использовали для запуска ф9 (весь алгоритм разом, не пошагово, хотя в кумире он хоть и быстро, но видно как пробегал). поэтому вполне возможно, что при знакомстве с роботом, можно просто использовать режим с клавиатуры (погонять клавишами, позакрашивать - почувствовать робота), а когда писать программы, то мб моментальное исполнение приемлемо (со старшими школьниками).
у интерпретатора хоть и есть свои плюшки (пошагово, показывает на какой команде, не надо модуль писать, следить за компиляцией, можно реализовать конструкции которых нет в кп (н-раз) и тд), но надо дорабатывать эти доп конструкции (процедур с параметрами например и др) и тогда теряется находка школьной сборки: единая среда+единый язык на всем протяжении курса (робо+черепах+кп+англ+рус).
почему я и спрашивал "малой кровью", потому, что у самого квалификации нет сделать что-то "ух", а другим явно не до этого.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Вторник, 07 Февраль, 2012 16:28 

Зарегистрирован: Четверг, 01 Июнь, 2006 11:14
Сообщения: 240
Код:
MODULE AK_Rob1;
   IMPORT  Log := StdLog,  In := i21sysIn,  Math, R:=SkRobot;
   
   
BEGIN
   Log.Bool(R.trap # NIL);
   WHILE R.DownClear() DO
      Log.Bool(R.trap # NIL);
      R.Right;
      Log.Bool(R.trap # NIL);
   END;
   Log.Bool(R.trap # NIL);
   (**)R.Left; R.Right; R.Right;
END AK_Rob1.


если перед запуском поставить робота в начальное положение, то разбившись отдаст управление, если запустить сразу повторно, то зациклится


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Вторник, 07 Февраль, 2012 17:34 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7834
Откуда: Троицк, Москва
Робота хорошо бы дожать до реального удобства.
Тут два направления:
1) дожать "стандартного" робота, дописав документацию для учителей и вписав в школьный комплект
2) взяв идею, -- но не делая культ из каждой детали, -- доковать до настоящей методической простоты, м.б. в духе черепашки (хотя та тоже ещё хочет поразвиваться).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Среда, 08 Февраль, 2012 08:24 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1086
___ писал(а):
если перед запуском поставить робота в начальное положение, то разбившись отдаст управление, если запустить сразу повторно, то зациклится

Программа на КП должна начинаться с вызова процедуры SkRobot.Start, которая устаналивает робота в начальное положение и очищает поле.
Код:
MODULE AK_Rob1;
   IMPORT  Log := StdLog,  In := i21sysIn,  Math, R:=SkRobot;
BEGIN
   Robot.Start;
   WHILE R.DownClear() DO
      R.Right;
   END;
END AK_Rob1.

Интерпретатор вызывает её автоматически.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Среда, 08 Февраль, 2012 11:41 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7834
Откуда: Троицк, Москва
Trurl писал(а):
Код:
WHILE R.DownClear() DO
Вот, например, наличие функции.
Робот -- он для самых начинающих. Вроде.
И функцию там вводить -- нехорошо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Четверг, 09 Февраль, 2012 08:40 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1086
А ведь если управлять роботом из КП, то смысла во всей этой анимации нет. Достаточно выводить итоговую ситуацию. Так ведь?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Четверг, 09 Февраль, 2012 09:14 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4485
Откуда: Россия, Орёл
Trurl писал(а):
А ведь если управлять роботом из КП, то смысла во всей этой анимации нет. Достаточно выводить итоговую ситуацию. Так ведь?
Очень возможно. Типовые задачи, вроде, провести робота из А в Б по какому-то маршруту. Поэтому итог: следы робота + его конечное положение (разбитое или целое). Илья Евгеньевич выше говорил.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Четверг, 09 Февраль, 2012 09:39 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7834
Откуда: Троицк, Москва
Trurl писал(а):
А ведь если управлять роботом из КП, то смысла во всей этой анимации нет. Достаточно выводить итоговую ситуацию. Так ведь?
С точки зрения методики обучения без отладчика -- да.

Но как завлекалочка -- оно, вроде, и невредно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Четверг, 09 Февраль, 2012 10:54 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8970
Откуда: Россия, Орёл
Нарисуйте путь линией - да и всё.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Четверг, 09 Февраль, 2012 14:59 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1086
А если путь туда-сюда?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Четверг, 09 Февраль, 2012 15:26 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4089
Откуда: Россия, Орёл
Не, на самом деле, когда я лабовского робота применял в процессе, его видимое перемещение очень даже стимулировало обучающихся... 8)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Четверг, 09 Февраль, 2012 16:27 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7834
Откуда: Троицк, Москва
Борис Рюмшин писал(а):
когда я лабовского робота применял в процессе, его видимое перемещение очень даже стимулировало обучающихся... 8)
Любое движение стимулирует рептилийную часть мозга.
Важно найти сочетание с правильной мета:)методической ... аттитюдой :D

Оторвать движение от хайлайтинга кода -- это, наверное, правильно.
Ну, и включать только для начинающих.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Пятница, 10 Февраль, 2012 13:56 

Зарегистрирован: Четверг, 01 Июнь, 2006 11:14
Сообщения: 240
прототип, как может выглядеть робот в "стиле черепашки"

использовал команды "СвободноСверху" вместо "СверхуСвободно" тк мне кажется, что отрицания "НЕ СвободноСверху" звучат лучше чем "НЕ СверхуСвободно" (если не вводить дубликаты "СверхуСтена"). но в полной версии "НЕ Р.СвободноСверху()" уже похуже%)
R.Start перевел как Р.НаСтарт

Вложение:
rbt.png
rbt.png [ 208.46 КБ | Просмотров: 5467 ]


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 102 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2018, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB