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

qwertyMAN

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

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

  • Посещение

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

    47

Все публикации пользователя qwertyMAN

  1. Лучше бы я не открывал код if mess ~= nil then
  2. Есть ещё и аддоны к пчёлам
  3. В принципе и без OpenOS может, если другие не официальные OS написаны так, что поддерживают функцию подключения библиотек. (а любая нормальная OS в ОС должна это делать обязательно)
  4. Ну судя по ошибки на саму функцию require, которая не была найдена. Тебе скорее всего придётся создавать эту функцию самому, так же, как она и в OpenOS создана. Но зачем нам велосипеды? Проще OpenOS использовать, чем изобретать велосипеды.
  5. А что ты хотел? Библиотеки которые ты подключаешь в своей программе находятся в OpenOS. По этому без её установки, они не будут подключаться и работать.
  6. И плз, личку не забивай такими сообщениями
  7. Но есть ограничения по распараллеливанию. После определённого количества компов, они начнут выжирать все соки из сервера и будут только замедлять его работу. Или работу самих прог.
  8. qwertyMAN

    GPS

    Во первых, в робота это не вставить, то есть придётся каждый раз на место работы робота ставить эту конструкцию с ограниченным радиусом действия. Которая к тому же на связь через плату будет тратить не мало энергии (с стандартными конфигами) Во вторых, зачем нам абсолютные координаты, если робот может сам записывать в себя относительные координаты от точки установки например. Да и намного меньше это будет тратить энергии робота. К тому же робот сам сможет определять стороны света, так как эти данные будут храниться в нём и редактироваться по ходу выполнения программы. (как-то 2 года назад видел чужую прогу с такой системой ориентирования) А то что ты предложил, давно уже все знают что можно реализовать. Но какая у этого будет эффективность, вот в чём вопрос.
  9. Например, в доме у Васи стоит комп который отображает MineOS, а у Гендальфа тоже в доме комп и грузит он всеми любимую Redcontrol А у Фродо есть комп который грузит OpenOS. Что ж это выходит? Все эти компы являются частью мультипоточной системы??? Хотя они и не соединены между собой никак. По вашей логике это так? Ведь при аналогичном примере: Компы просто работают и просто сообщаются между собой. Где тут вы многопоточность увидели?
  10. Ну так в том то и дело. Видеокарты используют много простых вычислений. А простые вычисления и близко не стояли к какому нибудь серьёзному алгоритму на нахождение чего-то нужного. Вот и выходит. Что ускорение ускорением (тут я не спорю, что есть в нём смысл), но задачи более серьёзные они просто не могут решить. А люди ведь надеются на это. Недавно вон отписался игрок, который думал что генетика в Forestry сложная и её можно решить многопоточностью. Если бы она была реально сложная, многопоточность бы не помогла. Теперь насчёт задачи, мне очень любопытно как вы её собираетесь решить. Скажем так, для примера у нас есть 5 чисел. (не больше, не меньше) Каждое число является одним из 10 символов специального алфавита. Нам нужно пройтись брутом по всем вариантам перемножения этих чисел. Но мы знаем, что от перемены мест слагаемых значение суммы не меняется, а значит например комбинации 14444, 41444, 44144, 44414, 44441 будут считаться за одну. Тут возникает дилемма. Проходиться по лишним комбинациям и использовать многопоточность, чтобы распределить брут и быстрее решить задачу? Либо решать на одной машине, но не проходить по лишним комбинациям, используя более логичный цикл? Что выберете вы? И можно ли со вторым случаем как либо подрубить многопоточность? Я так понимаю что нет, но может вы откроете мне глаза на какой-то чудесный алгоритм многопоточности для этого случая? Так то выходит, что второй алгоритм работает тем эффективнее, чем больше у нас цифр нужно перемножить. То есть это заставит работать больше компов одновременно используя первый алгоритм, чтобы догнать один комп использующий второй алгоритм. На примере таблицы умножения. Обычный комп решит задачу за t времени, два компа с алгоритмом для многопоточности решат задачу за те же t времени. Но их нужно два. И если их поставить 4, то они решат за t/2 времени. Что как бы довольно быстрее чем один комп. Но по эффективности нагрузки, они проигрывают в 2 раза обычному компу.
  11. Вот только это работа моего компа в полную его мощь, а не какие-то грабли на скриптовом языке lua, который сам по себе не поддерживает многопоточность и работает медленнее других языков, так ещё и в моде на майнкрафт, который ещё больше урезает возможности lua. Но и это не всё! В добавок ситуацию осложняет то, что в этом самом майне даже без многопоточности никто толком не использует не роботов, не голограммы, не дронов. А как вы уже писали выше, ваша многопоточность создана лишь для развлечения и ничем в игре итак помочь не способна. По этому я "пытаюсь" доказать лишь то, что выше уже говорилось вашей командой раработчиков: (в контексте именно многопоточности в ОС, а не многопоточности в целом)
  12. Что? Генетика Forestry основана на законе Менделя и своём внутриигровом шансе мутации. Там то по сути ничего просчитывать и не нужно. Можно просто на монитор допустим выдать характеристики с шансами их появления и отображать риски мутации. Но это может один комп запросто делать. Тут абсолютно не нужна многопоточность. Это элементарная задача. Про Фракталы тебе уже ответил Лёха: Как видишь, многопоточность придумана для детских вычислений по типу 2x2. А всякие сложные задачи на нахождения простых чисел, Фракталов и прочего им не под силам. В этой теме тебе не дадут ответа, как решить сложную задачу. Можешь и не задать тут таких вопросов.
  13. Вот только дело в том, что задачи которые долго решаются, такого типа как я описал, судя по всему нельзя распараллелить. А это очень плохо. И я всё ровно не понял, какая область применений у вашего распараллеливания. Он то по сути в майне то и не нужен. Может быть он поможет турели быстрее реагировать на цель? Или свинокоптеру летать быстрее (хотя стоит похоронить уже этот свинокоптер с приходом новой версии майна) А может распараллеливание позволит роботу сканировать руды быстрее? Хм, вроде бы нет. Тогда зачем оно в майне? Я бы понял, если бы вы как ECS стремились оптимизировать и улучшить графику, которую имеет смысл улучшать для создания видеоигр и лучшей работы отображения обычных программ. Но вы хотите сделать такую систему, которая будет давать преимущества не понятно для кого. Сейчас по сути события в библиотеки event отлично справляются с частью задачей, которые вы собираетесь сделать. А именно они позволяют обрабатывать псевдоодновременно несколько задач. А другая часть задач - решения более быстрее задач вообще никому не нужна.
  14. Что-то вы разбираете лёгкие примеры, а как насчёт более сложных алгоритмов, как их разбивать собираетесь? Например как разбить алгоритм нахождения и заноса в таблицу простых чисел. Без многопоточности алгоритм используя таблицу с первыми простыми числами самозаполняет себя. А вот как разбить подобный алгоритм я вообще не в курсе, это реально? Или вот пример, нужно рассчитывать и заносить числа Фибоначчи в таблицу. Как этот алгоритм собираетесь разбивать? Для каких целей вообще собираетесь свою многопоточность использовать? Чтобы детские задачи решать???
  15. Что вы там собрались делать? Для каких целей вам многопоточность понадобилась? У меня кстати есть рабочая идея, как ускорить отображение изображений. Например нам нужно одновременно, чтобы несколько игроков бегали по экрану и чтобы экран не тормозил при отображении. Решение - подключить к одному монитору с клавой несколько компов, распределить задачи для каждого компа. Один отображает первого игрока, второй комп второго, третий третьего. В итоге скорость прорисовки заметно возрастёт. Так как каждый комп подключён к одному монитору и способен спокойно с ним работать, позволяя монитору работать выше своих возможностей. Можно так мультиплеерные игры спокойно делать. Как в старых играх делить экран на 2 или 4 части и каждую часть использовать под экран для одного игрока.
  16. Ну тут я думаю очевидно, что самое обидное - обломится игра в стрелялки лазером. Но ладно, раз вам приятнее играть в лагах и ограничениях, то играйте. А я потом приду и буду записывать на камеру, как ваши роботы даже первого этапа не пройдут, залагав на старте.
  17. Ты просто не понял в чём моя стратегия. Я сначала жду пока игра перестанет обновляться (хотя многие играют во время хайпа) А потом в игре, где исправлены многие ошибки, становится приятнее играть. В случае с майном, я сначало сидел на 1.5.2 где было достаточно много модов. Далее выходиле всё новее и новее версии. Когда выходила 1.8 на 1.6.4 уже было достаточно модов и я перешёл на неё. А чуть позже когда вышла 1.9 я уже перешёл на 1.7.10. Да и многие сервера на нём работали и работают до сих пор. Просто потому, что под новые версии долго моды пилят. И лучше держаться на той версии, где больше модов и который при этом более свежий. Но судя по тому что сервера сейчас на 1.10.2 переходят, моды многие под него затачивают, значит видимо скоро все засядут на той версии, как и на 1.7.10 сейчас. Но надолго ли? Не будет ли там слишком много багов? Уже известно, что там дроны дюпают поводки и на хрюшах не покататься, что лазеры роботы не могут использовать. И кому такой сервер будет нужен? Ещё пару штук таких багов связанных с ОС откроют и уже окончательно можно ставить крест на этой версии. В этот раз мне не из-за модов не хочется переходить на новую версию, а из-за багов которые в последнее время начали всплывать. Это важный фактор для игры с ОС. P.S. Да и посмотрите на обновления которые идут выше версии 1.7.10. В отличии от редстоун обновления или обновления лошадей, тут ничего интересного не добавляют. Только какие-то неинтересные обновления в энд мире с розовыми ракушками. Какие-то некому не нужные подводные данжи. Ну играл я на 1.8. Ну были там эти данжи, были блоки камня новых трёх видов из чизеля. Но это не аргумент для обновления. Эти обновления высосаны из пальца, в отличии от обновлений которые раньше выходили и которые добавляли действительно полезные вещи. А после того как mojang продались микрософту, так вообще от этих обновлений я ничего и не жду хорошего.
  18. 1.7.10 уже хорошо изведан, многие баги все знают, с её механикой все знакомы, есть моды которые ТОЛЬКО на 1.7.10 идут, например популярный русский аддон для галактиккрафта. 20-30% популярных модов с моей сборки идут только на 1.7.10, либо заканчивают обновлять и пишут только под 1.7.10 свои моды. (например тот самый аддон под галактиккрафт не хотят под новые версии выпускать, обновляют только на 1.7.10) Выходит - это самая популярная и проработанная версия. Устанавливать новые версии - равносильно брать кота в мешке. Какие только там баги только не всплывут. Лазеры - это ещё только начало, первый взгляд на новую версию майна. Но ладно, раз решили так делать, то это ваше дело. Просто я больше волнуюсь за новый сервер, как бы из-за этого перехода не пришлось отказаться от части крутых модов. Каждые производители модов по разному относятся к поддержки разных версий, кто-то зацикливается на одной, кто-то не поддерживает старые версии и не обновляет их, а в OpenComputers разрабы молодцы, все актуальные версии обновляют. Побольше бы таких разрабов. Особо жаль когда видишь крутой мод, а он на версии выше 1.7.10. Тут с версиями настоящая дилемма. Не очень понятно, что лучше использовать.
  19. 1. Создаешь файл с названием библиотеки с ".lua" на конце и закидываешь в папку /lib в OpenOS 2. Пишешь в этом файле сначала local <название библиотеки> = {} Далее расписываешь функции через <название библиотеки>.<название функции> 3. В конце кода пишешь return <название библиотеки> 4. Сохраняешь 5. Подключешь это библиотеку в других прогах через local <название переменной> = require("<название библиотеки>")
  20. Тут другой вопрос. Какой толк менять постоянное место жительства в пещере, на кочевой образ жизни и кумыс???
  21. Что-то я не понял про переход на новую версию. На этом же сервере собирается Алекс делать свой новый сервер? А как же тот факт, что под 1.7.10 большинство модов работают? Некоторые даже застряли на нём. При том, что как вы написали на новой версии всплыли баги. Тогда в чём смысл перехода на новую версию майна?
  22. Да ну, этот keyboard api я посмотрел на вики. Там функций мало, да и мусор один. Переходи на event api. Там и фильтры для событий есть и даже можно фоново запускать через event.listen() несколько отслеживающих функций на отслеживания разных событий. Например в моей проге 3-4 таких стоят. Одновременно отслеживают подключение/отключение устройств от сети и изменение пришедших сигналов красного камня на всех компонентах для работы с красным камнем. В общем, очень полезная и удобная вещь.
  23. В программировании разрешены вложенные циклы. Ты мог спокойно, не копировать для каждой ноты отдельные настройки, а задать их через цикл. Кроме того, у тебя не типичные отступы. Отступы делаются когда пишешь что-то внутри do ... end или then ... end и в прочих подобных случаях, кроме того, отступы могут складываться. Например идёт цикл, всё что внутри имеет один отступ. Внутри есть этого цикла есть условие if. Всё что внутри будет иметь уже 2 отступа, так как содержимое находится и в условии и в цикле. Для вложенных циклов/условий правило такое же. Хоть эти отступы и не будут на работу кода влиять, но это важный показатель читаемости кода. А значит с читаемым кодом и ты сможешь проще читать и находить ошибки, и другие программисты смогут это делать. Следующий момент, это условие if x == true then ... end Тут суть такова, если после if будет любая переменная кроме nil (пустая или не существующая переменная) или false, то цикл выполняться будет. А значит, это выражение можно сократить до if x then .. end Ещё в твоём случае, тебе проще вместо keyboard.isKeyDown(0x3B) == true использовать обработку событий через local key = {event.pull("key_down")} Эта функция будет ждать события "key_down" (нажатие клавиши) и когда ты нажмёшь клавишу, в переменную key сохранится пронумерованная таблица, из которой можно получить адрес клавиатуры откуда пришёл сигнал, номер нажатой клавиши, ник игрока нажавший клавишу и прочую нужную инфу. Такой способ не потребует выставлять задержки, так как функция будет просто ждать пока событие не произойдёт. Да и к тому же код станет намного лучше, как визуально, так и по нагрузке на сервер/комп
  24. Прочитав заголовок, я уже подумал, что ты осуществил мою давнюю идею построить полноценный проигрыватель и редактор музыки. Возможно даже в .abc формате, как я и хотел. Но посмотрев на скрин, всё стало ясно. А я чуть было не поставил тебе лайк за старания... Но это не вся итория... Далее я посмотрел в код и был шокирован: currentNote = 0 note1 = 0 note2 = 0 note3 = 0 note4 = 0 note5 = 0 note6 = 0 note7 = 0 note8 = 0 note9 = 0 note10 = 0 note1sec = 0 note2sec = 0 note3sec = 0 note4sec = 0 note5sec = 0 note6sec = 0 note7sec = 0 note8sec = 0 note9sec = 0 note10sec = 0 i = 0 i2 = 0 Получается ты не знаешь и не умеешь пользоваться массивами, которые бы намного упростили бы работу с переменными. И тут я подумал что всё! Меня больше тут нечем удивить, но тут я увидел ЭТО... os.sleep(0.1) if keyboard.isKeyDown(0x3B) == true then -- f1 os.sleep(0.1) print("Настройка ноты 1") -- Чтение частоты io.write("Частота: ") note1 = io.read("*number") print("Частота установлена на"..note1) -- Чтение длительностей io.write("Длительность (в секундах): ") note1sec = io.read("*number") print("Длительность установлена на"..note1sec) redrawMenu() end os.sleep(0.1) if keyboard.isKeyDown(0x3C) == true then -- f2 os.sleep(0.1) print("Настройка ноты 2") -- Чтение частоты io.write("Частота: ") note2 = io.read("*number") print("Частота установлена на"..note2) -- Чтение длительностей io.write("Длительность (в секундах): ") note2sec = io.read("*number") print("Длительность установлена на"..note2sec) redrawMenu() end if keyboard.isKeyDown(0x3D) == true then -- f3 os.sleep(0.1) print("Настройка ноты 3") -- Чтение частоты io.write("Частота: ") note3 = io.read("*number") print("Частота установлена на"..note3) -- Чтение длительностей io.write("Длительность (в секундах): ") note3sec = io.read("*number") print("Длительность установлена на"..note3sec) redrawMenu() end Отлично написанный код! В общем. Вместо того, чтобы использовать удобненькие православные циклы, ты использовал копипастинг! Это гениально! В общем, пора подводить итоги. Твоя программа занимает примерно 250 строк кода, даёт функционала мало, я бы сказал крайне мало, практически ничего. Нормально выглядящий код занимал бы намного меньше строк кода. А теперь сравни свой код с этим http://computercraft.ru/topic/1570-oc-redcontrol-udobnoe-upravlenie-redstounom/ Там на 2 строки кода больше, чем в твоём коде, но функционала намного больше. Программа содержит и графический интерфейс и часть кода для отлавливания кликов по экрану и команды реагирование на события. И даже поддержку подключения и отключения компонентов во время работы. Напомню, это 280 строк кода. Всего-то на 2 больше чем у тебя. Чуешь разницу? А всё дело в том, что у меня использованы циклы и массивы, а у тебя нет. И это ужасно. Ты обязан их изучить, иначе будешь и дальше так же перерабатывать, писать больше кода с меньшей эффективностью.
×
×
  • Создать...