|
Модератор
1245 / 676 / 292
Регистрация: 10.11.2019
Сообщений: 1,406
|
|
101 Basic Computer Games25.05.2024, 16:17. Показов 18812. Ответов 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 (Самара) |
|
|
|||||
| 26.06.2024, 13:29 | |||||
|
if(a(b) - c(d)) 13, 14, 15 Добавлено через 42 минуты
1
|
|||||
|
|
||
| 26.06.2024, 14:58 | ||
![]() Приказывайте какой код он нагенерил, иначе это обсуждение не имеет смысла. Вам нужно пообщаться с Hretgir. У него тоже идеи по поводу неидеальности процев и необходимости изобрести https://www.cyberforum.ru/blog... g8346.htmlОсуществление установки флага Zero Если равенство проверяется через вычитание, то почему не аппаратно?
0
|
||
|
|
|||
| 26.06.2024, 15:08 | |||
![]()
0
|
|||
|
Кормпилятор
|
|||||
| 26.06.2024, 20:06 | |||||
|
не существовало. Никто и близко не понимал как программировать. Оно в зачатке было. Первые быстрые процессоры, которые позволили делать 3D в реальном времени сильно раскачали всю индустрию, вот тогда всё это попёрло, демщики, 3D шутеры. Если математики были условно всегда, то программисты "рожались" именно тогда. Уровень рос экспоненциально, но не у всех))). Потому что именно тогда появился нормальный интернет, все начали делиться опытом, что дало сильный пинок в развитии кодинга. И к стилю кода требования именно тогда сформировались. Как ни крути это много лет работы, причём в идеальных условиях. а это очень близко. Объясняю то что не запрещено - разрешено и будут особо одарённые кони-люди использующие одни состояния как части других(и именно через GOTO). И никакая схематика тебе понять это говно не поможет на приближении дальше 2-3 шагов, у рекурсии та же беда, написать просто - обслуживать невозможно. И линейно вычленить процесс и оттрассировать ты не сможешь т.к. он созависим. Расчёты и проверку делает автор кода и если он где-то лоханётся - то кабзда. Обе эти вещи устойчивы к крайней трудности и невозможности доработки. Это и есть истинный макаронинг во плоти. Полный запрет GOTO лишает читающих код такого дерьма. А оставили GOTO потому что при разработке он бывает нужен единично и то разумеется если код поддаётся реструктуризации - лучше это сделать. Убирая одно говно и вваливая заместо него другое - ты не делаешь лучше, решение простое и очевидное, не использовать GOTO когда оно не требуется(ВУ сугубо логика кода), и использовать только если это объективно принесёт пользу(например если требуется реструктуризовать кусок в 300-1000 строк а можно обойтись одним GOTO). Я когда открыл документацию - просто вспух. Туда с гарантией мало кто в асм полезет, это рак мозга. А так оно по сути пожизненно обречено на "плас плас", "линух" и иже с ним. Почему раньше люди делали всё обдуманно и выделяли фундаментально очевидные вещи, те же intel начали за здравие всё было круто, обратная совместимость, приросты скорости. Но самое главное - простой и понятный ассемблер, универсальный инструмент для создания средств разработки, ОС и оптимизации x86. Теперь же только приросты ядер и скорости SIMD, а не скорости базовых x86-x64. Т.е. маркетинговое вонючее враньё. Но параллелится то не всё и это прекрасно людям известно. И ВУ не везде хорош это тоже известно. В миру пока острой потребности нет, все смирились с тем что хороший уровень железа достижим только Intel-ом да AMD, а в нашей стране имхо актуально, ну потому что сколько можно "сосать" у зарубежки. Почему столько наших мозгов топовых(кто при возможностях) нихера не могут сделать, а в своё время наши и к PowerPC руку приложили. Создали бы клон интелов по инструкциям уровня 486\P1, а по мегагерцам современный и дальше с этого места уже бы гребли без излишнего маркетинга и лжи. С видеокартами та же херня. В общем не хотят наши пройти тот же путь но правильно... Идут через жопу.
0
|
|||||
|
|
|||
| 26.06.2024, 21:56 | |||
|
0
|
|||
|
Кормпилятор
|
|||
| 27.06.2024, 08:47 | |||
|
Помню был весёлый ролик про 4-й айфон. Как-то так эти люди живут: https://www.youtube.com/watch?v=EqWIOrCDqbQ А что такое ARM мы знаем по мобилам, байкал наш вон тоже пытались, но там обсёр конечно был сильно очевиден, и никакой аппаратно ускоренный и критически заточенный софт это понимание не изменит. обманывать людей как это сейчас происходит с этими дебильными бустами, которых нет. Уже вообще не понять, что будет работать быстрее, а что наоборот. А так по сути хоть 50 ядер, если алгоритм не параллелится - то не будет быстрее и всё упрётся в 1 поток, так и снижается производительность многопоточных прог где всё схлопывается в 1 поток и образуется ботлнек. Мы то понимаем что вот сейчас эти цифры которые нам дают по приросту к IPC - это ложь, т.е. каждый раз по 15-20%, оно могло быть так на первых порах, когда не было решения на дальнейшее увеличение частот, но не сейчас. Я это пишу чтобы у людей сложилась устойчивая картина, что там всё упёрлось 100 лет назад и догнать на самом деле можно пока западные маркетологи извиваются как сосиски на сковородке, можно напереть на здравый смысл повторить успех того, что было в начале и середине 90-х и спокойно пойти дальше. Для людей это сделать, для наших и возможно не только. Потому что амеры делали для людей, говно попросту иначе не стало бы так популярно в остальном мире. Когда нужна точность и логика то не канает подход "мы не такие как все", в т.ч. эта клоунада с андроидами, которые высосали из пальца свой адский шлак, а кони-люди это позорище склевали ради социалок и селфи. Такие вещи как UI не могут быть настолько субъективны, насколько нам пытаются это подать. Примерно эти тенденции высмеивали 10 лет назад с актёрами из "назад в будущее": https://youtu.be/L2xvITU7gdI?t=159 Там кстати про Трампа интересно сказано. Ну и в целом прикольно обыграли "деградацию".
0
|
|||
|
COM‐пропагандист
|
||
| 27.06.2024, 09:01 | ||
|
0
|
||
|
|
||||||||
| 27.06.2024, 13:39 | ||||||||
|
Я ж не против рекурсии. вы просто невнимательно читаете. Я против рекурсии в процедурах, но не против рекурсии в функциях. И я хочу четко разделить понятие процедура от функции.
1. полное отсутствие ключевых слов типа while, continue, break. Это упрощает сам язык. 2. каждый блок кода имеет уникальное имя. Напомню, что в структурном коде блоки безымянны. 3. А это позволяет легко документировать такой код. то есть создавать описание шагов алгоритма ссылаясь на имена блоков кода. При этом понимание алгоритма происходит уже на стадии чтения српецификации. 4. Легко верифицировать и документировать код автоматическими средствами, так как у нас есть адреса блоков кода. 5. ЛЕГКО СОЗДАВАТЬ АЛГОРИТМЫ ДАЖЕ ОЧЕНЬ СЛОЖНЫЕ БЕЗ ПОТЕРИ ЭФФЕКТИВНОСТИ. В структурной парадигме только за счет потери эффективности. Метки не обязаны быть чисто цифровыми. Мы получили еще одну абстракцию по типу функции: именованный блок кода. Недостаток номеров строк очевиден: придется как-то синхронизировать документирование и написание кода, так как номера строк могут измениться при пересчетах командой renum. Это конечно пережиток.
0
|
||||||||
|
COM‐пропагандист
|
||||
| 27.06.2024, 13:57 | ||||
|
Нельзя скомпилировать и использовать как готовую библиотеку. Даже в отдельном файле такой «блок» нельзя использовать. Как их вызывать? У нас будет программа из одного файла? Хелловорды только писать? Смех.
0
|
||||
|
|
||||||
| 27.06.2024, 14:08 | ||||||
|
1
|
||||||
|
|
||||||
| 27.06.2024, 14:16 | ||||||
|
Короче не нужно пропагандировать старые методы. От них не зря отказались. Они не очень хорошо запоминаются в отличие от слов. Нельзя провести ассоциацию с "вывод на экран" со строкой 1280, тем более что в другой программе это может быть строка с другим номером.
0
|
||||||
|
|
||
| 27.06.2024, 14:55 | ||
|
1
|
||
|
COM‐пропагандист
|
|||||||
| 27.06.2024, 15:54 | |||||||
|
В си конец блока обозначается фигуристой скобочкой. А номер строки и метки никаких фигуристых скобочек не имеют. Новая метка — это конец предыдущего блока или ещё один вложенный друг в друга? Каким образом у вас будут работать переменные объявленные выше прыжка?
0
|
|||||||
|
|
|||
| 27.06.2024, 16:13 | |||
|
0
|
|||
|
COM‐пропагандист
|
|||||||||||||||
| 27.06.2024, 20:38 | |||||||||||||||
Переменные, объявленные внутри функции, доступны только в момент вызова функции, и будут уничтожены после завершения работы функции. А ваши переменные будут создаваться заранее все? То есть какая‐то переменная, которая нужна только внутри блока и которую после блока можно уничтожить, будет существовать всё время жизни программы? Тогда получаете использование памяти вхолостую. О какой эффективности может идти речь? Ни о какой, только Bloatware вместо программ создавать.
1
|
|||||||||||||||
|
Кормпилятор
|
||||
| 27.06.2024, 22:45 | ||||
|
в свободном виде(принципы, схемы функционирования, пояснения) в отдельном документе перед вбиванием в код. Это не означает кто код невозможно понять, но если сам кодер что-то забудет - то без этого, в многих тысячах строк кода найти ответ будет проблематично. Для этого и нужен избыточный запас "понятности". Это нужно только для того, когда что-то либо забыто, либо не понятно другому человеку который код открывает. Т.е. это огромное время, потраченное для документирования. И оба типа документирования важны. Без документации разработка глохнет - это уже эмпирика. Но тебе пишут про другое, про то что влияет на скорость считывания кода глазами и мозгом, а это прямо влияет на скорость разработки, т.к. разработка это не 1 день. Добавлено через 11 минут Нужно ещё поискать такого дятла, который будет "рекурсировать" в процедуре. Обычно такие "понты" в коде потом человека очень долго имеют во все пихательные.
0
|
||||
|
787 / 307 / 17
Регистрация: 21.01.2023
Сообщений: 529
|
||
| 27.06.2024, 22:53 | ||
|
Пример, правда, на VB6. Перепиши без рекурсии в процедуре, сравни читаемость. Рекурсия - одно из лучших изобретений в программировании. Ну а разделять её в процедурах и функциях вообще нет смысла.
0
|
||
|
Кормпилятор
|
||
| 27.06.2024, 23:56 | ||
|
не поддающиеся контролируемой трассировке мозгами дальше нескольких итераций, потому что они, повторюсь, созависимы. Фракталами не занимаюсь но вот старый адаптированный на бейсик исходник из книги если уж надо. https://www.cyberforum.ru/post1480863.html без процедур. Судя по "папаротнику" идея также не твоя, так что не понимаю к чему это всё. Рекурсией ради рекурсии не занимаюсь, поиск по файловому дереву разворачивал в линейный вид, проблем не увидел, и не выпендрёжа ради. Как и любую рекурсию для себя разворачиваю ВСЕГДА в линейный итерационный вид, т.к. уровень контроля на любом шаге - выше.
0
|
||
|
|
||||||
| 28.06.2024, 07:52 | ||||||
|
если вася проснулся с головной болью, то надо опохмелиться и пойти на работу, иначе пойти на работу: более ясен для человека. Однако существуют алгоритмы, в которых такой принцип приведет к жуткому коду и где прямые переходу будут гораздо яснее и понятнее. В чем проблема? А в том, что конструкция: если условие то блок иначе блок имеет два безымянных блока. Всего два, значит два состояния, и нам не надо для понимания алгоритма запоминать их имена. Но если таких блоков будет под сотню, а существуют такие алгоритмы, без именования блоков будет каша, которую вы не разгребете, потому что терпения не хватит. А существуют алгоритмы с десятками состояний. Вот о чем я . Ну а вы пишите амебообрзный код типа: если холодно оденься, иначе разденься, я не против.. Добавлено через 2 минуты По поводу процедур и рекурсии. Некоторые языкине разделяют процедур от функций. Вот о чем я. А процедура не должна возвращать значение и соответственно не должна участвовать в выражениях. Процедура это просто блок кода, который может вызываться из разных мест, но не может иметь косвенной или прямой рекурсии, что более безопасно.
0
|
||||||
|
787 / 307 / 17
Регистрация: 21.01.2023
Сообщений: 529
|
|||||||||
| 28.06.2024, 09:09 | |||||||||
1. Получаем на входе координаты начала и вектор направления линии. Если вектор слишком короткий - ничего не рисуем (выход), а иначе... 2. Рисуем эту линию. 3. От конца нарисованной линии тем же методом рисуем следующую (продолжение ветки) немного короче и чуть-чуть повернув угол. 4. Так же от конца рисуем две линии, сильно повернув углы вправо и влево и значительно короче (начала боковых веток) А теперь глянь на код, ведь это как раз то, что я описал человеческим языком. Логика в чистом виде.
0
|
|||||||||
| 28.06.2024, 09:09 | |
|
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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Расчёт периметра прямоугольника по координатам вершин
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости.
Решение:
Создан документ со следующими. . .
|
Подсчёт частоты трёхбуквенных слов в тексте
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово.
Решение:
Создан документ с единственным. . .
|
Сумма и количество положительных элементов в чётных строках массива
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Вычислить сумму и количество положительных элементов массива, расположенных в четных строках.
Решение:
Создан документ с. . .
|
Поиск произведения положительных чётных чисел в последовательности
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Дана произвольная последовательность целых чисел. Найти произведение положительных четных чисел данной последовательности.
. . .
|
|
Обработка трёх чисел: утроение и возведение в степень
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Даны три действительных числа. Утроить те из них, значения которых неотрицательны, и возвести в четвертую степень отрицательные.
. . .
|
Расчёт стоимости яблок по весу
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Написать программу вычисления стоимости некоторого количества (по весу) яблок.
Решение:
Создан документ, с табличной частью. . .
|
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни
1. Механизм отложенного высвобождения фосфора
Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ
Реализована разная скорость. . .
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|