Выбрать книгу по жанру
Фантастика и фэнтези
- Боевая фантастика
- Героическая фантастика
- Городское фэнтези
- Готический роман
- Детективная фантастика
- Ироническая фантастика
- Ироническое фэнтези
- Историческое фэнтези
- Киберпанк
- Космическая фантастика
- Космоопера
- ЛитРПГ
- Мистика
- Научная фантастика
- Ненаучная фантастика
- Попаданцы
- Постапокалипсис
- Сказочная фантастика
- Социально-философская фантастика
- Стимпанк
- Технофэнтези
- Ужасы и мистика
- Фантастика: прочее
- Фэнтези
- Эпическая фантастика
- Юмористическая фантастика
- Юмористическое фэнтези
- Альтернативная история
Детективы и триллеры
- Боевики
- Дамский детективный роман
- Иронические детективы
- Исторические детективы
- Классические детективы
- Криминальные детективы
- Крутой детектив
- Маньяки
- Медицинский триллер
- Политические детективы
- Полицейские детективы
- Прочие Детективы
- Триллеры
- Шпионские детективы
Проза
- Афоризмы
- Военная проза
- Историческая проза
- Классическая проза
- Контркультура
- Магический реализм
- Новелла
- Повесть
- Проза прочее
- Рассказ
- Роман
- Русская классическая проза
- Семейный роман/Семейная сага
- Сентиментальная проза
- Советская классическая проза
- Современная проза
- Эпистолярная проза
- Эссе, очерк, этюд, набросок
- Феерия
Любовные романы
- Исторические любовные романы
- Короткие любовные романы
- Любовно-фантастические романы
- Остросюжетные любовные романы
- Порно
- Прочие любовные романы
- Слеш
- Современные любовные романы
- Эротика
- Фемслеш
Приключения
- Вестерны
- Исторические приключения
- Морские приключения
- Приключения про индейцев
- Природа и животные
- Прочие приключения
- Путешествия и география
Детские
- Детская образовательная литература
- Детская проза
- Детская фантастика
- Детские остросюжетные
- Детские приключения
- Детские стихи
- Детский фольклор
- Книга-игра
- Прочая детская литература
- Сказки
Поэзия и драматургия
- Басни
- Верлибры
- Визуальная поэзия
- В стихах
- Драматургия
- Лирика
- Палиндромы
- Песенная поэзия
- Поэзия
- Экспериментальная поэзия
- Эпическая поэзия
Старинная литература
- Античная литература
- Древневосточная литература
- Древнерусская литература
- Европейская старинная литература
- Мифы. Легенды. Эпос
- Прочая старинная литература
Научно-образовательная
- Альтернативная медицина
- Астрономия и космос
- Биология
- Биофизика
- Биохимия
- Ботаника
- Ветеринария
- Военная история
- Геология и география
- Государство и право
- Детская психология
- Зоология
- Иностранные языки
- История
- Культурология
- Литературоведение
- Математика
- Медицина
- Обществознание
- Органическая химия
- Педагогика
- Политика
- Прочая научная литература
- Психология
- Психотерапия и консультирование
- Религиоведение
- Рефераты
- Секс и семейная психология
- Технические науки
- Учебники
- Физика
- Физическая химия
- Философия
- Химия
- Шпаргалки
- Экология
- Юриспруденция
- Языкознание
- Аналитическая химия
Компьютеры и интернет
- Базы данных
- Интернет
- Компьютерное «железо»
- ОС и сети
- Программирование
- Программное обеспечение
- Прочая компьютерная литература
Справочная литература
Документальная литература
- Биографии и мемуары
- Военная документалистика
- Искусство и Дизайн
- Критика
- Научпоп
- Прочая документальная литература
- Публицистика
Религия и духовность
- Астрология
- Индуизм
- Православие
- Протестантизм
- Прочая религиозная литература
- Религия
- Самосовершенствование
- Христианство
- Эзотерика
- Язычество
- Хиромантия
Юмор
Дом и семья
- Домашние животные
- Здоровье и красота
- Кулинария
- Прочее домоводство
- Развлечения
- Сад и огород
- Сделай сам
- Спорт
- Хобби и ремесла
- Эротика и секс
Деловая литература
- Банковское дело
- Внешнеэкономическая деятельность
- Деловая литература
- Делопроизводство
- Корпоративная культура
- Личные финансы
- Малый бизнес
- Маркетинг, PR, реклама
- О бизнесе популярно
- Поиск работы, карьера
- Торговля
- Управление, подбор персонала
- Ценные бумаги, инвестиции
- Экономика
Жанр не определен
Техника
Прочее
Драматургия
Фольклор
Военное дело
Ретро бит 5 (СИ) - "Seva Soth" - Страница 22
Нога за ночь вроде бы отдохнула и отошла. И без фингала обошлось — быть может, я уже иммунитет к дробящему урону заработал после всех полученных чингасос? Это я к чему — сам, без помощи Линды, донес Эппл 2 в корпусе из-под телека до Тойоты. Лоурайдер выгонять из-под навеса не стал — нечего пугать всяких пожилых ведьм.
Дом Монти несколько изменился — я еще с улицы заметил яркие оранжевые занавески на шторах, а когда Синклер открыл нам с Линдой дверь и впустил, я едва не споткнулся о небрежно брошенные женские туфли на высокой платформе.
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-144', c: 4, b: 144})— Вы съехались с Селестой, да? — взгляд Линды подернулся особой романтической дымкой.
— Приветствую, друзья мои, — несколько степенно поздоровался Синклер. — У мисс Скай возникли проблемы с арендой и остаться в стороне стало бы поступком, противоречащим моему воспитанию. Я предложил Селесте занять одну из комнат. Увы, сейчас моя соседка на работе. У меня же пары начнутся лишь через несколько дней.
Полагаю, за аренду хиппи ему не платит. А потому парень обрадовался появлению блудного работодателя. Очень уж приветливо улыбался и даже Эппл 2, выглядящий как старый ТВ без кинескопа, у меня подхватил.
— Это компьютер, против которого я предлагаю сыграть твоему алгоритму, — пояснил я. — Не обращай внимания на странный внешний вид. У него долгая история.
— Понимаю. Хорошая идея для испытаний. Я вложил в работу много усилий, всё своё понимание шашек и дебютный материал, найденный в библиотеке. Не буду скрывать — мне интересна оценка моего труда.
Гостиная Синклера разительно переменилась. Во-первых — благовония, хиппи без них никуда. У окна, выходящего на дом Катценьяммера, образовался ворох подушек. Повсюду талисманы из ниток и птичьих перьев и живые цветы в горшочках. На стене вместо висевшего там ранее пейзажа появился крупный плакат «Благодарных мертвецов» со скелетом в сомбреро. Я видел их выступление на фестивале, но группа мне не очень понравилась. Прямо неприятия не возникло, но психоделический рок — не совсем моё.
— Мисс Скай внесла свои изменения в быт, — не теряя достоинства, пояснил Монти.
Совместными усилиями мы утащили телевизор из его гостиной в кабинет, дабы подключить мой Эппл 2 и устроить битву искусственных интеллектов.
Но начали с простой демонстрации. Запущенная Монти программа выглядела шедевром аскетизма — командная строка и всё.
— Из контекста нашей беседы я понял, что графическое оформление ты собираешься реализовать сам, а потому сделал ввод и вывод ходов в текстовом виде. Вот доска, на ней продублируем, — парень кивнул в сторону шахматного поля.
Я бы наоборот, не удержался от хотя бы примитивной визуализации доски. Мне, как игроку, сначала достались белые и для победы над компьютером моих навыков не хватило. Разгромлен, повержен, раздавлен и унижен. Поначалу я неплохо развивал свою позицию, но угодил в ловушку и комп сожрал сразу пять моих шашек. Что порадовало — очень быстрые ходы, без ожидания по полчаса. Секунд по 10–15 комп думал.
— Меня он тоже часто обыгрывает, — с легким стыдом признал Монтгомери.
Еще один матч — и я слился белыми.
— Можно, я попробую? — попросила Линда.
Тот же итог — безоговорочная победа компьютера. В целом понятно, почему. Вычислительных мощностей процессора Интел 8088 хватает, чтобы просчитывать довольно большую глубину ходов и выбирать лучшие. Все-таки шашки — это простая игра и вариативность в них совсем не та, что в шахматах. Пожалуй, для поставленных мной целей показанный результат даже излишен, но идея испытать написанный шахматным гением алгоритм мне глянулась очень интересной, а потому мы продолжили.
Вводить двум компьютерам ходы друг друга — дело нехитрое. Я занял место за клавиатурой Эппл 2, Монти — IBM, Линда у доски — передвигать фигуры, хотя это и не очень требовалось.
Первой стала заметна разница в быстродействии. Процессор у 5150 с почти в пять раз большей тактовой частотой и шестнадцатибитный. Там, где старичок Эппл 2 пыхтел над ходом минутами, IBM справлялся за десятки секунд. Надо ли уточнять, что шашечный алгоритм Монти одержал полную и разгромную победу несмотря на то, что мы даже кофе успевали выпить, пока Чекерс Кинг раздумывал над ходом в режиме максимальной сложности с глубиной в 8 полуходов. То есть четыре полноценных хода. Один раз на добрых полчаса задумался. И все равно проиграл.
— Сколько полуходов просчитывает твой алгоритм? — спросил я.
— Двенадцать, — спокойным тоном ответил Монтгомери, как будто я про температуру за окном узнавал. — Я использовал алгоритм альфа-бета отсечения, усиленный моей собственной эвристической оценкой позиции, позволяющей заранее отбросить бесперспективные варианты. Кроме того, я схитрил и жестко прописал некоторые наиболее эффективные дебюты из шашечной теории, взятой из учебника. То есть там, где позиция совпадает с хорошо известной дебютной, программе ничего считать не нужно.
Я как будто при рождении Скайнета поприсутствовал.
— Покажи мне код, — попросил я, не спеша принимать задачу. Нужно убедиться хотя бы в том, что Синклер не забыл уровни сложности сделать и играть, как тупой новичок, его алгоритм также способен.
Монти вывел на экран монитора паскалевские исходники с дискеты и… более отвратительной «лапши» я не видел, наверное, ни у одного джуна. Просто поток сознания, излитый на монитор. Возможно, гениальный поток гениального сознания. Но всего моего опыта не хватало, чтобы понять что-то большее, чем «это код на Паскале и он производит некие вычисления». Да я не сразу разглядел даже самую тривиальную часть — место с парсингом ввода хода игрока.
Та самая «одна божественная процедура», которая делает всё. Большой кусок чего-то непонятного и неструктурированного. И он еще утверждает, что был лучшим по информатике? Академия Бель Эйр только что с грохотом покатилась вниз в моем рейтинге учебных заведений.
«Ну что, товарищи, коллектив у нас квалифицированный, работа проделана большая, у меня лично сомнений нет — это дело так не пойдёт!»
Глава 12
— Глядя на этот код, мне хочется вызвать копов, чтобы они отправили тебя за решетку за психологическое насилие над коллегами, — объявил я. — Спагетти, конечно, угодны Макаронному Монстру, но у тебя с ними перебор.
— Спагетти? Конкретику, пожалуйста, — не стушевался Монтгомери, — я адекватно воспринимаю критику. Наоборот, мне ее очень не хватает. Нанятые преподаватели, шахматные тренеры и школьные учителя все время меня хвалили и складывалось ощущение, что не всегда заслуженно. Льстили, лишь бы не терять заработок.
— Давай я расскажу основные принципы, которых придерживаюсь, а ты уже сам сделаешь выводы, что в твоей программе не так.
Как бы ни хотелось разнести его писанину в пух и прах — это не наш метод. Парня надо подтолкнуть не бросать программирование и развиваться в правильную сторону, а не самоутверждаться за его счет.
— Самое важное, что ты не учел, а преподаватели, скорее всего, не рассказывали, в том, что мы пишем код не только для компьютера, который будет его исполнять, но и для людей. Самого себя и других разработчиков — всех, кому предстоит читать и дорабатывать программу. Всегда пиши код так, будто поддерживать его будет склонный к насилию психопат, который знает, где ты живешь. Я не про себя, если что!
Линда не удержалась от тихого смешка. Да и Синклер понял, что угроза шуточная и широко улыбнулся.
— Пойдем сварим еще кофе, тут напрашивается целая лекция.
И я ее прочитал — про большую часть принципов организации кода, известных мне из опыта будущего. Пару раз пришлось себя одергивать, так как многое, те же SOLID, шло в контексте, неприменимом ни к голому процедурному необъектному Паскалю, ни к Си без плюсов. «Никакого ООП, никаких тебе классов»!
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-145', c: 4, b: 145})Но все одно рассказал самые базовые вещи вроде понятных имен переменных: это железяке-то все равно, а вот живому кодеру не нужно гадать, что значит какая-нибудь одинокая буква. Упомянул про избавление от «магических чисел» в пользу нормальных констант. Про чистые функции, которые всегда возвращают один и тот же результат при одинаковых аргументах. Про компактный код, не вылезающий за пределы одного экрана. О правильных комментариях, объясняющих, «почему» так написано, а не работающих капитаном Очевидность в духе «это счетчик цикла».
- Предыдущая
- 22/54
- Следующая
