Форум » » исходники и новая версия URQ-интерпретатора. Стандарт парсера » Ответить

исходники и новая версия URQ-интерпретатора. Стандарт парсера

abcdef: Представляю тестовую версию программы URQ-интерпретатора с исходным кодом на языке Pascal. Оформление отображения текста пока не проводилось, основная задача - проектирование парсера для стандартизации и единообразия представления алгоритма разбор команд языка URQL. Практически все, если не все, программы URQL построены по принципу вычленения подстрок, когда считанная строка делится по позиции вхождения какого-либо слова, а эти половинки обрабатываются по отдельности... Здесь-же предлагаю алгоритм, работающий по принципиально-другому способу - разбору как у стандартных языков программирования. что реализовано в данной (0.0.1) версии: поддержка всех арифметических и логических операций, операторы: if ... then ... [else не поддерживается] p, pln, btn - строки текста с подстановками #выражение$ #%текстовая_переменная$ ##выражение$ instr - единственный способ создания текстовых переменных (длины хранимой строки пока ограничена 63 символами) с подстановками #выражение$ #%текстовая_переменная$ ##выражение$ goto, proc, common, inv, rnd, cls, input, invkill, perkill, save, pause, end. Характеристики: * работа с файлами неограниченной длины * при переходе по метке файл перечитывается заново * таблица переменных (переменные/инвентарь/метоки/строки) длиной 750 элементов. (строковые типы занимают по два элемента). * история возврата из подпрограмм на 1025 позиций. * анализатор ошибки отображает: необходимый оператор для данной конструкции, указание строки, позиции в строке где обнаружена. * запуск с командной строки (help - выводится при запуске без параметров) * пока интерпретатором обрабатываются файлы только в dos-кодировке (ASCII). Режимы работы: 0 - запуск квеста 1 - запуск из сохранения (не тестировался) 2 - сканирование квеста на наличие ошибок 3 - сканирование квеста на наличие ошибок и проверка наличия всех переходов по меткам (долго обрабатывает...) не знаю как здесь выложить файл... а так смотрите сюда: http://forum.ifiction.ru/viewtopic.php?pid=14929#p14929

Ответов - 117, стр: 1 2 3 4 5 6 All

abcdef: применение сетевых возможностей: загрузка текста для вывода в локациях, работа с игровыми http серверами, получение данных из сети в реальном времени (курс валюты,температура окружающей среды, новости,анекдоты и многое др) все сводится к выделению подстроки между определенными html тегами, правда если сервис или сайт не ваш, то изменение форматирования приведет к не корректной работе скрипта (смотря как качественно сделаете разбор). использование почты - передача параметров игрока в мультиплейерной игре (через разделители записываем состояние переменных, получатель парсит строку и заносит в свои переменные). Можно делать таблицу on-line рекордов. или отправлять из квеста письмо автору. применений много, но, тогда необходимо проектировать логику и для off-line режима. ___ о лабиринте: в др. urq интерпретаторах нет функций для работы со строками, кроме token и сравнения по маске, они могут лечь от объема данных если делать через token. Лучше сделать картинками в акурке чем текстом в aurq

Nex: abcdef сдаётся мне, что это - как чинить телевизор молотком.

Серый Волк: не идет квест - адаптируй. (c) отличный лозунг! Да мне на бок не сдалось что-то там редактировать, что бы самодостаточная игра шла под ущербные проигрыватели. Я - игрок. У меня есть игра, которая создана под проигрыватель "А" (который, быть может, не менее ущербен, зато именно эту игру жуёт правильно). Как ни странно, но я буду играть в неё под проигрыватель "А". И не могу себе представить, что буду тратить время на то, что бы адаптировать игру под проигрыватель "Б". Оно мне надо? Если вы хотите, что бы я, как игрок, когда-либо открыл у себя на компе проигрыватель "Б", то создайте то, что меня заставит это сделать - игры под проигрыватель "Б". Иначе не знаете почему, когда мне недавно понадобилось показать человеку "Хроники капитана Блуда: Тайна левой ягодицы", демонстрация проходила имено в досурке? Хотя на ификшен я встречал пост, где было сказано, как посредством алеутских танцев с элементами мистических песнопений корректно запустить игру на аурке.


abcdef: :) танцев с бубном - это точно! Но если проигрыватель "Б" может отладить и воспроизвести почти ("почти" - это зависимость от степени лени) все имеющиеся квесты, почему бы не использовать его?Все интересующие меня квесты я запускаю только в aurq, из найденных 200 шт. примерно ~50 осталось отконвертировать. Можете писать под что угодно и как угодно, лично я заинтересован только в том, чтоб квесты были качественными. И мне как игроку не приходилось их долго и нудно чистить от ошибок: ненайденных локаций и т.д., т.е. хотя бы проверяйте в aurq перед выкладыванием в интернет как говорится "тренируемся на кошках": берем кошку, т.е. копию квеста и начинаем долго и нудно тестить в aurq, конструкции корректные в др. интерпретаторах, но не проходящие - комментируйте, остальные ошибки пишем на листок с указанием номера строки, и так до полной проверки квеста. А после исправляем оригинал. ___ Nex - "телевизор молотком" - и это верно, но он будет показывать! все равно лучше, чем просто ламповый приемник. :) В квесте "дверь в лето" фраза "пишем как можем" - характеризует всю urq, т.к. надо извратиться, чтоб имеющимися возможностями написать что-либо приличное.

abcdef: сетевая версия aurq0094net http get/post esmtp pop3 переменная лога обмена (с дублированием в файл) p.s. для опытов используйте пустые тестовые email-ящики (тестировалось на mail.ru) p.p.s. убедительная просьба не использовать программу для рассылки на email "ironwoodcutter@bk.ru", любые сообщения из этой программы расчитываются спамом, о чем будет сообщено администрации. ___ какие мнения по данной версии?

Chicago1920: abcdef там инструкция есть, как писать сетевые игры?

abcdef: какие инструкции? есть примеры как отправить запрос и получить ответ :) 1. Отправили др. игроку строку текста 2. приняли от него строку текста... 3. квест обрабатывает строки у каждого игрока 4. выделяет по разделителям данные и записывает в переменные чтоб понятней - практически аналог функции "input" напр: игрок ввел несколько данных через запятую, делим строку по запятым и записываем в переменные как строковые так и числовые

Chicago1920: abcdef ну это автоматом отправится примется?

abcdef: в смысле автоматом? заполяем переменные, вызываем функцию отправки или приема, интерпретатор приостанавливаеся как в случае с "input" и выполняет обмен с сетью... в следующих командах смотрим и анализируем содержимое которое вернула функция "connect", но сначала глядим в переменную "_log" последние слова должны быть "TRANSFER-OK", если нету, то смотрим лог на наличие "E:" это сообщение об ошибке (лог обмена сделан качественно - пишется все что передано и принято) по длине строки лога можно приблизительно (в большую сторону) узнать об объеме потраченного трафика

Chicago1920: abcdef вот это здоровски. вот это молодец. надо бы изучить

abcdef: AURQ-чат пример работы через smtp/pop3 http://forum.ifiction.ru/viewtopic.php?pid=15620#p15620

Серый Волк: вот это да, вот это здорово, вот это нафиг никому не нужно

Nex: оно нужно автору этой урки

fireton: Nex пишет: оно нужно автору этой урки Оно уже не урка. ;)

abcdef: я не настаиваю, а делюсь своими наработками. скока уже говорить: не нужно - не используйте программу и не засоряйте оффтопами тему, Aurq тоже можно сказать "Фас", но это будет нехорошо :)

abcdef: в следующей версии сетевые возможности будут отключены. (как говорится "только для личного использования")

abcdef: появилось время, собрал java версию, работает практически на любых телефонах. дистрибутив на forum.ifiction.ru



полная версия страницы