|
Модератор
1245 / 676 / 292
Регистрация: 10.11.2019
Сообщений: 1,406
|
|
101 Basic Computer Games25.05.2024, 16:17. Показов 18620. Ответов 273
Метки нет (Все метки)
Недавно я натолкнулся в сети на книгу, о которой никогда не слышал.
Книга называется "101 Basic Computer Games". Она была выпущена DEC в 1975 году и содержит тексты игр с аннотациями. Игры написаны на BASIC, на компьютере PDP-11. Очень интересная коллекция для начинающих программистов, и не только. Коллекция игр с описаниями и переводом на другие языки программирования находится по адресу: https://github.com/coding-horr... uter-games
4
|
|
| 25.05.2024, 16:17 | |
|
Ответы с готовыми решениями:
273
Coodo Games & Datcroft Games Java Developer (Самара) Coodo Games & Datcroft Games AS3.0 Developer (Самара) |
|
COM‐пропагандист
|
|||||
| 28.06.2024, 09:32 | |||||
|
100 массивов создающиеся только когда надо и уничтожающиеся когда не надо — будут занимать 1 мегабайт памяти.
0
|
|||||
|
Кормпилятор
|
|||||||||||
| 28.06.2024, 10:18 | |||||||||||
|
Хулиган, старпёром быть это на самом деле неплохо, плохо не иметь нормальных проектов на языках, за идеологии которых(отщипывая от них) ты нам тут поясняешь, форт, фортран, Паскаль и иже с ними. изучать "косвенные", "прямые" и всякие другие прочие. Рекурсия - это крайне редкая техника программирования, настолько редкая, что некоторые, овладев ею внезапно ощущают себя какими-то особенными, несмотря на то, что без неё вполне всё пишется. Был тут юноша один с ником geh, любитель рекурсии, ничего путного от него не было за всё время пребывания тут, да можно для затравки 1-2 примера вбросить как и делал, полюбоваться на картинки генеренные десяткой строк кода, но это абсолютно бестолковая вещь. Рекурсия в серьёзных софтах почти не применяется, а грамотные люди, осознавая все её плюсы и минусы всегда её разворачивают, да это тяжело и требует мозгов, но оно себя окупает. Ибо схлопотать и отгрести никто даже из маститых не хочет, чтобы потом возиться отлаживать это дерьмо, все прекрасно понимают почему. Одно дело играться с фракталами и совсем другое строить маршруты для теслы. В первом случае жертв нет, во втором - могут появиться. И самое гиблое дело лезть ещё за этим на ютуб, где разного формата губошлёпы с голосом 10 летнего мальчика, наевшиеся синтаксических сахаров и никогда не нюхавшие реального кодинга, будут затирать что хорошо, а что плохо. Хулиган, сформируй уже в себе хоть какой-то стержень. Много лет прошло "а воз и ныне там". Вообще прежде чем тебе писать, просто чтобы посмотреть результат переписал его на FB:
Т.е. DrawFractal, вот это аццкое месево из кучи захардкоденных "магических чисел", без комментариев и сделанное не по фен шую рекурсии(1 вызов функции + условие схождения, а не процедурой, что есть нонсенс). И на полном серьёзе говоришь что это прям логика? Если да, то, ну ради бога... Тогда все вопросы отпадают сами собой. Нужно очень сильно постараться, чтобы это было похоже на живой куст. Базовыми примитивами прикольно сделать скорее всего не получится.
0
|
|||||||||||
|
787 / 310 / 17
Регистрация: 21.01.2023
Сообщений: 530
|
|||||||||||||||||||
| 28.06.2024, 11:13 | |||||||||||||||||||
Но какое это имеет отношение в выяснении преимуществ рекурсивного кода над нерекурсивным? По делу написать нечего? И это к вопросу рекурсии не имеет отношения.
0
|
|||||||||||||||||||
|
Кормпилятор
|
|||||
| 28.06.2024, 12:01 | |||||
|
только с 1 массивом этой программы. Понятно что, зачастую, программе не нужны всегда все её возможности и что-то можно выгрузить, но скажу честно, сильно сомневаюсь что даже будучи бережным к памяти можно выкроить больше 20-40% в общих задачах и вообще хоть сколько-нибудь в realtime задачах. Это очень сильно зависит от специфики задач. Т.е. есть некоторая минимальная планка памяти ниже которой программу не завести и есть массивы, которые просто невыгодно выгружать, т.к. их повторное заведение и заполнение даст устойчивый лаг и это скажется сильным образом на юзабилити. Добавлено через 44 минуты Чтобы людям что-то показать. Потом уже понял, что не стоило. На вред пошло. Ни на чём не настаиваю, нравится рекурсия - пиши. комментарии) - то может и позволяет, но что с того? Сложность понимания случайным юзером в данном случае сильно не зависит от приёма разработки, либо рекурсия, либо линейный итеративный алгоритм, конкретно тут - пофиг. Она зависит от реализации алгоритма, в другом алгоритме по другому будет, попадётся сложный алг - вообще жопа будет. Рекурсия же может уничтожить мозг даже в простых вещах, про сложные молчу. Но нормальный код в линейном виде сделал бы этот алгоритм более понятным вообще любым людям. Насколько "более" - трудно сказать, у всех мышление разное. Это я понимаю, что там стояли синусы и косинусы, сам такое много раз писал и то на глаз не понять где куда и что оно там крутит. Сделай эксперимент, спроси у любого без трассировки на ПК, как этот твой код в точности работает. Сможет человек сам разобрать этот код, в уме это прикинуть и показать тебе на листике без компа... То то и оно. Ну не надо выпендриваться, сколько можно. Ознакомься хоть с общим мнением у людей по этому вопросу, желательно тех, кто сам что-то пишет, а не берёт чужие алгоритмы и не фракталы. Почти все тебе скажут, что пишут без рекурсии, за очень редким исключением. И выделят единственный плюс рекурсии - компактный код, не то чтобы понятный, но компактный. А дальше одни минусы, от возможности бесконечно зациклить, до переполнения стека, при этом память никак не контролируется, состояния никак не контролируются(и отдельно отладить их нельзя), жопа куда не клюнь.
0
|
|||||
|
|
|||
| 28.06.2024, 12:02 | |||
|
Мелкие проекты делал, но нигде не выкладывал, чисто для себя. Один на TCL, второй на VB. Думаю пора приступить к написанию тестового проекта по языку, в котором осуществил бы некоторые свои идеи. Я давно начал, но забросил. В частности была написана библиотека по двухсвязному списку на Си. Просто хотел осуществить способ компиляции не как у всех, а по новому способу, более ясному для понимания. Не через рекурсию, а загнать токены в список и обрабатывать уже его посредством автомата, а не через рекурсию сверху вниз.
0
|
|||
|
|
||||||||
| 28.06.2024, 12:06 | ||||||||
|
Если вы под параметры и локальные переменные используете глобальные переменные, память занята зря. Показывайте примеры кода чтобы не было недопонимания.
0
|
||||||||
|
Кормпилятор
|
|||
| 28.06.2024, 12:41 | |||
|
прям хорошо, дописал сортировку списка, двустороннюю пузырьком + rapid, очень круто получилось. В компилях не знаю где, не писал компили, но по сути в первом приближении - там всё без рекурсии, по крайней мере анализ и разбор строки - да, анализ формул - тут надо думать, но думаю можно итеративно, проверка вложенностей операторов - скорее всего да. Т.е. вполне можно сделать, не вижу где там можно встрять, но конечно, это надо глубоко анализировать, может что-то и всплыть. Но даже если и, то мало где. За регулярки не скажу - не пользуюсь. Добавлено через 11 минут
0
|
|||
|
787 / 310 / 17
Регистрация: 21.01.2023
Сообщений: 530
|
|||
| 28.06.2024, 13:21 | |||
|
Ты пойми. Я же не агитирую использовать рекурсию везде, я, скорее, противник того, чтобы от чего-то отказываться из каких-то идеологических побуждений. Для вышеперечисленных задач рекурсия предпочтительнее. На счёт того, что она на вид непонятна, вопрос спорный. Если ты её изучил, но никогда не пользуешься, то и навыка на взгляд понимать, что тут к чему, не будет.
0
|
|||
|
COM‐пропагандист
|
|||||||||
| 28.06.2024, 13:28 | |||||||||
|
Например, рекурсивный обход двоичного дерева намного проще и понятней, и сама функция занимает примерно шесть строк кода:
Добавлено через 5 минут
0
|
|||||||||
|
|
|||
| 28.06.2024, 13:52 | |||
|
0
|
|||
|
COM‐пропагандист
|
|
| 28.06.2024, 15:02 | |
|
0
|
|
|
|
|||
| 28.06.2024, 15:34 | |||
|
0
|
|||
|
|
||||
| 28.06.2024, 15:56 | ||||
|
При отсутствии свободной памяти, указатель будет равен 0.
0
|
||||
|
|
||||||||||||||||||||
| 28.06.2024, 18:28 | ||||||||||||||||||||
1. присваивание собственно значение адреса блока данной переменной, и 2. переход на этот адрес. При этом оформление блоков может быть разным, например в стиле basic:
1. каждый state может узнать предыдущий state 2. легко организуются циклы, например аналог цикла while:
Но в моем представлении понятие цикла ущербно. И никаких goto. Добавлено через 26 минут
0
|
||||||||||||||||||||
|
COM‐пропагандист
|
|||||||||
| 28.06.2024, 20:05 | |||||||||
|
Во‐вторых, сколько вам доступно памяти не из стека — это тоже гадание на кофейной гуще. Вы думали что сейчас свободно 16 гигабайт? А вот и нет, через секунду другая программа (браузёр) съела эти гигабайты, и ваши сведения о свободной памяти устарели. Я надеюсь, ваша программа написана ответственно и умеет обрабатывать такие ошибки. Добавлено через 1 минуту Добавлено через 2 минуты
0
|
|||||||||
|
|
||||
| 28.06.2024, 20:23 | ||||
|
Какой-то странный ЯП разрабатываете. Это точно не бейсик!
0
|
||||
|
Кормпилятор
|
|||||||||
| 29.06.2024, 00:13 | |||||||||
|
32 битка XP\2000 заведёт? А если у человека винда 10-я и 4 Гб памяти на компе, я в офисах видел такие компы. Они половину своего рабочего времени в свопе и тут такое. Но и что за задача которая потребует столько стека? На самом деле не вижу элегантности в сжирании стека и в тратах тактов на вызов. Наверное это не так критично для сканирования жёсткого диска, но для чего-то другого может быть критично. Ну да если задача дерево тупо обойти - да, покатит. В каких-то суровых алгоритмах природа которых - состояния(зависящие от множества факторов), это не стал бы применять. вычислительный(в т.ч. логический) код, который можно сделать на независимых состояниях в строго рекурсионном виде становится зависимый, сам принцип рекурсии(сводить "сложную" задачу к однотипным простым) подразумевает преобразование кода в подобный вид. И это сложно отлаживаемая хрень, по аналогии с тем, за что топит хулиган. Сложно отлаживаемая она при разработке, а не когда ты уже такой красавец всё написал и показываешь как всё красиво. которые уже есть в интернете. И только один из отписавшихся попытался напрячь мозг и что-то развернуть. Если постоянно говорить про велосипеды и как всё уже хорошо(а оно нихрена не хорошо), то кто будет в принципе делать что-то лучше, да и вообще что-то делать. Это застой. Мол это дормовая какая-то память. А если надо портировать прогу в ограниченные условия, под микроконтроллер или под тот же DOS? Там гигабайты уже не выделишь. а не использую сознательно, во-первых, потому что могу себе это позволить(в отличии от тех, кто даже не пытался), а во-вторых уже давно наелся кода, который никак не модифицировать, вывалят тебе это говно никак не комментированное, с кучей "магических чисел" и сиди разгребай, сложного кода, который в трубку мозг сворачивает и не всё так очевидно бывает как в примере от Замабувараева. Я тебе написал что твой пример без компа люди не смогут оттрассировать в голове и даже примерно понять Проведи этот эксперимент, не объясняя никому ничего и удивись. Всё чего хочу - чтобы люди не выпендривались и писали максимально просто для других людей и вообще осознанно это делали, а не потому что в интернете увидели какой-то приём программирования "лаконичный" или "элегантный". Линейный итеративный вид максимально гибок на любых видах алгоритмов, если выбирать скажем между эталонной рекурсией по идеологии рекурсии и кодом на состояниях, то однозначно линейный код. Потому что каждое состояние можно "поймать", остановить итерации, покрутить в памяти, всё прикинуть на 100% и сделать это по отдельности. Более того изолированные - они подлежат осмыслению бошкой, с этим человек может работать без компа, т.е. создавать сам алгоритм, сложный из простых кусков. Но без оформления и комментирования - любой код будет парашей как не пиши. Стековые алгоритмы к слову не самые простые. Стек вообще довольно интересная структура многие штуки позволяет делать. Добавлено через 23 минуты приходится пришибать его. Что из-за памяти как бы понятно. При этом если смотреть по диспетчеру - свободных гигабайт ещё хватает. Файл подкачки выключен, т.к. такое дерьмо как своп хронически не переношу, лучше пусть упадёт чем буду ждать пол часа пока оно просрётся. GIMP 2.8(много лет разработки) не умеет обрабатывать такие ошибки - падает. Ждём живичного ответственного кодинга в массах, долго ждём уже. Надеюсь начнут))) Добавлено через 3 часа 14 минут Словесно у него донести походу не получилось.
1
|
|||||||||
| 29.06.2024, 00:13 | |
|
Coodo Games & Datcroft Games 3d Artist (Самара) Coodo Games & Datcroft Games Lead Java Developer / Team Lead Выполнить следующие операции в двоичной системе счисления: 10101,10101+1001,0011 101110,101-101,11 1011*111 1010101 Даны действительные числа x1,…,x101, y1…,y101. Получить действительные x'1,…,x'101, y'1,…,y'101 Bsod - *50,*3B, *101, *101 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов
Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
|
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация
В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|
|
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж»
Уважаемые коллеги!
Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
|
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
|
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
|
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
|