Квантовой гонке уже лет 10, в том числе и с Россией. Наши там какие-то кристальные состояния пытаются утилизировать, например. Проблемы у всех примерно те же самые - быстрая декогеренция и получение шума вместо вычислений. MZM теоретически решают часть проблем, но ни у кого нет пруфов их существования. Ну а уж про то что ими как-то надо манипулировать, чтобы получать какие-то осмысленные вычисления, а не просто шум я вообще не говорю.
Сами авторы заявляют, что измеряют что-то, но не факт, что это именно майорановские моды. Пару прошлых статей по теме MZM за авторством одной из майковской команды отозвали.
В свежей статье также есть несостыковки - графики имеют очень странную форму и наличие тех самых модов пока никак не подтверждено. Сейчас дополнительно анализируются 90 гб каких-то сопутствующих данных.
Так что пока все эти статьи про прекрасное квантовое будущее - всего лишь wishful thinking.
учитывая, что действо происходит в терминале кажется достаточно выделить один буфер размером в терминал и больше не реаллоцировать змея. Заодно можно обойтись циклическим буфером - на одной итерации без еды и исчезает один хвост: держим массив с индексом координаты головы. На рендере змеи просто от координаты головы отсчитываем длину змея в обратную сторону.
[a b c _ _ _ _ _ _ _ _ _] len 3 head 2 # змейка на три клетки
[a b c d _ _ _ _ _ _ _ _] len 3 head 3 # змейка двинулась на клетку d
[a b c d e _ _ _ _ _ _ _] len 4 head 4 # змейка съела яблоко в клетке e
...
[a b c d e f g h a _ _ _] len 4 head 8 # голова в точке где когда-то был хвост
...
[l b c d e f g h a i j k] len 4 head 0 # змейка в координатах lkji
В реальности буффер будет наверное размером в терминал, то бишь что-нибудь в районе 30х140 ~ 4k+ элементов, так что до края голова доберётся не скоро.
if (true) var = true это все же антипаттерн, мешающий читать код.
if (Snake[0].X == W || Snake[0].X == 0)
{
isGameEnd = TRUE; // укусила боковые границы
}
if (Snake[0].Y == H || Snake[0].Y == 0)
{
isGameEnd = TRUE; // укусила нижнюю или верхнюю границы
}
У вас есть возможность сложить это в меньшее количество строк, просто переназначив значение через оператор |= . Ну и копипастить каждый раз тоже снижает читаемость: т.к. у вас в этом месте код не меняется обращение по индексу можно вынести в одну переменную.
const COORD* head = &Snake[0]; // чтобы не копипастить индекс каждый раз
isGameEnd |= head->X == W || head->X == 0; // укусила боковые границы
isGameEnd |= head->Y == H || head->Y == 0; // укусила нижнюю или верхнюю границы
for (int i = 1; i < snakeSize; i++)
{
// укусила себя
isGameEnd |= head->X == Snake[i].X
&& head->Y == Snake[i].Y;
}
там ещё есть нч/кц и при желании вообще заменить на оператор цепочки то и писать почти как на хаскеле, просто записывая выражения в цепочку.
вкл прелюдия;
про главная() то
для число := 1..100 то
если число ост 15 = 0 то печать(«ФиззБазз\н»);
иначе то если число ост 3 = 0 то печать(«Физз\н»);
иначе то если число ост 5 = 0 то печать(«Базз\н»);
иначе то печать(число, «\н»);
Но вообще очень рекомендую посмотреть стрим. Он на русском, если что.
А, ну то бишь аналог шланговских матчеров скрешеный с плотной интеграцией непосредственно в API IDE. Ну и языки соответствующие - java, node js/ts, kotlin etc.
Ну, по сути-то оно все равно языковой сервер, может конечно без поддержки того самого языкового протокола, но принцип работы тот же самый. А что за PSI?
Если перед вами стоит задача, требующая глубокого анализа, работы с научными статьями или построения сложных гипотез, ваш выбор — рассуждающие модели: o1 или o1-pro, а также o3-mini‑high
Мне интересно у кого-нибудь вообще это хоть раз работало? Сколько трогал всякие модели, оно после пары-тройки запросов легко начинает выдумывать всякую фигню, которую в статье потом не найти. Аналогичная ситуация, когда начинаешь спрашивать какие-то выжимки из статей - обычно они морозятся, мол читайте сами, расскажите мне, а я потом вам расскажу. Буквально, как в укрощении строптивого.
Да ну хоть что-то. Скриншоты таблички в экселе - такая себе статья. Не говоря уже, что остальные с этим работать не могут - сиди все ссылки ручками вбивай.
На самом деле и это тоже не самая точная цифра, ибо там тесты местами интрузивные типа:
public static final Field TEST = make("test",Type.NIL,-2,false);
public static final Field TEST2= make("test",Type.NIL,-2,true);
Плюс всякие утилиты типа IR Printer, JSViewer и тд. Именно очищенный компилятор там наверняка ещё меньше. Плюс в каждой главе я так понимаю там по своему дубликату кода компилятора лежит. Хотя с вашим логом консоли непонятно откуда конкретно вы замеряете, ибо на бранче main там src появляется с уровня глав, а у вас он от корня репы появляется как-то.
То есть, они и так пытались экономить как могли, но всё равно получился огромный код.
Собсна, поэтому и писал изначальный комментарий - Java довольно вербозная сама по себе. А вот про однопроходность не понял в чем минус - линейный проход с тривиальными оптимизациями быстрее и проще в SoN, нежели беготня по AST. Конечно, и там и там есть свои плюсы и минусы.
Освещение бы сделать не красным и более разнообразным. У вас там магия есть, а освещение только от факелов идёт.
Квантовой гонке уже лет 10, в том числе и с Россией. Наши там какие-то кристальные состояния пытаются утилизировать, например. Проблемы у всех примерно те же самые - быстрая декогеренция и получение шума вместо вычислений. MZM теоретически решают часть проблем, но ни у кого нет пруфов их существования. Ну а уж про то что ими как-то надо манипулировать, чтобы получать какие-то осмысленные вычисления, а не просто шум я вообще не говорю.
Сами авторы заявляют, что измеряют что-то, но не факт, что это именно майорановские моды. Пару прошлых статей по теме MZM за авторством одной из майковской команды отозвали.
В свежей статье также есть несостыковки - графики имеют очень странную форму и наличие тех самых модов пока никак не подтверждено. Сейчас дополнительно анализируются 90 гб каких-то сопутствующих данных.
Так что пока все эти статьи про прекрасное квантовое будущее - всего лишь wishful thinking.
В среднем выглядит неплохо, если оно работает. А так
учитывая, что действо происходит в терминале кажется достаточно выделить один буфер размером в терминал и больше не реаллоцировать змея. Заодно можно обойтись циклическим буфером - на одной итерации без еды и исчезает один хвост: держим массив с индексом координаты головы. На рендере змеи просто от координаты головы отсчитываем длину змея в обратную сторону.
В реальности буффер будет наверное размером в терминал, то бишь что-нибудь в районе 30х140 ~ 4k+ элементов, так что до края голова доберётся не скоро.
if (true) var = true
это все же антипаттерн, мешающий читать код.У вас есть возможность сложить это в меньшее количество строк, просто переназначив значение через оператор
|=
. Ну и копипастить каждый раз тоже снижает читаемость: т.к. у вас в этом месте код не меняется обращение по индексу можно вынести в одну переменную.Есть еженедельник
там ещё есть
нч
/кц
и при желании вообще заменить на оператор цепочкито
и писать почти как на хаскеле, просто записывая выражения в цепочку.Но вообще очень рекомендую посмотреть стрим. Он на русском, если что.
На антиящерском не знаю, но как минимум видел форки, которые переводили язык целиком на французский и кажется ещё были испанский и иврит.
Так на расте уже давно пишут. Сам хуя не требует переключения раскладки с русского.
У меня таким макаром появился "плейлист" с мемами в гитхабе - там нынче можно настраивать списки звездочек.
Хороший Учебный Язык (ХУЯ) - полноценный компилятор к 1 апреля. репа. стрим.
alloc_geiger - заставляет динамики трещать, когда происходит аллокация памяти.
dreambird - лучший язык 21 века. репо. вводная [en]
YoptaScript - многие наверняка слышали о нём ещё до того как он попал в браузер.
cbt - Ceph Benchmarking Tool. Назначение оправдывает название. репо.
ripmors - blzaingly fast morse encoder/decoder.
pygyat - зумерский синтаксис для питона
В†† - Великий язык древних русов ве крест крест. репо. история.
А, ну то бишь аналог шланговских матчеров скрешеный с плотной интеграцией непосредственно в API IDE. Ну и языки соответствующие - java, node js/ts, kotlin etc.
Мне интересно, что же в итоге автор нашёл приближенное по теме? Попадались ли такие имена как Хоар, Мацакис, Юнг, Гроссман?
Ну, по сути-то оно все равно языковой сервер, может конечно без поддержки того самого языкового протокола, но принцип работы тот же самый. А что за PSI?
Вот, да, самая удивительная фраза во всей статье. Чтобы отломить уже написанные LSP надо нехило так постараться.
м-да, ну и уровень экспертности, конечно, у вашей Елизаветы.
Мне интересно у кого-нибудь вообще это хоть раз работало? Сколько трогал всякие модели, оно после пары-тройки запросов легко начинает выдумывать всякую фигню, которую в статье потом не найти. Аналогичная ситуация, когда начинаешь спрашивать какие-то выжимки из статей - обычно они морозятся, мол читайте сами, расскажите мне, а я потом вам расскажу. Буквально, как в укрощении строптивого.
Да ну хоть что-то. Скриншоты таблички в экселе - такая себе статья. Не говоря уже, что остальные с этим работать не могут - сиди все ссылки ручками вбивай.
То бишь тот самый упраздненный специалитет получается?
На самом деле и это тоже не самая точная цифра, ибо там тесты местами интрузивные типа:
Плюс всякие утилиты типа IR Printer, JSViewer и тд. Именно очищенный компилятор там наверняка ещё меньше. Плюс в каждой главе я так понимаю там по своему дубликату кода компилятора лежит. Хотя с вашим логом консоли непонятно откуда конкретно вы замеряете, ибо на бранче
main
тамsrc
появляется с уровня глав, а у вас он от корня репы появляется как-то.Собсна, поэтому и писал изначальный комментарий - Java довольно вербозная сама по себе. А вот про однопроходность не понял в чем минус - линейный проход с тривиальными оптимизациями быстрее и проще в SoN, нежели беготня по AST. Конечно, и там и там есть свои плюсы и минусы.
Дык джава же, плюс это миллион всяких примеров небось
написать скрипт?