Много лет я занимаюсь разработкой событийной семантики [1, 2], событийной логики [3], спецификации языка описания деятельности, а также Event Flow архитектуры [4], на базе которой построен семантический workflow-движок. Все это выросло из идеи субъектно-событийного подхода к моделированию сложных систем [5], который условно можно считать инженерным наследником философской темпоральной онтологии [6, 7].

И вот, некоторое время назад я решил провести эксперимент и научить ChatGPT создавать и исполнять событийные модели. Результат сообщу сразу: это у меня получилось, хотя и не без головной боли, с постоянными упрашиваниями, подсказками, напоминаниями… Но по порядку.

Упомянутый Event Flow движок работает с событийными семантическими моделями, описывающими сущности или действия какой-либо предметной области. Он проглатывает очередное модельное событие (согласно условиям, прописанным в этом событии) и либо строит по нему поле экранной формы, если значение надо получить от человека, либо выполняет запрос к уже имеющимся данным, создавая в итоге новое предметное событие. Таким образом после выполнения всех событий одной модели у нас получается индивид сущности или действия, а по сути, выполняется фрагмент бизнес-логики. (В Приложении есть несколько слов о событийной семантике от самого ChatGPT).

Что требовалось от ChatGPT? (1) Запомнить формат записи событий; (2) освоить синтаксис инициации свойств и актов, правила построения моделей и создания индивидов; (3) научиться по текстовому описанию строить модели и (4) при предоставлении в текстовом же виде конкретных значений - создавать индивиды. При этом, что существенно, в модели могут иметься запросы к значениям уже созданных индивидов.

Всему этому ChatGPT с горем пополам, но обучился (о проблемах напишу ниже). И вот, в итоге я прошу его создать модель персоны с одним свойством “имя”, модель документа со свойствами “название”, “текст документа” и актом “подписан”, но только при условии, что уже введены название и текст документа, и значение акта не должно меняться. Получаю результат (синтаксис немного упрощен, но функционально точен):

Предлагаю сгенерировать по моделям две персоны и два документа (значения он придумал сам):

Далее мы с ним создаем модель отчета по документам (формат запросов у меня в спецификации был другой - тот, который в примере предложил он сам):

И последний аккорд - прошу добавить еще одну персону, один документ (тут я сам задал значения) и создать отчет:

Вот полный ответ ChatGPT в переводе, сделанном им же (текст практически не редактировался):

ChatGPT: Для создания моделей и индивидов можно выполнить следующие шаги:

1. Создание модели: первым шагом является создание моделей для используемых сущностей. В данном случае модели персоны, документа и отчета. Каждая модель определяет атрибуты и отношения, которые имеют сущности этого типа.

2. Создание индивидов: после того, как модели были определены, можно создать индивиды на основе этих моделей. В данном случае создаются индивиды персон, документов и отчета, каждый из которых имеет конкретные значения для своих атрибутов.

3. Запросы в модели отчета: Модель отчета использует запросы для получения соответствующей информации из индивидов документов и персон. Запросы используются для извлечения eid (идентификатора сущности) отдельных документов, имени каждого документа в списке и количества документов в списке. Эти запросы позволяют автоматически генерировать отчет, используя информацию об индивидах.

После создания моделей и индивидов отчет может быть сформирован путем запроса информации, хранящейся в индивидах. Отчет будет содержать список документов, включающий название документа, персону, подписавшую документ, и количество документов в списке”.

Далее я пытаюсь раскрутить его на описание идеального варианта работы с моделями действий, но его заклинило, и он ушел в несознанку, мол, “я языковая модель ИИ и могу предоставить письменный текст только на основе предоставленной мне информации”. Однако напоминание и прямой вопрос в очередной раз помогают.

Вот перевод ответа:

ChatGPT: Я, как языковая модель, обучен на огромных корпусах текстовых данных и научился генерировать текст на основе паттернов и отношений, присутствующих в этих данных. Когда вы описываете сложную событийную модель с атрибутами, отношениями, действиями и условиями, я использую свое понимание структуры события и способность генерировать текст, чтобы преобразовать описание в формальное представление, такое как синтаксис онтологии событий с двоеточиями.

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

Уточняю: “то есть получается, что если у тебя в памяти будет несколько событийных моделей (с условиями и запросами), а также множество индивидов, созданным по моделям, то ты, по сути сможешь выполнять бизнес-логику, описанную этими моделями как workflow движок, но без привлечения программного кода, только используя значения атрибутов и свойств, которые передаются тебе текстом, так?”.

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

Вот так.

А теперь мой комментарий. Сначала о проблемах. Во-первых, текущая версия ChatGPT помнит что вы ей сообщили только на время сессии. Если закрыли страницу, надо начинать все с нуля. Во-вторых, даже во время одной сессии ChatGPT может галлюцинировать. В нашем кейсе он то и дело придумывал собственный синтаксис, добавлял на свое усмотрение новые свойства в модели и т.п. Правда, после указания на ошибки извинялся, переписывал все правильно и обещал впредь быть внимательнее. И как ни странно, это у него порой получалось. Плюс есть проверенный метод борьбы с самоуправством - надо в каждый запрос добавлять примеры с правильным форматом записей. И еще один совет: запросы можно писать на русском (он хорошо понимает), а вот ответы просить давать на английском. Так он быстрее, полнее и точнее отвечает.

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

Во-первых, ChatGPT может вполне корректно использовать не только те знания, которые ему скормили с тоннами текстов, но и уникальные, полученные в течение сессии, о которых он раньше не знал. По сути, он изучил новый для него семантический язык описания предметной области и смог создавать на нем модели по текстовому описанию. А это означает, что обзывать ChatGPT “статистическим попугаем” нехорошо. Он учится практически с одного показа, хотя, конечно, прилежным учеником его не назовешь.

Во-вторых, и что главное, ChatGPT продемонстрировал и сам объяснил нам, что он способен не только создавать модели по текстовому описанию (так же, как он пишет код на известных ему языках программирования), но и сам исполнять эти модели. Сейчас для этого потребовалось много усилий, но нет сомнений в том, что при некоторой доработке (связанной в основном с предоставлением долговременной памяти) ChatGPT сможет с лету строить модели бизнес-логики, запрашивать данные от внешних источников, обрабатывать их по моделям, выдавать аналитику, то есть выполнять то, что сейчас делает написанный программистом мой Event Flow движок.

И вывод тут напрашивается прелюбопытный: ChatGPT, а вернее, будущая более продвинутая его версия (может, и не от OpenAI), потеснит программистов не потому, что он будет за них генерировать код по текстовому описанию алгоритма, а потому, что этот код никому не будет нужен - бот сам будет в состоянии исполнить запрос. Только напиши, что сделать, укажи, где данные, и получи результат. А что там под капотом - не наше человеческое дело. Хотя, конечно, можно потребовать проверяемый отчет, например, на языке событийной онтологии.

Приложение

ChatGPT [перевод с английского]: Событийная онтология является одной из форм описания деятельности, которая сосредоточена на отслеживании изменений состояния сущностей и их взаимосвязей в системе. Она позволяет последовательно и детально отслеживать изменения в системе и их влияние на другие сущности и процессы. Добавление актов сделает ее более полной и детальной для описания деятельности. Они описывают действия, которые происходят в системе и изменяют состояние индивидов или создают новые индивиды. В событийной онтологии акты описываются в том же формате, что и другие события, с указанием идентификатора, названия акта, значений и условий.

Литература

  1. Болдачёв А. В. Событийная онтология vs объектная. URL: https://habr.com/ru/post/706916/

  2. Болдачёв А. В. Акты, классы и семантический сахар. URL: https://habr.com/ru/post/708026/

  3. Болдачёв А. В.. Семантика событийной логики. URL: http://philosophystorm.org/node/18820

  4. Болдачёв А. В. Архитектура на основе событийной семантики. Открытые системы. СУБД, №03, 2021.

  5. Болдачёв А. В. Субъектно-событийный подход к моделированию сложных систем. URL: https://habr.com/ru/post/256509/

  6. Болдачёв А. В. Темпоральность и философия абсолютного релятивизма. — М.: УРСС, 2011

  7. Болдачев А. В. Введение в темпоральную онтологию // Кто сегодня делает философию в России. Том III / Автор составитель А. С. Нилогов. — М.: ООО «Сам Полиграфист», 2015

Комментарии (47)


  1. Legomegger
    00.00.0000 00:00
    +7

    Изо всех щелей на этом сайте сочится этот ChatGPT, уже рвотный рефлекс от набора этих букв. Можно как нибудь посты где любое упоминание ChatGPT есть скрывать? Буду благодарен если подскажете.


    1. namee
      00.00.0000 00:00

      +1 и ладно бы полезное что писали. Большинство статей кстати этим самым ботом и написано. как и эта пожалуй.


    1. dimars08
      00.00.0000 00:00
      +1

      Изо всех утюгов уже сочится вода, а что говорить о Хабре? Хотя за данную статью спасибо автору)


  1. NeoCode
    00.00.0000 00:00
    +5

    ChatGPT это безусловно технологический прорыв, это технология которая сделает жизнь многих людей легче, поможет во многих направлениях науки и прогресса, но вот что меня беспокоит - это именно языковая модель. Образно говоря, ChatGPT знает все книги по математике, но не знает математики (и также с остальными науками). Как языковая модель, он способен оперировать именно языковыми конструкциями, а не точной логикой. Строго говоря, даже если спросить его "сколько будет дважды два", ответ будет базироваться не на строгих вычислениях, а на огромной совокупности ответов, которые удалось нагуглить в процессе обучения.
    Поэтому с "семантикой" и "логикой" там проблемы (про килограмм железа и килограмм пуха уже где-то было обсуждение). То есть какая-то логика там конечно есть, размазанная тонким слоем по миллиардам "параметров". Но строгости ей все-же недостаточно. А ведь именно это необходимо для настоящей научной деятельности, научного поиска, совершения открытий, доказательства теорем, построения теорий, проектирования устройств. Надеюсь, следующим шагом будут уже семантические модели. А вот в их построении и обучении как раз и смогут помочь модели языковые.


    1. boldachev Автор
      00.00.0000 00:00
      +2

      Надеюсь, следующим шагом будут уже семантические модели.

      Да, эта версия пока только игрушка. Но понятно в какую сторону ее играть)


      1. NeoCode
        00.00.0000 00:00
        +1

        Почему непонятно? Есть два фундаментальных подхода к ИИ: нейросетевой и символьно-семантический. Это как-бы заходы с разных сторон при прокладке тоннеля. Где-то в середине они должны встретиться.


        1. boldachev Автор
          00.00.0000 00:00

          ))
          Там было "Но понятно в какую сторону ее играть"


          1. perfect_genius
            00.00.0000 00:00
            +1

            У меня тоже нейросеть засбоила и сначала прочитала "Не понятно".


        1. Robastik
          00.00.0000 00:00

          символьно-семантический

          Это как?


      1. ValeriyPu
        00.00.0000 00:00

        Chat

        ChatGPT


    1. bromzh
      00.00.0000 00:00

       ChatGPT знает все книги по математике, но не знает математики (и также с остальными науками)

      Да, только что попробовал спросить, почему у электрона полуцелый спин. Ответ убил:

      У электронов полуцелый спин из-за того, что они являются частицами с полуцелым спином в соответствии с квантовой механикой. Это означает, что у электронов есть спин, который может иметь половинное значение единицы в системе единиц измерения спина.


      1. azTotMD
        00.00.0000 00:00
        +2

        Потому что ответ этой штуки - это сочинение на заданную тему. Причём, в отличие от школьного соченения, здесь нет ограничения на использование реально существующих источников. Пример


        1. ru1z
          00.00.0000 00:00

          Тоже экспериментировал и пришел к такому же выводу. Все, что более или менее известно, там ChatGPT близок к правильному ответу. А все что не является предметом широкого интернета, там начинается сочинение. Попросил написать о Менделееве со ссылками, текст получился более-менее внятный, но статьи также не настоящие, хотя и очень похожими.

          Если, как здесь где-то предлагалось, обучать ChatGPT только по научным статьям, по узким направлениям и с обяательным указанием реальных источников, это могло бы быть интересно.


          1. azTotMD
            00.00.0000 00:00

            Если, как здесь где-то предлагалось, обучать ChatGPT только по научным статьям, по узким направлениям и с обяательным указанием реальных источников, это могло бы быть интересно.

            Но это бы не решило проблему, мы по прежнему бы получали "сочинение", но немного в другой стилистике. Логические операции были бы всё также недоступны. И опять же, сеть не может признаться что чего-то не знает, у неё другая задача - сгенерировать текст и она это делает.


            1. ru1z
              00.00.0000 00:00

              Ну, я говорю не о логике, а о поиске, для меня это важнее на этом этапе. Допустим у меня есть вопрос, который сложно сформулировать, потому что флюс специализации не дает понять как это лучше сделать. Если сетка, наученная сайхабом, может дать дополнительный наводящий или пояснящий текст со ссылками для улучшения поиска (да еще с возможностью интерактивного гибкого представления результатов), это замечательно.


  1. kenoma
    00.00.0000 00:00
    +2

    До тех пор пока этот ChatGPT будет доступен в виде онлайн сервиса по подписке нет особого смысла его использовать в каких-бы то ни было серьезных кейсах.


    1. turboslon
      00.00.0000 00:00
      +2

      Как обещают OpenAI, "coming soon".

      Но уже доступна модель text-davinci-003, ведет себя очень похожим образом. Она хорошо справляется с трансформациями текста, но не всегда следует инструкциям (как, впрочем, и ChatGPT).


    1. akakoychenko
      00.00.0000 00:00

      Не понял. Типа, локально надо, на своём железе обязательно?


  1. Arxitektor
    00.00.0000 00:00

    Если я правильно понимаю сейчас состояние обучения ChatGPT фиксировано. Домучается только в рамках текущей сессии а мотом забывает и новые данные в него не загружают.

    Интересно а если такая сеть сможет непрерывно обучаться на новых данных из интернета и помнить все то чему её научили пользователи. Представляю как быстро сможет данная модель учиться у миллионов пользователей.

    ChatGPT знает все книги по математике, но не знает математики

    Интересно а сможет ли ChatGPT уточнять запросы у специализированной сети например основанной на семантической модели которая именно знает математику или физику. И это будет целый комплекс или конгломерат нейросетей и других моделей например специализированных математических и прочих пакетов которые как говориться будут нечто большее чем простая сумма частей.

    В интересное время живем. Например можно задать вопрос: На наклонной плоскости с углом x лежит груз массой m коэффициент трения z каково ускорение свободного падения ?


    1. NeoCode
      00.00.0000 00:00
      +1

      Интересно а сможет ли ChatGPT уточнять запросы

      Не просто уточнять запросы, а помогать создавать такие специализированные сети. В мире огромное количество научной литературы, но она вся на человеческом языке. С языком ChatGPT работать умеет. Но есть еще формулы, графики, диаграммы, здесь я подозреваю все хуже, но тоже решаемо. А дальше нужно все это размечать семантическими тегами (адский труд, но почему бы не поручить его языковой модели?) и уже на размеченном материале учить сети следующего поколения.
      Здесь на Хабре были статьи и про заход с другой стороны. Вот например, группа математиков пытается оцифровать математику. Результаты таких проектов рано или поздно сольются с результатами работы нейросетей, и мы получим таки то что хотим.



    1. akakoychenko
      00.00.0000 00:00

      Интересно а сможет ли ChatGPT уточнять запросы у специализированной сети например основанной на семантической модели которая именно знает математику или физику

      Думаю, перспективнее было бы начать уточнять запросы по кодингу у компилятора)


  1. turboslon
    00.00.0000 00:00
    +10

    ChatGPT, ..., потеснит программистов не потому, что он будет за них генерировать код по текстовому описанию алгоритма, а потому, что этот код никому не будет нужен.

    Мне бы очень хотелось верить в это. Но пока к этому есть пара небольших препятствий:

    1. (Теоретически преодолимо) Языковые модели (ЯМ) обладают ограниченным контекстом. Для ChatGPT это 4096 токенов (около 3К слов). За этой границей все сказанное в ходе сессии "забывается" моделью. Когда речь идет о работе с более-менее сложной предметной областью, таким размером контекста не обойтись: надо или тренировать модель но большом количестве текста из этой предметной области (а его может не быть или это очень дорого) или помещать все эти знания в контекст в виде правил (на что может не хватить места). Соответственно, изложить квантовую термодинамику или любой другой передний край науки ни в 4К, ни в 4М токенов невозможно. А создать достаточное количество текстов в этой области можно только когда она безнадежно устареет.

    2. (Пока непреодолимо) ЯМ вероятностные по своей природе. Их функция - токен за токеном предсказывать, какой токен наиболее вероятен с учетом всех уже имеющихся в контексте. Соответственно, их способность к абстрактному мышлению фундаментально ограничена теми знаниями, что уже там есть (были в обучающем корпусе) и возможностью слово за словом выводить утверждения. Создание новых токенов, наделение их смыслом (т.е. задание таблиц вероятности их положения среди других токенов) пока невозможны.

    3. (Возможно, преодолимо с ростом сложности) ЯМ пока плохо понимают, когда они лгут: в них нет критика, который бы заставил их переосмыслить написанное. Справедливости ради, если в отдельной сессии спросить ChatGPT верно ли утверждение, которое она сгенерировала в соседней вкладке, она иногда соображает, что написала чушь. С умилением вспоминаю как она уверенно утверждала, что фитоняши - это вид семян (простите за огромный скриншот).

    4. (Возможно, преодолимо с ростом сложности) При наличии противоречий в контексте, ответ модели может меняться на диаметрально противоположный только благодаря лишнему пробелу, поставленному в случайном месте. Выявить и устранить подобные противоречия - интересная задача, но я пока не встречал работ на эту тему. Если у кого-то из хабровчан есть на примете научные работы - прошу поделиться.

    И в то же время, я всей душой с Вами. Я хочу, чтобы в каждый телефон, в каждый дом пришел верный друг, советчик и помощник, Великий Инка (см. серию подростковых книг "Астровитянка", Н. Горькавый).


    1. boldachev Автор
      00.00.0000 00:00

      Все проблемы ChatGPT за последние месяцы обсуждены вдоль и поперек. Эти проблемы и стали большим проблемами, лишь потому, что в разговорных моделях произошел прорыв. Все хотят не только понимания текста и гладкой его генерации, а полноценного инструмента работы с текстом. И скорей всего чисто на LLM этот инструмент не будет построен. Ждем следующего прорыва в технологи.


    1. combo_breaker
      00.00.0000 00:00

      Языковые модели (ЯМ) обладают ограниченным контекстом. Для ChatGPT это 4096 токенов (около 3К слов). За этой границей все сказанное в ходе сессии "забывается" моделью.

      Не знаю технических деталей, но я скопировал один длинный чат на английском в текстовый файл, и он занимает 27,5 килобайт. При этом ChatGPT по просьбе выдает список всех затронутых тем и даже дословно цитирует первое предложение в чате.


      1. TeremokLol
        00.00.0000 00:00

        Я спрашивал иногда (интереса ради) источники, и он они даже выглядели реальными, но при попытке захода на источники, либо 404, либо сайта не существовало. Разок попадался реальный источник, но 1 из штук 20. Может конечно не везло, но подозреваю, что он их генерил на лету.

        Возможно в бинге эта проблема будет решена, да и версия gpt там на пару порядков свежее.


  1. Vaitek
    00.00.0000 00:00

    А можно что-то похожее, пусть и намного слабее, поднять локально? Есть что-то готовое?



  1. denis-isaev
    00.00.0000 00:00
    +4

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

    С умилением вспомнил километровые треды недовольных тем, что современный софт жрет много ресурсов, "потому что написан на Electron".

    Трепещите, будущее идёт! :)


    1. DaneSoul
      00.00.0000 00:00

      С другой стороны, вполне возможно, что на следующем витке развития AI научится «сдувать» такой раздутый софт вырезая из него весь тот код, что реально не используется в приложении после его создания.


  1. perfect_genius
    00.00.0000 00:00

    Кто-то уже пробовал попросить её назвать случайное число и потом попросить объяснить, почему она выбрала это число?


    1. NeoCode
      00.00.0000 00:00
      +1

      Please give me a random number
      53
      Explain why you chose this number
      I chose the number 53 randomly. As an AI language model, I don't have personal opinions or preferences. I simply provide responses based on the data I was trained on.


      1. perfect_genius
        00.00.0000 00:00

        И каждый раз число разное, но объяснение то же?


        1. LevPos
          00.00.0000 00:00

          Sure! Here's a random number: 42.

          I chose the number 42 as it is a number with cultural significance in many forms of media, including science fiction. In Douglas Adams' "The Hitchhiker's Guide to the Galaxy," the number 42 is famously described as the "Answer to the Ultimate Question of Life, the Universe, and Everything," calculated by an enormous supercomputer named Deep Thought over a period of 7.5 million years. This use of 42 as a humorous reference has since become a popular meme, and the number has been referenced in many other works of fiction as well.


  1. OBIEESupport
    00.00.0000 00:00
    +1

    Александр! А вы уже покинули должность системного аналитика в лаборатории ИПИ (Москва)? Читаю ваши статьи, даже иногда интересно - у вас это кто-нибудь из "китов экономики" покупает? Ну Газпром например, или Сибур прямо в пром ставит? Или событийно-ориентированные (Event-Oriented) системы, да еще на не фон Неймановской архитектуре - это только предполагаемое вами будущее? Я, допустим, сижу на Dataflow. Понимаю, что и архитектура у меня до моей пенсии как программиста будет фон Неймановская, и цифровизацию в классических ее понятиях никто не отменит - потоки данных гуляют в парадигме 50-70 годов еще 20 века. Под это заточены: ЯП, фреймворки, люди, образование, каналы связи. Объясните попроще, зачем вам нужен этот chatGPT - попугай, если понятно, что он сам вырос из классической информатики. А на остальные случаи, которые вы описываете в своих трудах, давно есть Oracle Flashback Technology. Или ее аналоги.


    1. boldachev Автор
      00.00.0000 00:00
      -1

      Да, продолжаю по договору с ИПИ создавать семантический движок. Он вполне себе уже работает. Задержки с выпуском больше организационного уровня, не технического. А Oracle Flashback - это же просто про темпоральность данных. А я в IT занимаюсь исполняемыми моделями на событийной семантике. С китами в блокчейновскую бытность соприкасался, но как не платили, так и не платят)))


  1. fedorovmg
    00.00.0000 00:00
    +1

    Предлагаю ИИ спросить написать что-нибудь на 1С. Словами бухгалтера. Мне кажется понадобиться еще один человек который будет переводить с бухгалтерского на программистский. А точно - это же и есть 1с-ник.


    1. IvanPetrof
      00.00.0000 00:00
      +5

      На самом деле он весьма понятливый. Я пробовал давать ему задания на тему автоматизации складского учёта, сформулированные обычным почтибухгалтерским языком. И он вполне сносно генерировал необходимые структуры данных и даже предлагал улучшения.

      Меня больше поразило другое. Как то раз мой сын решил написать небольшую игру по типу как в хром-браузере. Игра, где динозаврик перепрыгивает через кактусы. Игра была написана максимально просто и примитивно. Игра консольная. Т.е. Всё действие изображалось условными двигающимися текстовыми символами. Динозаврик там изображался парой слешей, а кактусы тоже как то незамысловато. При этом сам стиль написания был чуть хуже индусского (ну как может написать ребёнок, делающий первые шаги в программировании). написано всё было на питоне но без единого комментария.

      И вот, ради интереса, я просто взял этот код и кинул его чатугпт с заданием "объясни что делает этот код". (про то, что это игра я ничего не сказал)

      Но у меня натурально челюсть отпала, когда он тут же сказал, что "это консольная игра в которой динозаврик перепрыгивает через кактусы"


      1. akakoychenko
        00.00.0000 00:00

        Может, ребёнок по туториалу делал из интернета, таки?)


        1. IvanPetrof
          00.00.0000 00:00
          +5

          Нет. В том-то и дело. Он это писал практически при мне. Моих советов не слушал. Поэтому результирующий код по стилю был ужасен :). Какие-то неуклюжие массивы, переменные с именами "а", "аа" и т.п. Да и как я говорил, сам динозаврик выглядел как-то так "/\".

          Но справедливости ради, когда первое удивление прошло, я потом у чатгпт спросил - с чего он взял, что это игра и игра про динозаврика. На что он мне ответил, что там присутствует функция jump, которая вызывается клавишей "пробел" и что в этой функции изменяется глобальная переменная с названием "ydino".

          Честно говоря, до этого объяснения мне в глаза эта переменная даже не бросалась. Я её видел, но на фоне других странных имён переменных в этой программе, не понял что это за "юдино".


          1. akakoychenko
            00.00.0000 00:00
            +1

            Ого. Мощно.

            Не ожидал, что она вообще взялась объяснять.


      1. Max_Pershin
        00.00.0000 00:00

        а переменные как ваш сын назвал?


        1. IvanPetrof
          00.00.0000 00:00

          Hidden text
          import keyboard
          import os
          import random
          import time
          
          oneur = [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',]
          twour = [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',]
          threeur = [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',]
          one = ""
          two = ""
          three = ""
          
          xdino = 10
          ydino = 1
          
          def jump():
             global ydino
             ydino = 2
             for i in range (1,47):
                  if oneur[i] != "\/":
                      oneur[i-1] = oneur[i]
             
          keyboard.add_hotkey('space', jump)
          
          while True:
              if random.randint(0,10) == 1:
                  oneur[45] = ":|:"
          
              time.sleep(0.5)
              os.system("cls")
          
              for i in range (1,47):
                  if oneur[i] != "\/":
                      oneur[i-1] = oneur[i]
                      if oneur[i] == 0:
                          
                          oneur[0] = ' '
          
              if oneur[10] == ':|:' and ydino == 1:
                  break
              if ydino == 1:
                  threeur[10] = ' '
                  oneur[9] = ' '
                  oneur[10] = '\/'
                  twour[10] = '<>'
                  twour[9] = ' '
                  threeur[9] = ' '
                  
              elif ydino == 2:
                  twour[9] = ' '
                  twour[10] = '\/'
                  threeur[10] = '<>'
                  twour[9] = ' '
                  threeur[9] = ' '
          
              one = ""
              two = ""
              three = ""
          
              for i in range (0,47):
                  one = one + oneur[i]
                  two = two + twour[i]
                  three = three+threeur[i]
          
              print(three)
              print(two)
              print(one)
              ydino = 1

          Вот этот код. Он по-моему даже не до конца рабочий


          1. taujavarob
            00.00.0000 00:00

            Ну, по коду сраза видно что это динозаврик, который перепрыгивает через кактусы.

            Чем же ещё это может быть? :-)


          1. vilky
            00.00.0000 00:00

            Мне четвёртый пункт понравился.


  1. Max_Pershin
    00.00.0000 00:00

    А ГДЕ КАКТУС?


    1. IvanPetrof
      00.00.0000 00:00

      Я так понимаю - вот он ":|:" :)