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


Фотография

[1.4.6] RedPower 2 [Prerelease 6]


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2372

#601 VikR

VikR

    Добытчик камня

  • Пользователи
  • Сообщений: 271

Написал 21.07.2012 - 18:35

HitriyLis, я слоу :D Не догадался вначале указать этаж lol
Ну а так действительно код уменьшится, позже исправлю.

И сразу вопрос, пока не забыл: как разорвать внутренний цикл, чтобы код после него продолжил выполняться? EXIT не подходит, т.к. полностью выходит из слова. С LEAVE пробовал, но после него программа почему-то зависает, подозреваю, что я что-то не учел в нем.
Самый дружный и уютный сервер ТТЮХ! Ждёт Вас!

#602 HitriyLis

HitriyLis

    Добытчик алмазов

  • Пользователи
  • Сообщений: 598
  • Откуда: Север!

Написал 21.07.2012 - 19:01

Я так понимаю, цикл DO ... LOOP?
Тогда цитирую твой перевод:

Слово: UNLOOP
Синтаксис: ( -- )
Описание: Очищает один DO/LOOP. При использовании EXIT требуется отменить каждый DO/LOOP с помощью UNLOOP.

UPD1/UPD2: Чёт я сейчас тоже слоу...
Щас подумаю.
Прошу называть меня Хитрый Лис или просто, Лис.

У тех, кто пишет понятно, есть читатели; у тех, кто пишет туманно, есть комментаторы.
--Альберт Камю

#603 VikR

VikR

    Добытчик камня

  • Пользователи
  • Сообщений: 271

Написал 21.07.2012 - 19:06

HitriyLis, цикл BEGIN ... BEGIN ... AGAIN ... AGAIN
Самый дружный и уютный сервер ТТЮХ! Ждёт Вас!

#604 HitriyLis

HitriyLis

    Добытчик алмазов

  • Пользователи
  • Сообщений: 598
  • Откуда: Север!

Написал 21.07.2012 - 19:26

BEGIN ... BEGIN ... AGAIN ... AGAIN

А!...
Тогда, заглядывая в описание слова LEAVE, делаем так:
BEGIN  [paste][/paste][paste][/paste][paste][/paste]  BEGIN    [paste][/paste][paste][/paste][paste][/paste]    <условие_выхода>    WHILE    [paste][/paste][paste][/paste][paste][/paste]  REPEAT  [paste][/paste][paste][/paste][paste][/paste]AGAIN

Прошу называть меня Хитрый Лис или просто, Лис.

У тех, кто пишет понятно, есть читатели; у тех, кто пишет туманно, есть комментаторы.
--Альберт Камю

#605 VikR

VikR

    Добытчик камня

  • Пользователи
  • Сообщений: 271

Написал 21.07.2012 - 19:32

Завтра попробую твой вариант, т.к. сегодня это ни к чему хорошему не приведет :D
Самый дружный и уютный сервер ТТЮХ! Ждёт Вас!

#606 Gromwild

Gromwild

    Странник

  • Пользователи
  • Сообщений: 65

Написал 23.07.2012 - 12:15

Господа, есть ли у кого успешный опыт работы в SMP 3 Билдкрафта? Сильно ли глючный?

#607 VikR

VikR

    Добытчик камня

  • Пользователи
  • Сообщений: 271

Написал 23.07.2012 - 13:27

Gromwild, ты кажись темой ошибся. Тебе

#608 Gromwild

Gromwild

    Странник

  • Пользователи
  • Сообщений: 65

Написал 23.07.2012 - 13:45

Gromwild, ты кажись темой ошибся. Тебе


#609 VikR

VikR

    Добытчик камня

  • Пользователи
  • Сообщений: 271

Написал 25.07.2012 - 19:36

HitriyLis, LEAVE даже не понадобился, когда выполнялось действие перед WHILE, то сразу выходило из внутреннего цикла, а до этого выполнялось действие перед WHILE.
Самый дружный и уютный сервер ТТЮХ! Ждёт Вас!

#610 HitriyLis

HitriyLis

    Добытчик алмазов

  • Пользователи
  • Сообщений: 598
  • Откуда: Север!

Написал 26.07.2012 - 01:18

К LEAVE я тебя "отправил" потому, что в его описание написано, что он только для цикла DO ... LOOP. Ну это ладно...

Меня осенило на прикол:
На компе, который "не жалко", введите HEX 7 304 +! и смотрите что будет. Потом объясню что происходит. Если вы запустили на компе, который всёже жалко, то не паникуйте, а 7 раз нажмите бакспейс =)


UPD: Закончил перевод. Объяснение прикола ищите внутри =)

Низкоуровневое управление устройствами.
Скрытый текст

Прошу называть меня Хитрый Лис или просто, Лис.

У тех, кто пишет понятно, есть читатели; у тех, кто пишет туманно, есть комментаторы.
--Альберт Камю

#611 VikR

VikR

    Добытчик камня

  • Пользователи
  • Сообщений: 271

Написал 26.07.2012 - 17:15

HitriyLis, добавил твой перевод. И я не понял прикола =\ Создает эффект псевдо-зависания, обычно в таких случаях просто делают рестарт компа.
Самый дружный и уютный сервер ТТЮХ! Ждёт Вас!

#612 Joiyt

Joiyt

    Странник

  • Пользователи
  • Сообщений: 83

Написал 26.07.2012 - 21:18

солярки будут вырабатывать энергию под водой (у меня подводная база из стекла)?вода это же вроде прозрачный блок
В Minecraft с Beta 1.5.

#613 HitriyLis

HitriyLis

    Добытчик алмазов

  • Пользователи
  • Сообщений: 598
  • Откуда: Север!

Написал 26.07.2012 - 22:44

И я не понял прикола =\

Прикол как раз в псевдо-зависании: коротко, стабильно и без компиляции.

Увидел на Paste Tool. Одна из функций позволяет перенести образ дискеты (с Бейсиком) через клиент. В одном из пунктов инструкции сказано: "ждите 12-14 часов"... Это.. Жесть... Не меньше.
Потом вспомнил, что _random

Сперва необходимо создать текстовый файл для наборщика. В тексте записан файл в виде цифр по 128 байт на строку (это необходимо, чтобы наборщик остановился и дал ФОРТу время записать сектор на дискету). Для удобства, я переделал программу для конвертации, которую сделал _random. Программа консольная. Первый параметр этой программы - имя файла образа, второй – имя текстового файла с результатом. Можно запустить другим способом: просто перетащите нужный файл на значок программы (т.е. "открыть с помощью...") и создастся файл out.txt с нужным содержимым.
Исходный текст программы:

Скрытый текст
В RP компе набрать такую программу (снова переделанная программа Рандома):
Скрытый текст
Далее нужно запустить наборщик Рандома (я пробовал с параметрами 1 и 50) и приготовить к набору подготовленный текст. Вставляем пустую дискету в дисковод, в компьютере пишем PROG, нажимаем F9 и ждём завершения. [attachment=0]Наборщик.zip[/attachment]


Прошу называть меня Хитрый Лис или просто, Лис.

У тех, кто пишет понятно, есть читатели; у тех, кто пишет туманно, есть комментаторы.
--Альберт Камю

#614 _random

_random

    Добытчик дерева

  • Пользователи
  • Сообщений: 151

Написал 26.07.2012 - 23:05

HitriyLis, по твоему переводу непонятно какое быстродействие у устройств. Например, если в терминале изменить байт 0х04, то непонятно, сколько нужно ждать, перед тем как обновиться байт 0х06.
Я проверил, оказывается он обновляется моментально. Но с какой скоростью обрабатываются остальные команды, я не проверил.
Сначала я подумал, что каждый тик сначала обсчитываются внешние устройства компьютеров, а потом компьютеры по очереди выполняют некоторое число команд.
Для того чтобы это проверить я написал пару программ:
Скрытый текст
Похоже, что из всего этого следует, что программы на компьютерах выполняются “не параллельно”, то есть каждый тик сначала один компьютер выполняет некоторое число команд, потом другой и т.д. Зато терминал обсчитывается после каждого обращения к его памяти.

Еще проверил принтер с более-менее большой картинкой:
Скрытый текст

HitriyLis, а перенос дискет ты в одиночной игре проверял? В SMP наверное дольше будет переноситься, но все равно очень круто получилось. Я перенос дискет только из-за принтера делал, и чуть было не передумал делать принтер из-за тормозов с переносом дискет.

#615 HitriyLis

HitriyLis

    Добытчик алмазов

  • Пользователи
  • Сообщений: 598
  • Откуда: Север!

Написал 26.07.2012 - 23:23

В вики про скорость реакции ничего не сказано. Но, предполагая механизм взаимодействия, подобное вполне может происходит моментально. Дело в том, что когда программа обращается к памяти, которая настроена как "окно", то генерируется пакет для RedBus. Пакет доходит до терминала, а терминал (точнее его блок) реагирует на пакет и изменяет свои данные как бы "вне очереди" тика...Ну, а про параллельное выполнение вполне логично...Про переносчик: можно его интегрировать в наборщик, но тут нужна твоя помощь. Я программирую хорошо, но вот в тонкостях Си не разбирался.UPD: И да, я проверял в сингле. Возможно, для SMP придётся набирать медленней, отсюда и потеря скорости... (но всё зависит от лагов). И у программы 1 минус: не видно прогресса.
Прошу называть меня Хитрый Лис или просто, Лис.

У тех, кто пишет понятно, есть читатели; у тех, кто пишет туманно, есть комментаторы.
--Альберт Камю

#616 VikR

VikR

    Добытчик камня

  • Пользователи
  • Сообщений: 271

Написал 27.07.2012 - 05:23

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

Под водой не будут вырабатывать энергию. _random, ты заинтересовал меня своим принтером из-за картинки, здорово получается. Можешь скинуть карту с принтером? Хочу получше с конструкцией ознакомиться. Кстати, ты на серве ттюха делал тетрис?
Самый дружный и уютный сервер ТТЮХ! Ждёт Вас!

#617 HitriyLis

HitriyLis

    Добытчик алмазов

  • Пользователи
  • Сообщений: 598
  • Откуда: Север!

Написал 27.07.2012 - 11:52

Простой но предсказуемый генератор псевдослучайных чисел (алгоритм VARIABLE seed \ "Память" генератора25173 CONSTANT mult \ Множитель13849 CONSTANT inc \ Инкремент\ 65536 CONSTANT cycle \ Размер цикла (не умещается в 2 байта) : RANDU (-->RND)seed @ mult UM*DROP inc +DUP seed ! ; Константы можно сразу подставить.
Уравнение: seed = (mult * seed + inc ) MOD cycle
Вместо деления DROP.
Перед началом желательно задать случайный seed.
Каждое обращение к RANDU выдаст "случайную" пару байт.
Прошу называть меня Хитрый Лис или просто, Лис.

У тех, кто пишет понятно, есть читатели; у тех, кто пишет туманно, есть комментаторы.
--Альберт Камю

#618 _random

_random

    Добытчик дерева

  • Пользователи
  • Сообщений: 151

Написал 27.07.2012 - 19:26

Наборщик это мой первый и единственный опыт использования WinAPI, причем большую часть текста программы я скопипастил из примеров майкрософта. Так что даже для того чтобы приделать отображение прогресса мне придется долго читать справку по WinAPI. По поводу интеграции: я добавил в наборщик возможность передачи имени файла с набираемым текстом через командную строку. Теперь можно автоматизировать с помощью батников. Например такой батник:
if %~x1 NEQ [paste][/paste]img exitimg2txt[paste][/paste]exe %1start kbd[paste][/paste]exe out[paste][/paste]txt
Если на этот батник перетащить образ диска, то образ конвертируется в out.txt, после чего запустится программа набора. img2txt.exe – конвертер, kbd.exe – наборщик. Карта с принтером: http://rghost.ru/39432566 Дискета с картинкой в дисководе, для проверки можно просто запустить слово print Картинку взял отсюда: http://piq.codeus.ne...cture/18589/cat В mtPaint слил все близкие цвета и удалил не использующиеся элементы палитры. Чтобы принтер не рисовал белый фон, я установил размер палитры в 17 элементов и залил то, что не нужно печатать, цветом 16-ого элемента палитры. Из-за того что двигатели иногда теряют заряд при перемещении их фреймами, я сделал очень большие задержки в программе. Программа целиком:
Скрытый текст
Да, это я перенес образ дискеты с тетрисом на ттюх.

Прикрепленные файлы

  • Прикрепленный файл  cat.zip   593байт   Количество загрузок: 303
  • Прикрепленный файл  kbd.zip   69.08К   Количество загрузок: 292


#619 DanteRU

DanteRU

    Странник

  • Пользователи
  • Сообщений: 66

Написал 27.07.2012 - 22:43

Хелп, что за ошибка, после установки Рп2?
Скрытый текст


#620 VikR

VikR

    Добытчик камня

  • Пользователи
  • Сообщений: 271

Написал 28.07.2012 - 08:58

_random, спасибо за карту.

Из-за того что двигатели иногда теряют заряд при перемещении их фреймами, я сделал очень большие задержки в программе.

Ты поставил много соляр, но я бы лучше поставил аккумуляторов побольше. Тогда будут заранее большие запасы блутричества. Да и при таких размерах можно без проблем соединить все двигатели во всех положения. У тебя остался образ того диска, а лучше сам код с неё? Умники расковыряли открытый комп =\, а штука ведь прикольная.

Хелп, что за ошибка, после установки Рп2?

Скрытый текст

Скорей всего конфликт модов. Какие моды еще стоят?
Самый дружный и уютный сервер ТТЮХ! Ждёт Вас!


Количество пользователей, читающих эту тему: 4

0 пользователей, 4 гостей, 0 анонимных