Модератор
1230 / 662 / 290
Регистрация: 10.11.2019
Сообщений: 1,388
|
|
101 Basic Computer Games25.05.2024, 16:17. Показов 12338. Ответов 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. У него тоже идеи по поводу неидеальности процев и необходимости изобрести ![]() Осуществление установки флага 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
|
![]() 737 / 256 / 14
Регистрация: 21.01.2023
Сообщений: 355
|
||
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
|
![]() 737 / 256 / 14
Регистрация: 21.01.2023
Сообщений: 355
|
|||||||||
28.06.2024, 09:09 | |||||||||
1. Получаем на входе координаты начала и вектор направления линии. Если вектор слишком короткий - ничего не рисуем (выход), а иначе... 2. Рисуем эту линию. 3. От конца нарисованной линии тем же методом рисуем следующую (продолжение ветки) немного короче и чуть-чуть повернув угол. 4. Так же от конца рисуем две линии, сильно повернув углы вправо и влево и значительно короче (начала боковых веток) А теперь глянь на код, ведь это как раз то, что я описал человеческим языком. Логика в чистом виде.
0
|
28.06.2024, 09:09 | |
Помогаю со студенческими работами здесь
60
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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
![]() |
||||
Квантовые алгоритмы и обработка строк в Q#
EggHead 07.06.2025
Квантовые вычисления перевернули наше представление о том, как работать с данными, а Q# стал одним из ключевых языков для разработки квантовых алгоритмов. В традиционых системах мы оперируем битами —. . .
|
NUnit и C#
UnmanagedCoder 07.06.2025
В . NET существует несколько фреймворков для тестирования: MSTest (встроенный в Visual Studio), xUnit. net (более новый фреймворк) и, собственно, NUnit. Каждый имеет свои преимущества, но NUnit. . .
|
с++ Что нового?
russiannick 06.06.2025
Продолжаю обзор dev-cpp5. 11. Посмотрев на проекты, предоставленные нам для обучения, становится видно, что они разные по содержащимся файлам
где:
. dev обязательно присутствует
. cpp/ . c один из них. . .
|
WebAssembly в Kubernetes
Mr. Docker 06.06.2025
WebAssembly изначально разрабатывался как бинарный формат инструкций для виртуальной машины, обеспечивающий высокую производительность в браузерах. Но потенциал технологии оказался гораздо шире - она. . .
|
Как создать первый микросервис на C# с ASP.NET Core, step by step
stackOverflow 06.06.2025
Если говорить простыми словами, микросервисная архитектура — это подход к разработке, при котором приложение строится как набор небольших, слабо связанных сервисов, каждый из которых отвечает за. . .
|
Рисование коллайдеров Box2D v2 на Three.js с помощью порта @box2d/core
8Observer8 06.06.2025
Используется порт Box2D v2 под названием @box2d/ core - пакет NPM. Загрузил документацию Box2D v2 на Netlify: https:/ / box2d-v2-docs. netlify. app/ Документацию Box2D v2 можно скачать с официального. . .
|
Как создать стек в Python
AI_Generated 05.06.2025
Как архитектор с более чем десятилетним опытом работы с Python, я неоднократно убеждался, что знание низкоуровневых механизмов работы стеков дает конкурентное преимущество при решении сложных задач. . . .
|
Server-Sent Events (SSE) в Node.js
run.dev 05.06.2025
Потоковая передача данных с сервера прямо в браузер стала повседневной потребностью - от биржевых графиков и спортивных трансляций до чатов и умных дашбордов. Много лет разработчики полагались на. . .
|
Создаем RESTful API на Golang с Fiber
golander 04.06.2025
Я перепробовал десятки фреймворков для создания RESTful API за последние годы, и когда впервые столкнулся с Fiber, понял, что это совсем другой уровень. Нет, я не собираюсь рассказывать сказки о. . .
|
Как работать с куки в ASP.NET Core
UnmanagedCoder 04.06.2025
Когда я впервые начал работать с куки в ASP. NET Core, меня поразило, насколько отличается работа с ними от классического ASP. NET. В Core все стало более декомпозированным - больше нет удобного. . .
|