Перейти к содержимому

NEO

Пользователи
  • Публикации

    1 436
  • Зарегистрирован

  • Посещение

  • Победитель дней

    78

Сообщения, опубликованные пользователем NEO


  1. А эти проблемы актуальны для сопрограмм Lua?

    Проблема может возникнуть при неправильном проектировании программы (например доступа к файлу), но это уже проблема программиста а не библиотеки. Или я ошибаюсь?

    Конечно. Ошибаешься.


  2. Чтобы загрузить стандартную OpenOS - да. Нужен Lua BIOS (или свой чип выполняющий аналогичные действия).

     

    С одного только EEPROM тоже можно загрузиться. Если написать свой. (Я в блоге писал про особенности программирования EEPROM'а). Всю нужную функциональность надо будет тоже самому описать в коде (не больше 4 Кб, если больше - надо выносить код. На дискету (как делает OpenOS) или подгружать из сети).

    Например надо будет забиндить видеокарту к монитору, иначе не будет видно изображения.

    :ponder2:  :smile148:  :smile89:  :smile3:


  3. 1 переменная состояния, и 3 действия, отнимать прочность когда идет работа, проверять когда закончится состояние, и когда закончится вместо машины ставить металлолом.

    каждая машина лишних 4 байта в ОЗУ будет занимать,или 2 байта кто сколько прочности хочет сделать.

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


  4. Здравствуйте уважаемые формучане,По просьбе 1Ridav дописать Библиотеку,мы решили с Totoro совместно ее до делать.Ув. Totoro если что меня дополнит ниже в сообщениях.

    Библиотека работает на ивентах.

    Pastebin: http://pastebin.com/dETumgeU

    lib= require('bridge')
    event= require('event')
    lib.init()
    lib.auth('123')
    while true do
       lib.pull()
       events,message= event.pull()
       if (events == 'bridge_message') then
          print(message)
       end
    end
    lib.finish()
    

    Событие которое создаёт библиотека,называется 'bridge_message',аргумент всего один ,и он несет в себе сообщение.

    Мы добавили обработчик команд,называются Хендлер, то есть см код ниже

    function fhw()
       print('Hello World')
    end
    
    lib= require('bridge')
    event= require('event')
    lib.init()
    lib.auth('123')
    lib.addHandler('hw',fhw)
    while true do
       lib.pull()
    end 
    lib.finish()

    addHandler добавляет в список команду,и функцию если вы передадите hw из андроида,тогда сработает функция fhw ,и выведет Hello World.

    removeHandler удаляет хендлер из списка.

    • init(): boolean

    Устанавливает соединение с мостом.

    • auth(key: string): boolean

    Авторизуется на мосту используя переданный ключ.

    • pull()

    Проверяет сообщения с моста. Если сообщение пришло - создает эвент bridge_message и управляет хандлерами.

    • addHandler(command: string, callback: function)

    Создает новый хандлер: это пара "команда-функция". То есть, когда от моста приходит команда, с аргументами через пробел, хандлер вызовет соответствующую функцию, передав ей все аргументы в виде строк.

    • removeHandler(command: string)

    Удаляет хандрер "повешенный" на заданную команду.

    • finish()

    Закрывает соединение с мостом и завершает работу.

    • Нравится 1

  5. Переписал Код ,превратил в библиотеку.

    подключаем файл с библиотекой как API.

    вызываем метод robot= filename.new(X:number,Y:number,Z:number,Side:number)

    аргументы= координаты черепашки,возвращает объект с которым можно работать.

    для перемещения использовать стандартные функции turtle.forward() и тп.

    в конце программы всегда вызывать robot.close()

    Функции:

    draw() выводит координаты и сторону.

    getX() возвращает x:number

    getY() возвращает y:number

    getZ() возвращает z:number

    goto(X:number,Y:number,Z:number,SIDE:number) едет на координаты X:number,Y:number,Z:number и поворачивается в сторону SIDE:number ,относительно координат введенных в методе new

    digRight() копает вправо

    digLeft() копает влево

    turnSide(SIDE:number) поворачивается в сторону SIDE.

    P.S если вы не вызовите new ,и будете напрямую вызывать методы ,вам будет выдавать ошибку.


  6.  

    Я так понимаю, ключ может быть произвольной строкой, не только набором цифр?

    Может ли один ОС-компьютер держать одновременно несколько соединений, созданных при помощи разных ключей?

    А что будет если кто то не закроет за собой соединение?

     

    Конечно можно любой ключ,хоть строка на 1 мегабайт.Только в начале строки нужно поставить метку,что это OC ,или Android. 


  7. Нет можно! Не обязательно рассчитывать поиск пути между городами через каждый метр дороги в стране. Достаточно указать расстояние между городами. А в городе - между перекрестками.


    Разбить муравейник на перекрестки и комнаты, и между ними искать путь по графу с массой точек, что и делает А*.


    ну ... это не две сточки. :smile3:



  8. Волновые алгоритмы по определению медленнее А*. Запусти поиск 3д пути хотя бы для 10 тысяч клеток, застынет же всё.

    Плюс, не достаточно просто поиска пути. Нужно умение пользоваться оборудованием. Класть и доставать из печки руду, делать инструменты, сортировать вещи в сундуки.

     

     

     

    Это, конечно, нереально. Нам достаточно обработки ошибок высокого уровня. Как, например, если в винде зависло окно Explorer'а, винда перезагружает процесс, а не весь компьютер.

    поиск пути всегда можно разбить на части, плюс, я думаю ты тоже не сразу вокруг земли обойдешь,и то с gps. пока кто-то напишет домик для байта, ты уже старый станешь.

    если бы черепаха видела, тогда можно было бы сделать алгоритм проще.

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

×
×
  • Создать...