|
Модератор
1245 / 676 / 292
Регистрация: 10.11.2019
Сообщений: 1,406
|
|
101 Basic Computer Games25.05.2024, 16:17. Показов 17168. Ответов 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 (Самара) |
|
304 / 75 / 6
Регистрация: 27.04.2022
Сообщений: 240
|
||
| 28.05.2024, 16:29 | ||
|
В прошлом году опубликовал биографическую статью об авторе — https://ru.wikipedia.org/wiki/... 0%B8%D0%B4
1
|
||
|
Кормпилятор
|
|
| 28.05.2024, 18:19 | |
|
Для начинающих это точно не стал бы советовать.
Честно, никогда не понимал зачем что-то старое переводить с "того" бейсика на современные ЯП. Там же самое зарождение ЯП, с соотв. стилем кода, близкому к 2GL, что изменилось лишь к началу 90-х. Одно дело портировать что-то с относительно нестарого QuickBasic, под который были и Vesa библиотеки и Sound Blaster библиотеки. И совсем другое ковырять безбожно устаревшее по всем меркам и аппаратным и программным. Максимум кому это было бы интересно - историкам IT, да и то не уверен.
0
|
|
|
Модератор
1245 / 676 / 292
Регистрация: 10.11.2019
Сообщений: 1,406
|
||||||
| 28.05.2024, 19:04 [ТС] | ||||||
|
Вот программа Train - мне понравилась как хороший пример школьной программы.
А не то, что сейчас на ЕГЭ - "Возведите Питоном какое-то число в 2024 степень, и найдите, сколько раз в цифрах результата встречается цифра 6" - такие задания точно хорошему не учат.
0
|
||||||
|
Кормпилятор
|
||
| 28.05.2024, 20:03 | ||
|
В первом случае мы получаем условного "кодерхулигана", во-втором(ЕГЭ) вообще никого, т.е. человека которому это всё не интересно. Добавлено через 22 минуты Твои же примеры qbfan, хотя бы имеют практическую составляющую, тут: Преобразование нот в WAV файл. или тут: https://www.cyberforum.ru/post17222009.html Это хоть как-то может человека замотивировать. А беспредметный матан и ужасно написанный код для мёртвого, 60 летнего железа, сугубо для текстового режима - вообще никак. Ноль эмоций просто.
0
|
||
|
|
||
| 14.06.2024, 16:40 | ||
|
qbfan, почему-то вы дали ссылку не на книгу с текстом игр на basic, а на какую-то коллекцию игр созданых на совершенно других языках. Но всё-таки спасибо за тему. Вот прямая ссылка на книгу с играми:
https://annarchive.com/files/B... df#page=17
1
|
||
|
Модератор
1245 / 676 / 292
Регистрация: 10.11.2019
Сообщений: 1,406
|
||
| 14.06.2024, 16:56 [ТС] | ||
|
а в коллекции игр - те же исходники, но уже набранные, и даже с некоторыми исправленными ошибками. (Насколько я понял, авторы zip коллекции ориентировались на GW-Basic) Я не хотел никого заставлять набирать столь древние программы вручную.
3
|
||
|
|
|||
| 14.06.2024, 17:08 | |||
|
Добавлено через 2 минуты
0
|
|||
| 14.06.2024, 17:17 | |
|
0
|
|
| 14.06.2024, 17:33 | |
|
0
|
|
| 14.06.2024, 19:05 | |
|
0
|
|
|
Кормпилятор
|
|
| 22.06.2024, 23:57 | |
|
Опять 25, краем глаза смотрел эти исходники, простите, но это лютое и унылейшее говно, написанное
в стиле "бабушки-училки начальных классов", не умеющей абсолютно ничего. Я не понимаю почему, коллеги, вы в упор этого не видите. Какие в жопу алгоритмы, где вы их там нашли? Этим не то что никого завлечь не получится, максимум напугать, да так, чтобы человек от страху обосрался и никогда в жизни больше не захотел приближаться ни к программированию, ни к бейсику. И о языке у того, кто начнёт с этих исходников 70-х годов, зародится самое удручающее впечатление. Тем более сейчас, когда он уже практически мёртв в силу стагнации комьюнити и отхода от дел проф кодеров которые в 90-х\00-х ещё что-то писали. И даже если человек сильно пытлив и у него что-то пойдёт по этой "литературе", то он переймёт худшие принципы программирования от которых будет трудно избавиться(как у хулигана, который отписался тут). Это как раз и будет ловушка, из-за которой огульно хаял язык придурковатый Дейкстра, потому что ему на глаза попадались исключительно подобные "кадры". Эта литература вредна для BASIC комьюнити. С одной стороны она призвана пересадить человека на другой ЯП, с другой навязать уродливую идеологию с помощью которой люди не смогут писать современное ПО. Это примерно как нам в стране навязывают что надо учить английский и сваливать подальше(в переводе на "прогерский" - переходить на другие ЯП), причём даже сейчас. По аналогии с гос-вом, BASIC находится в сходном "трудном положении". А если по тезисам темы, то объясню в чём смысл: 1) Текстовый режим окончательно устарел ровно в то время, когда BIOS-ы массово были переведены на графический интерфейс. Это было его последним актуальным назначением. Но исходники темы и не учат пользоваться текстовым режимом(оформление UI, работа со страницами видео памяти, программирование знакогенератора, стандарт ASCII, работа через память). Часть этих навыков может потребоваться при программировании консольных утилит или для создания собственных графических консолей. 2) Отступы нужны для увеличения скорости считывания кода глазами. И работают сугубо в тандеме с другими принципами увеличения читаемости кода. Код без отступов читать можно, если соблюдены другие принципы(комментарии, пропуски строк, грамотное именование переменных и т.п.). Однако код с отступами "всегда" схватится и осознается мозгом быстрее. Во-времена 70-х годов делать кучу пробелов для отступов - было непростительно из-за отсутствия памяти, именно поэтому любые "декоративные" элементы опускались, но эта проблема давно позади. И сейчас код без отступов выдаёт обычно слащавого юнца, первый раз взявшего в руки компилятор. 3) По поводу макаронинга диалоги уже были. GOTO не для кодинга им, а для редких моментов, когда без него будет херово всему проекту, например чтобы избежать массированной реструктуризации кода или для избавления от кусков кода, которые в структурном виде заняли бы 2-3 стандартных экрана в ширину. Ещё имеет место редкое применение для оптимизации(описания всех состояний кода и множественного разветвления конкретного блока на состояния), на ВУ применяется крайне редко, в основном на ассемблере. А GOSUB безвозвратно устарел как только появились нормальные процедуры. 4) По поводу каких-то интересных якобы задач, а почему просто не посоветовать людям подтянуть матан и не поиграть в шахматы? Эти вещи дадут очевидный результат в плане развития логико-математического мышления. При чём тут вообще ЯП?
0
|
|
|
|
||||
| 23.06.2024, 11:35 | ||||
|
Да, в старых версиях basic, процедура не имела своих параметров, надо было работать через глобальные переменные. Это недостаток. Но он поправим если каждая процедура будет иметь свой собственнй пул переменных, и поле для возврата. Простой пример. Допустим нам надо три раза вызвать одну и ту же процедуру с тремя параметрами, один из параметров которой должен быть все время разным, а два других не меняются. В обычном подходе приходится передавать все три параметра. В нормальном, надо передать в первый раз три параметра, а в двух остальных всего один, так как два параметра остаются неизменными. Разве это не ускоряет код? Ускоряет. А нам все универсализировали. Я не согласен.
0
|
||||
|
|
|||||||
| 23.06.2024, 14:07 | |||||||
|
Размер процедуры/функции должен быть таким чтобы помещался на экране без прокрутки. В IDE должна быть удобная навигация по функциям. Большой код нужно делить на несколько файлов. Если не через стек, то как? Через глобальные переменные? Про многопоточность не думали? А про 1500 глобальных переменных? С локальными что делать? Тоже хранить в глобальных? Вот будет "весело" править отлаженный код при его повторном использовании из-за конфликта имен глобальных переменных.
0
|
|||||||
|
|
||||
| 23.06.2024, 14:43 | ||||
|
0
|
||||
|
Модератор
1245 / 676 / 292
Регистрация: 10.11.2019
Сообщений: 1,406
|
|
| 23.06.2024, 14:57 [ТС] | |
|
По поводу стека. В достаточно старых версиях Бейсика стек не просто используется, а их
несколько - отдельно стек для вызовов for, отдельно стек для вызовов gosub. (и далее видимо - while ... wend) Интерпретатор контролирует эти стеки и выдаёт при проблемах сообщения об ошибке (типа next without for, return without gosub). Проблемы со стеком и вызовом gosub вероятно привели к тому, что в FreeBasic использование gosub по умолчанию запрещено.
0
|
|
|
|
|||||
| 23.06.2024, 15:04 | |||||
|
С многопоточностью как быть?
0
|
|||||
|
Модератор
1245 / 676 / 292
Регистрация: 10.11.2019
Сообщений: 1,406
|
||
| 23.06.2024, 15:35 [ТС] | ||
|
Например при gosub в стеке запоминался не адрес возврата (как в ассемблере), а что-то вроде номера строки и положения директивы gosub в строке. Более того - при неумелом использовании for..next и gosub .. return в сочетании с goto эти стеки переполнялись или опустошались.
0
|
||
|
Кормпилятор
|
|||||
| 23.06.2024, 15:51 | |||||
|
Функция возвращает значение, процедура - не возвращает. Это всё что надо об этом знать. А GOSUB это аморфная субстанция, которая однозначно тебе не скажет какие у неё параметры, что она возвращает и куда. Т.е. на каждый GOSUB тебе надо лезть в код чтобы это узнать. По поводу рекурсии уже высказывался, кто хочет себе геморрой - всегда его сыщет. параметры куда приходят и куда уходят, какой их тип. Твой пример с передачей сначала трёх параметров, а потом одного. Решается просто - через глобалки двух параметров. Либо передачей в процедуру одного указателя на все три параметра, меняется из которых любое количество. При адекватном компиляторе скорость будет равноценная. чтобы не вылезало за экран. Хотя во времена FullHD мониторов чтобы просто писать код - это не проблема. Впрочем для читателя это тоже не проблема, если за большой объём кода пару раз вылезет.
0
|
|||||
| 23.06.2024, 15:51 | |
|
Помогаю со студенческими работами здесь
20
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 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|