С Новым годом! Форум программистов, компьютерный форум, киберфорум
Теория автоматов
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 42
1

Тьюрмиты

19.03.2011, 15:39. Показов 3648. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как запрограммировать поведение тьюрмита ?
0
294 / 206 / 2
Регистрация: 20.02.2011
Сообщений: 551
19.03.2011, 23:17 2
Moжно готовые программы посмотреть, вроде этой:
Тьюрмит -- это существо, вылезшее из разбитой машины Тьюринга после того, как Грег Тэрк уронил ее со своего стола. С тех пор тьюрмиты распространились довольно широко, однако по-прежнему остаются мало исследованными созданиями.

Тьюрмит живет на бесконечной плоскости, разделенной на квадратные клетки. Чем он питается, неизвестно. Живой тьюрмит постоянно движется по плоскости, он не может оставаться в покое.
1
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 42
20.03.2011, 17:52  [ТС] 3
Дело в том, что мне нужно запрограммировать тьюрмита, чтобы он двигался по прямоугольной спирали как "змейка", причем длина этой "змейки" равна 20 и остаётся постоянной в течение работы программы,
а толщина "змейки" 3 точки.
Кстати, картинка(след тьюрмита на плоскости) должна получится динамической как анимация.
Если у кого-нибудь есть идеи по реализации этой программы, то пишите в этой теме.
0
9 / 9 / 1
Регистрация: 02.07.2010
Сообщений: 28
20.03.2011, 22:27 4
Если я хоть что-нибудь понял, то для такой змейки надо на одно поле выпускать одновременно двух зверей: одного в начале уже нарисованной змейки, другого в конец. Иначе с постоянной длиной змейки косяк выйдет.

Траектория - где-то по схеме:
2e 0 3e
3e 1 1s
1s 0 2s
2s -1 4e
4e 0 5e
5e -1 1n
1n 0 2n
2n 1 2e

т.е первое - код состояния, в котором мы сейчас, второе - поворот, третье - в которое состояние переходим. Цвета везде одинаковые - ищем цвет фона, красим в цвет следа.

P.S. Топикстартер, вы где раскопали такую ересь, если не секрет?

P.P.S. Хотя, если еще подумать, то и одной зверюгой можно каждый раз бегать из начала змейки в конец. Время-то особо не лимитируется... Но там еще надо подумать, что будет проще. Скорее всего, именно бегать по закрашенной траектории туда-сюда, и по цвету перекрашивать концы и разворачиваться. Потому что если по прямой перемещаться, то слишком много состояний получится, потому что "зациклить" нечего...
1
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
20.03.2011, 22:31 5
Цитата Сообщение от Christopher M. Посмотреть сообщение
P.S. Топикстартер, вы где раскопали такую ересь, если не секрет?
ну судя по всему это както связано с машиной тьюринга
0
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 42
21.03.2011, 00:02  [ТС] 6
Только мне нужно для программы THURMIT.EXE, которую выкладываю. Также в архиве примеры программ.
И ещё вот теория и синтаксис файла-мозга для тьюрмита:
Структура файла - мозга.
Файл состоит из строк - элементов мозга и строк комментариев.
Пустые строки допускаются ТОЛЬКО в конце файла.

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

Строка - элемент мозга состоит из пяти полей.
<состояние> <цвет> <новый цвет> <поворот> <новое состояние>

Между полями (и перед первым полем) допускается произвольное количество пробелов и/или символов табуляции. Хотя бы один пробел/табуляция обязан присутствовать между полями для их разделения. После последнего поля могут следовать комментарии отделенные от поля хотя бы одним пробелом и/или символом табуляции.

Правила записи полей:
состояние - любой символ кроме ";" и "#"
цвет - число от 0 до 15, 0-черный, ... 15-белый
поворот - число -1, 0 или 1 :
-1 - против часовой стрелки;
1 - по часовой стрелке;
0 - не поворачивать;

В "начале времен" вся плоскость черная. Новорожденный тьюрмит всегда находится в состоянии 'A' (заглавная латинская A) и "смотрит" на восток.

Тьюрмит останавливается в следующих случаях:
- достигнуто указанное максимальное количество шагов;
- вылез за экран (ну, где ему взять бесконечную плоскость?);
- в его "мозге" не нашлось подходящей пары состояние-цвет;
Вложения
Тип файла: rar Thurmit.rar (35.5 Кб, 107 просмотров)
0
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 42
21.03.2011, 00:15  [ТС] 7
И вот еще пример программы:
A 0 2 0 C
A 2 0 0 B
B 2 2 1 A
B 15 2 1 A
C 2 0 -1 A
C 0 15 -1 A
C 15 2 -1 A

Начинается программа всегда с A 0 и поля <цвет> <новый цвет> обязательны.
P.S. В моём задании цвет змейки любой, кроме черного.
0
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 42
24.03.2011, 13:36  [ТС] 8
Цитата Сообщение от Christopher M. Посмотреть сообщение
P.P.S. Хотя, если еще подумать, то и одной зверюгой можно каждый раз бегать из начала змейки в конец. Время-то особо не лимитируется... Но там еще надо подумать, что будет проще. Скорее всего, именно бегать по закрашенной траектории туда-сюда, и по цвету перекрашивать концы и разворачиваться. Потому что если по прямой перемещаться, то слишком много состояний получится, потому что "зациклить" нечего...
Christopher M., Вы бы не могли подробнее эту идею расписать?!
Мне и нужно только с одним тьюрмитом.
Кстати, вот программа, которая прямоугольную спираль строит:
A 0 2 1 B
B 0 2 1 C
A 2 0 -1 B
B 2 2 1 C
C 0 0 1 A
C 2 0 1 D
D 0 2 1 A
D 2 0 1 C

P.S. Обратите внимание на мой аватар, это и есть прямоугольная спираль
0
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 42
28.03.2011, 03:00  [ТС] 9
как построить отрезок тьюрмитом, длина которого(отрезка) равна 20, а толщина равна 3 клетки ?
0
Заблокирован
28.03.2011, 20:51 10
интересно. ничего не могу предложить с технической точки зрения, но с теоретической вот что: цифры - номера цветов к примеру. 1,2,1,n,2,1,n,n+1,2,1,n,n+1,n+2,2,1,n,n+1,n+2,n+3,2 (ровно 20 элементов)
код:
если m (значение между 1 и 2) = n+3 тогда 2 и спать. состояние покоя присутствует помоему во всех автоматах.
0
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 42
17.04.2011, 23:05  [ТС] 11
В общем, построил я отрезок, длина кот-го 20, а ширина 3.
Далее, перекращивая концы этого отрезка, запустил его змейкой по замкнутой траектории:
можно сказать, что змейка двигается по сторонам квадрата(описывает стороны квадрата).
Не могу понять как по прямоугольной спирали перемещать этой отрезок, т.е. каждый раз расстояние, которое проходит змейка по прямой, должно быть больше, чем предыдущее.
Таким образом, эта змейка должна двигаться от центра до края экрана.
P.S. прямоугольная спираль на моём аватаре.
0
vitlipetsk
22.04.2011, 19:53 12
Цитата Сообщение от Michael777 Посмотреть сообщение
В общем, построил я отрезок, длина кот-го 20, а ширина 3.
Далее, перекращивая концы этого отрезка, запустил его змейкой по замкнутой траектории.
Как???
У меня чёй-то не получается...
даже отрезок длины... и ширины... никак
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 42
23.04.2011, 16:08  [ТС] 13
Цитата Сообщение от vitlipetsk Посмотреть сообщение
Как???
У меня чёй-то не получается...
даже отрезок длины... и ширины... никак
У меня по заданию отрезок должен иметь длину 20, а ширину 3, т.е. всего нужно 60 клеток закрасить.
А 60 можно рассмотреть как 6*10 или 6 по 10.
Я и взял 6 различных состояний и выполнил их 10 раз:
закрасил 6 клеток, вернулся в начало отрезка, развернул тьюрмита, дошёл до конца отрезка и опять закрасил 6 клеток и т.д.
0
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 42
24.04.2011, 16:52  [ТС] 14
Всем, кто участвовал, спасибо за содействие.
----------------------------------------ТЕМА ЗАКРЫТА--------------------------
0
24.04.2011, 16:52
Ответ Создать тему
Новые блоги и статьи
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru