Чутка поправил:
from random import randint
MemoryStep = 0 # Выбранная ячейка памяти от 0 до 31
Memory = [] # Ячейки памяти
for i in range(32):
Memory.append(0)
CodeStep = 0 # Какой символ сейчас компилируется
Code = list(input("Вставьте код:\n\n"))
print("\n")
Stack = 0
try:
while True:
if Code[CodeStep] == ">":
MemoryStep += 1
if MemoryStep > 31:
MemoryStep = 0
elif Code[CodeStep] == "<":
MemoryStep -= 1
if MemoryStep < 0:
MemoryStep = 31
elif Code[CodeStep] == ".":
print(Memory[MemoryStep])
elif Code[CodeStep] == "+":
Memory[MemoryStep] += 1
if Memory[MemoryStep] > 255:
Memory[MemoryStep] = 0
elif Code[CodeStep] == "-":
Memory[MemoryStep] -= 1
if Memory[MemoryStep] < 0:
Memory[MemoryStep] = 255
elif Code[CodeStep] == ",":
Memory[MemoryStep] = int(input(f"[(,){CodeStep};(S){MemoryStep}]: "))
if Memory[MemoryStep] < 0:
Memory[MemoryStep] = 0
elif Memory[MemoryStep] > 255:
Memory[MemoryStep] = 255
elif Code[CodeStep] == "r":
Memory[MemoryStep] = randint(0, 255)
elif Code[CodeStep] == "$":
Stack = Memory[MemoryStep]
elif Code[CodeStep] == "#":
Memory[MemoryStep] = Stack
Stack = 0
CodeStep += 1
except IndexError:
pass
OutMemory = ""
for i in Memory:
OutMemory += str(f"{i} ")
print("\n\n[Memory]:", OutMemory)
print("[Stack]:", Stack)
Сейчас я вспомнил, что когда я создавал коды на brainfuck, то думал, что неплохо было бы его где-то использовать, так как если не усложнять язык раздуванием из мухи слона, то brainfuck - удобный способ оперировать данными в виде ячеек данных... Поэтому у меня появилась мысль: может сделать библиотеку из brainfun и тогда любой сможет его использовать в своих кодах на питоне с целью управления данными?
В любом случае будет две вариации кода: лёгкая, куда вставляешь код и он компилируется и потяжелее, в которой можно задать количество ячеек памяти и прочее...
В любом случае будет две вариации кода: лёгкая, куда вставляешь код и он компилируется и потяжелее, в которой можно задать количество ячеек памяти и прочее...
BrainFun (v1.1)(c).zip
4.2 KB
Создал свой BrainFun! Теперь там куча функций!
Вот пример кода, который выводит "Hello!":
Вот пример кода, который выводит "Hello!":
++++++++++$*$*$*--------:>+++++$*$*$*$*>+++++$*$*$<*+:>>+++++$*$*$*$*>+++++$*$*$<*++++++++::>>+++++$*$*$*$*>+++++$*$*$<*+++++++++++:>>+++++$*$*$*-------:c«
Если я превратил brainfuck в brainfun, то следующим мне надо учить whitespace?
Технологии Чайника
BrainFun (v1.8)(C).zip
На данный момент я хоть и старался исправить ошибку с неправильным счислением, но так и не смог, хоть она и отсутствует в Lite версии
Суть ошибки: Неправильное счисление где часть функций ведёт счисление с единицы, а часть от нуля
Вероятно мне придётся переписать всё счисление и связанное с ним и это момент, когда энтузиазм превратился в рутину и постепенно в выгорание
Я хочу дать пользователю ввести количество ячеек памяти в range() в BrainFun+ версии, однако это приводит к тому, что range() выдаёт столько же значений, какое и вписано, то есть ведёт счисление с единицы, в то время как остальные функции (но не все) ведут подсчёт с нуля, из-за чего получается путаница как с тем, что я должен пользователю показывать значение на единицу больше, так и с тем, что я должен задавать на единицу меньше в функции, при этом такой беды нет с 255, ведь оно сразу подразумевает 255, а не 256 (что по идее должно быть верно, ведь 256 является двойкой в n степени)
Конкретно проблема в [MemoryCount], которым я займусь позже.. Я уже занялся им в версии 1.7 относительно 1.6 всё исправив, как я подумал.. Но вставив иной код ничего не заработало правильно..
Суть ошибки: Неправильное счисление где часть функций ведёт счисление с единицы, а часть от нуля
Вероятно мне придётся переписать всё счисление и связанное с ним и это момент, когда энтузиазм превратился в рутину и постепенно в выгорание
Я хочу дать пользователю ввести количество ячеек памяти в range() в BrainFun+ версии, однако это приводит к тому, что range() выдаёт столько же значений, какое и вписано, то есть ведёт счисление с единицы, в то время как остальные функции (но не все) ведут подсчёт с нуля, из-за чего получается путаница как с тем, что я должен пользователю показывать значение на единицу больше, так и с тем, что я должен задавать на единицу меньше в функции, при этом такой беды нет с 255, ведь оно сразу подразумевает 255, а не 256 (что по идее должно быть верно, ведь 256 является двойкой в n степени)
Конкретно проблема в [MemoryCount], которым я займусь позже.. Я уже занялся им в версии 1.7 относительно 1.6 всё исправив, как я подумал.. Но вставив иной код ничего не заработало правильно..
Чтож, я думаю мне стоит отойти от кода на пару дней: я планирую отдохнуть и вернуться к написанию кода, чтобы с чистыми мыслями проверить все файлы и доработать код..
Наверно и правда стоит взять перерыв от написания, это было бы неплохо, однако я боюсь две вещи:
1. Это банально версии, ведь после отдыха должно ждать не просто обновление 1.8, а грандиозное обновление, где будет полная пересборка кода от более понятного компилирования до в принципе убирания лишних команд, изменения старых и прочее, следовательно стоит пропустить версии 1.8 и 1.9 сразу же начав с 2.0, если он действительно будет таким хорошим...
2. Я боюсь, что проект минует учесть иных моих проектов.. у меня уже имеется несколько проектов, которые я начинал писать и после этого с мыслями отдохнуть пару дней забрасывал их навсегда, так как уже не хотел возвращаться и боялся в принципе не вспомнить как мой код работает.. а если я ещё и планирую переписывать, то вспоминаем Майнер, который до сих пор мёртв.. поэтому мне страшно, что проект опять будет заморожен навечно
Наверно и правда стоит взять перерыв от написания, это было бы неплохо, однако я боюсь две вещи:
1. Это банально версии, ведь после отдыха должно ждать не просто обновление 1.8, а грандиозное обновление, где будет полная пересборка кода от более понятного компилирования до в принципе убирания лишних команд, изменения старых и прочее, следовательно стоит пропустить версии 1.8 и 1.9 сразу же начав с 2.0, если он действительно будет таким хорошим...
2. Я боюсь, что проект минует учесть иных моих проектов.. у меня уже имеется несколько проектов, которые я начинал писать и после этого с мыслями отдохнуть пару дней забрасывал их навсегда, так как уже не хотел возвращаться и боялся в принципе не вспомнить как мой код работает.. а если я ещё и планирую переписывать, то вспоминаем Майнер, который до сих пор мёртв.. поэтому мне страшно, что проект опять будет заморожен навечно
А ещё я придумал как реализовать цикл в цикле: команда_1 будет запоминать какая часть кода исполняется и добавлять её номер в конец нового списка, после чего команда_2 будет читать с конца список и удалять последнее число, а сам номер воспроизводить.. из-за этого можно будет создавать цикл внутри цикла и при этом миновать нужду в создании функций
Чувствительная камера к инфракрасному излучению лежит на моё Google cardboard ... Это значит, что скоро будет контент, продолжающий идеи гражданского ПНВ, ведь я уже провёл тесты и осталось только закрепить камеру... Однако, к сожалению, если я не успею всё сделать завтра (а я скорее всего не успею), то контента не будет около недели, так как я пропаду на эту неделю..
Технологии Чайника
Чувствительная камера к инфракрасному излучению лежит на моё Google cardboard ... Это значит, что скоро будет контент, продолжающий идеи гражданского ПНВ, ведь я уже провёл тесты и осталось только закрепить камеру... Однако, к сожалению, если я не успею всё…
Надо заменить камеру, эта была хорошим вариантом для экспериментов, но для даже дешёвого самодельного ПНВ не подходит
Причины:
- 42 градуса обзора, из-за чего чувство словно смотришь в подзорную трубу
- частота кадров вместо 30 fps падает до ~8 fps (пытался понять почему так, но когда fps зависит от того, смотрю я на тёмный или светлый участок, то я только больше запутался)
- Мои 850 нм инфракрасного излучения плохо видно из-за урезающего инфракрасный свет фильтра
Мне нужна новая камера, на это надо деньги 👉👈
Причины:
- 42 градуса обзора, из-за чего чувство словно смотришь в подзорную трубу
- частота кадров вместо 30 fps падает до ~8 fps (пытался понять почему так, но когда fps зависит от того, смотрю я на тёмный или светлый участок, то я только больше запутался)
- Мои 850 нм инфракрасного излучения плохо видно из-за урезающего инфракрасный свет фильтра
Мне нужна новая камера, на это надо деньги 👉👈
Поиграл в FTD и понял, что за время я уже полностью разучился в него играть, от вспоминания на какие кнопки нажимать, до невозможности нормально построить артиллерию
Forwarded from Python обучающий
Создание анимированного ASCII-арта из видео в реальном времени! 🎥🖼
Этот лайфхак позволит превращать потоковое видео в ASCII-анимацию прямо в терминале!
🔥 Как это работает?
Камера захватывает видео.
Кадр преобразуется в черно-белое изображение.
Каждый пиксель заменяется ASCII-символом в зависимости от яркости.
ASCII-изображение обновляется в реальном времени в консоли!
🎯 Где это можно использовать?
Создание ASCII-анимаций из любого видео.
Визуализация камеры в ретро-стиле.
Развлечение для программистов (смотреть фильмы в терминале).
Этот лайфхак позволит превращать потоковое видео в ASCII-анимацию прямо в терминале!
🔥 Как это работает?
Камера захватывает видео.
Кадр преобразуется в черно-белое изображение.
Каждый пиксель заменяется ASCII-символом в зависимости от яркости.
ASCII-изображение обновляется в реальном времени в консоли!
🎯 Где это можно использовать?
Создание ASCII-анимаций из любого видео.
Визуализация камеры в ретро-стиле.
Развлечение для программистов (смотреть фильмы в терминале).
Представил я свою идеальную песочницу и стало грустно от того, что этого нет...
- От From The Depths: тонкая настройка пушек, системы излучений, по которым можно отслеживать где находится другая техника (всякие разные камеры для разной длины и разного спектра, радиоантенны, инфракрасные камеры, сонары и прочие вещи для отслеживания отдельных типов излучений со своими особенностями)
- От Plasma: удобное визуальное программирование с кучей настроек для возможности создавать свои чипы и ИИ, чтобы оптимизировать и автоматизировать системы (так же можно добавить отдельную возможность писать код на Lua или другом языке)
- От Storm Works: двигатели и смежные с ними системы, чтобы нужно было подключать к двигателю трубы с отдельными выводами и вводами (на самом деле хотелось бы что-то сложнее, чем в FTD, но проще чем в SW)
- От Space Engineers: воксельная система создания мира, чтобы у мира была какая-то разрушаемость (с возможностью добычи ресурсов из недр и прочего подобного)
- От Kerbal Space Program: сами по себе силы физики (от аэродинамики до просчёта центра массы, центра тяги, центра подъёмной силы и прочего, для более правильного корректирования структур)
- От TerraTech: возможность менять трансмиссию техники для каждой кнопки, что позволило бы как удобно переключаться между режимами управления, так и сделать его более удобным или правильным для аппарата (условно вместо "Ехать левее" на [A] и "Ехать правее" на [D] сделать "Крутить правые колёса вперёд" на [A] и "Крутить левые колёса вперёд" через меню изменения трансмиссии, что за секунды превращает обычную машину уже в танк в плане управления)
Как по мне получилась бы игра мечты, где буквально нет ограничений, ведь физические вещи просчитывались бы: условно сделать пушку, которая с помощью быстрых камер отслеживает всё вокруг, после чего улавливает сигнал о приближающейся ракете, которую уже в свою очередь отслеживает с помощью лазера, который выдаёт дальность этой ракеты, после чего сама пушка выстреливает снарядом, который тонко настроен на подрыв через определённое время, чтобы взорваться рядом с ракетой, если не в ней и по итогу сбивает ракету
Конечно такая игра - это только мечта, но верить хотелось бы.. К сожалению я понимаю сложности реализации подобной игры, особенно учитывая малую популярность инженерных игр.. А самому даже начинать делать - нет смысла, так как навыков уж явно не хватит...
- От From The Depths: тонкая настройка пушек, системы излучений, по которым можно отслеживать где находится другая техника (всякие разные камеры для разной длины и разного спектра, радиоантенны, инфракрасные камеры, сонары и прочие вещи для отслеживания отдельных типов излучений со своими особенностями)
- От Plasma: удобное визуальное программирование с кучей настроек для возможности создавать свои чипы и ИИ, чтобы оптимизировать и автоматизировать системы (так же можно добавить отдельную возможность писать код на Lua или другом языке)
- От Storm Works: двигатели и смежные с ними системы, чтобы нужно было подключать к двигателю трубы с отдельными выводами и вводами (на самом деле хотелось бы что-то сложнее, чем в FTD, но проще чем в SW)
- От Space Engineers: воксельная система создания мира, чтобы у мира была какая-то разрушаемость (с возможностью добычи ресурсов из недр и прочего подобного)
- От Kerbal Space Program: сами по себе силы физики (от аэродинамики до просчёта центра массы, центра тяги, центра подъёмной силы и прочего, для более правильного корректирования структур)
- От TerraTech: возможность менять трансмиссию техники для каждой кнопки, что позволило бы как удобно переключаться между режимами управления, так и сделать его более удобным или правильным для аппарата (условно вместо "Ехать левее" на [A] и "Ехать правее" на [D] сделать "Крутить правые колёса вперёд" на [A] и "Крутить левые колёса вперёд" через меню изменения трансмиссии, что за секунды превращает обычную машину уже в танк в плане управления)
Как по мне получилась бы игра мечты, где буквально нет ограничений, ведь физические вещи просчитывались бы: условно сделать пушку, которая с помощью быстрых камер отслеживает всё вокруг, после чего улавливает сигнал о приближающейся ракете, которую уже в свою очередь отслеживает с помощью лазера, который выдаёт дальность этой ракеты, после чего сама пушка выстреливает снарядом, который тонко настроен на подрыв через определённое время, чтобы взорваться рядом с ракетой, если не в ней и по итогу сбивает ракету
Конечно такая игра - это только мечта, но верить хотелось бы.. К сожалению я понимаю сложности реализации подобной игры, особенно учитывая малую популярность инженерных игр.. А самому даже начинать делать - нет смысла, так как навыков уж явно не хватит...
Функция [.split()] помогает превращает стринги в список, разделяя слова
Пример:
Вывод:
Пример:
text = "Hello World!"
print(text.split())
text = "Hello#World#!"
print(text.split("#"))
Вывод:
['Hello', 'World!']
['Hello', 'World', '!']