Воскресенье, 27 Ноября 2022, 01:50

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Программирование » Низкоуровневое программирование » Пошевелим мозгами? (Задачки на BrainFuck"e)
Пошевелим мозгами?
karuyДата: Суббота, 23 Апреля 2011, 19:11 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Недавно наткнулся на BrainFuck и честно говоря очень понравилось, решать головоломки на етом замечательном языке одно удовольствие =), после разработки програмы для умножения двух чисел начинаеш понимать какой асм удобный и настолько высокоуровневые языки простые, так вот к чему я веду: давайте по'fuck'аем мозг решая до етого дня простые задачи =) Первый таск: Умножыть два числа напечатаных з клавы. Присойденяйтесь у кого маса свободного времени. Если даная тема будет интересная придумаем ещо заданий, нет - выложу тут код и тему в корзину.
VinoVozДата: Суббота, 23 Апреля 2011, 19:40 | Сообщение # 2
участник
Сейчас нет на сайте
karuy, почитал о этом "ЯП" был сильно удивлен, он сильно отличается от того "к чему привыкли".
noTformaTДата: Суббота, 23 Апреля 2011, 19:43 | Сообщение # 3
Ukrainian independent game developer
Сейчас нет на сайте
Quote (karuy)
Умножыть два числа напечатаных з клавы.

нельзя, брайнфак работает с машиной на подобие машины тюринга, тоесть со стеком, ввод с клавиатуры там не возможен smile
Он есть, но это абстрактно smile


@noTformaT
PesetsДата: Суббота, 23 Апреля 2011, 20:23 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Да, веселая вещь) Вообще люблю экзотерические языки)
Вот накатанная на коленке прога по умножению 2х чисел:
,>,[-<[-<+<+>>]<<[->>+<<]>>>]<<.
Учитывая то, что в Брейнфаке нет стандарта относительно ввода, я считал, что "," будет заносить в ячейку памяти введенное с клавиатуры число.
А вот если считать, что ввод идет побайтово, то это даже на ассемблере не совсем тривиальная задача - распарсить последовательность байт как число, а уж на Брейнфаке... happy



karuyДата: Суббота, 23 Апреля 2011, 20:26 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
Но все-таки есть smile Жду от вас умножения юние брейнфакери smile
Master_ChiefДата: Суббота, 23 Апреля 2011, 20:55 | Сообщение # 6
Shoot Space creator
Сейчас нет на сайте
Pesets, правильнее говорить всё-таки "эзотерические" а не "экзотерические" smile

PesetsДата: Суббота, 23 Апреля 2011, 21:18 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
А, сори, очепятался happy


karuyДата: Воскресенье, 24 Апреля 2011, 11:22 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
Pesets, запустил твой код, все работает, если правда на коленке делал респект, вот мой вариант умножения:
,>,<[ >[->+>+<<] >>[-<+<+>>] <<<-]>>[-->+<].
Правда у меня больше нет тасков, если у кого есть какие - нибудь идеи: пожалуста, но конешно в пределах разумного. smile
PesetsДата: Воскресенье, 24 Апреля 2011, 17:49 | Сообщение # 9
постоянный участник
Сейчас нет на сайте
Как насчет такого таска - напечатать таблицу символов ASII (0-255 символы).
Считать, что команда "." выводит символ с кодом, равным числу в текущей ячейки.
Мой вариант:

ЗЫ. А проги для умножения чисел у нас с тобой почти одинаковые)





Сообщение отредактировал Pesets - Воскресенье, 24 Апреля 2011, 17:50
karuyДата: Воскресенье, 24 Апреля 2011, 18:20 | Сообщение # 10
заслуженный участник
Сейчас нет на сайте
=) Если я правильно понял таск - мой вариант: +[+.]
На выходе:
PesetsДата: Понедельник, 25 Апреля 2011, 08:25 | Сообщение # 11
постоянный участник
Сейчас нет на сайте
Ну, тут нюанс в том, что число в ячейке может быть больше 255. На реализации брейнфака где, например, 4-байтовые ячейки твоя прога выведет кучу мусора)


noTformaTДата: Понедельник, 25 Апреля 2011, 10:01 | Сообщение # 12
Ukrainian independent game developer
Сейчас нет на сайте
Quote (Pesets)
Ну, тут нюанс в том, что число в ячейке может быть больше 255. На реализации брейнфака где, например, 4-байтовые ячейки твоя прога выведет кучу мусора)

ну в 4 байтовых ячейках не хранят 1 байтовые символы smile


@noTformaT
PesetsДата: Понедельник, 25 Апреля 2011, 13:16 | Сообщение # 13
постоянный участник
Сейчас нет на сайте
А кто сказал, что символы однобайтовые? Например, у меня где-то валяется реализация брейнфака, которая при проге +[+.] выведет всю юникодовую таблицу.

Добавлено (25.04.2011, 13:16)
---------------------------------------------
В брейнфаке ничего в байтах не меряется. В ячейке может храниться бесконечно большое число, причем даже не документировано, может ли оно быть отрицательным.



DDTAAДата: Понедельник, 25 Апреля 2011, 13:58 | Сообщение # 14
заслуженный участник
Сейчас нет на сайте
Мужики, давайте ещё задачек:-) Затягивает, жуть!

Да, я новичок, поэтому вопросы у меня иногда глупые......
Да, у меня действительно такой ник.......
...А я не знаю, почему по профилю мне 28 лет и я Адольф:-)...
TimKruzДата: Понедельник, 25 Апреля 2011, 14:09 | Сообщение # 15
старожил
Сейчас нет на сайте
Ну, например, такая задача: записать в две ячейки два числа, перемножить их и вычесть из них третье число, затем вывести результат. Кто решит? smile
А я про этот язык давно узнал. Только какой-то он не интересный, хотя является реальным языком программирования. Делать в нём особенно-то нечего...


karuyДата: Понедельник, 25 Апреля 2011, 18:23 | Сообщение # 16
заслуженный участник
Сейчас нет на сайте
Мой вариант =): ,>,>>>,<<<<[ >[->+>+<<] >>[-<+<+>>] <<<-]>>[-->+<]>>[-<->].
froexДата: Суббота, 07 Мая 2011, 02:06 | Сообщение # 17
Руководитель Froexilize team
Сейчас нет на сайте
>>+++++++>>++>>++++>>+++++++>>+>>++++>>+>>+++>>+>>+++++>>+>>++>>+>>++++++>>++>>++++>>+++++++>>+>>+++++>>++>>+>>+>>++++>>+++++++>>+>>+++++>>+ >>+>>+>>++++>>+++++++>>+>>+++++>>++++++++++++++>>+>>+>>++++>>+++++++>>+>>+++++>>++>>+>>+>>++++>>+++++++>>+>>+++++>>+++++++++++++++++++++++++ ++++>>+>>+>>++++>>+++++++>>+>>+++++>>++>>+>>+>>+++++>>+>>++++++>>+>>++>>+>>++++++>>+>>++>>+>>++++++>>+>>++>>+>>++++++>>+>>++>>+>>++++++>>+>> ++>>+>>++++++>>+>>++>>+>>++++++>>++>>++++>>+++++++>>+>>+++++>>+++++++>>+>>+++++>>+>>+>>+>>++++>>+>>++>>+>>++++++>>+>>+++++>>+++++++>>+>>++++ >>+>>+>>++>>+++++>>+>>+++>>+>>++++>>+>>++>>+>>++++++>>+>>+++++>>+++++++++++++++++++>>++>>++>>+++>>++>>+>>++>>++++>>+++++++>>++>>+++++>>+++++ +++++>>+>>++>>++++>>+>>++>>+>>++++++>>++++++>>+>>+>>+++++>>+>>++++++>>++>>+++++>>+++++++>>++>>++++>>+>>++++++[<<]>>[>++++++[-<<++++++++++>>]<<++..------------------->[-<.>>+<]>[-<+>]>]<<[-[-[-[-[-[-[>++>]<+++++++++++++++++++++++++++++>]<++>]<++++++++++++++>]<+>]<++>]<<[->.<]<<]

Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.


Сообщение отредактировал froex - Суббота, 07 Мая 2011, 02:08
Black_LordДата: Суббота, 07 Мая 2011, 09:02 | Сообщение # 18
был не раз
Сейчас нет на сайте
Да, BrainFuck весьма любопытный язык.

K0DAK47Дата: Суббота, 07 Мая 2011, 11:18 | Сообщение # 19
Cat Development
Сейчас нет на сайте
Да, только функционал его оставляет желать лучшего, так, побаловаться.
Мне больше нравятся диалекты Брейнфака: Moo и Ook.
MoO moO MoO mOo MOO OOM MMM moO moO
MMM mOo mOo moO MMM mOo MMM moO moO
MOO MOo mOo MoO moO moo mOo mOo moo


.xm
Шаблон для разработчиков
netkillerДата: Суббота, 07 Мая 2011, 12:08 | Сообщение # 20
Developing Vader
Сейчас нет на сайте
'MoO moO MoO mOo
MOO OOM MMM moO
moO
MMM mOo mOo moO
MMM mOo MMM moO
moO
MOO MOo mOo MoO
moO moo mOo mOo moo'
Этo COW.



Мой туториал по UDK:
Создание простого платформера
Форум игроделов » Программирование » Низкоуровневое программирование » Пошевелим мозгами? (Задачки на BrainFuck"e)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2022 Рейтинг