БлогNot. Блог ПерСа

c++ игра программирование random ретро числа математика алгоритм графика studio цвет шахматы реклама литература textprocessing word поиск ошибка форматы язык общество россия деградация css html вебдезигн учебное статистика видео дата деньги новосибирск медицина личное политика афоризмы перепост стихи список эволюция яндекс google социалки люди преступление война геноцид эмоции мошенничество музыка все теги все комментарии свежие изменения


[1-15] [16-30] ... [2551-2565] [2566-2569]


Прикреплённое сообщение, правила и всё такое

Остеклить балкон, лоджию в Новосибирске? Проверено, Вам сюда

Encoding: UTF-8 (Unicode). Primary language: Russian. Для полноценной работы блога нужны включённые в браузере картинки + Javascript + Cookies. Ссылки, открывающие новое окно (вкладку), везде подсвечены.

Даже по законам Эрефии этот блог - не СМИ, все сообщения выражают личную точку зрения автора блога и являются оценочными суждениями, при этом любые совпадения мест, имён, названий и действующих лиц далеко не случайны. В блоге нет файлов, способных нанести вред Вашему компьютеру или мобильному устройству. Если Вам не исполнилось 18+, срочно отвалите отсюда, прикиньтесь ветошью и не отсвечивайте покиньте этот блог. Учтите, что читая его, Вы вторгаетесь на мою личную территорию :) Страница статьидалее...
19.01.2038, 15:15 [13114]


Пишем и решаем игру в 15

"Пятнашки", ошибочно приписываемые Сэмюелу Лойду - игра не менее классическая, чем "Вампус", и программки для неё, конечно, писал почти каждый действующий программист на Земле :)

Ниже показана игра в 15 для консоли C++ (проверялась в актуальной версии Visual Studio 2019), позволяющая как сыграть "вручную", так и поискать решение автоматически.

Так как изначально генерируется правильная расстановка, а затем квадратики перемешиваются, решение должно существовать всегда. Константа MIX_NUMBER сознательно выставлена в небольшое значение, чтобы решения находились быстро. Если хотите "нерешалки", поставьте там, например, 1000. Класс игры позволяет вводить номера передвигаемых квадратиков в качестве ходов и проверяет корректность ввода данных.

Класс решалки куда более "эзотеричен", вообще говоря, он требует, чтобы была 64-битная платформа (sizeof(unsigned long long) == 8), а процесс решения может оказаться длинным при большом значении MIX_NUMBER. Для краткости решалка выдаёт порядок ходов в виде цепочки символов "l" (переместить квадратик слева от пустой клетки), "u" (сверху), "r" (справа) и "d" (снизу). Страница статьидалее...
22.10.2020, 15:44 [38]


Факториал от большого числа

Верно ли, что факториал от значения 2020 равен числу из этого файла (число нужно мысленно вытянуть в строчку) или нашему алгоритму просто не хватает возможностей даже на такое значение? Думается, что реализованное "школьное" умножение всё-таки других ограничений, кроме размера буфера, не имеет.

Для факториала от 100, по крайней мере, всё похоже:

Factorial from 100=
93326215443944152681699238856266700490715968264381621468592963895217599993229915
608941463976156518286253697920827223758251185210916864000000000000000000000000
Stirling's formula: 9.32485e+157

Проверка (имеющая смысл только для достаточно больших чисел) делается через главный член формулы Стирлинга, но для 2020 она, конечно, уже благополучно выдаст бесконечность.

Ниже приводится листинг консольной программы на C++, проверенной в Visual Studio 2019. Страница статьидалее...
22.10.2020, 12:29 [24]


Visual C++: изменяем интенсивности RGB для загруженной в приложение картинки

Небольшая утилитка позволяет отдельно изменить интенсивности красной, зелёной и синей цветовых компонент изображения, код вычисляет новые цвета пикселей на основе значений из трёх "бегунков" TrackBar, примерно вот так:

 if (!pictureBox1->Image) return;
 Bitmap^ bitmap1 = gcnew Bitmap(pictureBox1->Image);
 for (int x = 0; x < bitmap1->Width; x++) {
  for (int y = 0; y < bitmap1->Height; y++) {
   Color pixelColor = bitmap1->GetPixel(x, y);
   int R = pixelColor.R + pixelColor.R * trackBar1->Value / 100.;
   int G = pixelColor.G + pixelColor.G * trackBar2->Value / 100.;
   int B = pixelColor.B + pixelColor.B * trackBar3->Value / 100.;
   R = System::Math::Max(R, 0); R = System::Math::Min(R, 255);
   G = System::Math::Max(G, 0); G = System::Math::Min(G, 255);
   B = System::Math::Max(B, 0); B = System::Math::Min(B, 255);
   Color newColor = Color::FromArgb(R,G,B);
   bitmap1->SetPixel(x, y, newColor);
  }
 }
 pictureBox1->Image = bitmap1;

Можно сбросить рисунок к исходному состоянию и сохранить изменённый рисунок в формате PNG, JPEG или BMP.

Интерфейс построен как обычно в таких случаях на PictureBox, помещённом на Panel. Следует помнить, что стандартный SetPixel в .NET - не самое быстрое решение из возможных.

Вот скриншот приложения в работе, а далее прикреплён проект, написанный на C++/CLI в Visual Studio 2019. Страница статьидалее...
21.10.2020, 14:11 [26]


Матчу - быть!

Инсайд от действующего чемпиона мира по шахматам Пьера Собаккина:

В декабре я буду играть новый матч на первенство мира. С программой Stockfish 11. В ближайшем выпуске "Альманаха" (это будет №5) я объявлю все детали - положение о матче, дату начала, расписание, состав оргкомитета, состав штаба чемпиона и пр.

(...)

Я и сам сперва хотел выбрать Stockfish 12... но отбор проходил 11, и я думаю, что принципиальнее в таком случае с ним и играть.

Полагаю, что это будет истинное торжество православия шахматного мастерства и спортивного принципа. Это вам не жалкий и постоянно переносимый турнир претендентов Сортира!

По предварительным сведениям, будет играться 2 партии в неделю, по средам и субботам. Штаб Пьера Собаккина выражает уверенность в победе действующего чемпиона. Страница статьидалее...
20.10.2020, 21:08 [35]


Ударения в UTF-8

Увы, на вебе по-прежнему проще всего подчеркнуть нужную букву - индексации поисковиком, обычно исключающей теги, это не помешает, ты не лепишь в слово символы чужого языка (если вставлять "расширенные" символы из таблиц Юникода) или некрасивую большУю.

Что со стандартным символом ударения? А ничего, его по-прежнему и Блокнот, и Notepad++ отображают криво:

ударение всё ещё отображается после символа а не над ним
ударение всё ещё отображается после символа а не над ним

Точней, ударение отображается криво, как минимум, в моноширинных шрифтах, таких как Courier New, а именно они всегда установлены по умолчанию в редакторах кода или неформатированного текста. Страница статьидалее...
18.10.2020, 15:47 [29]


Сплошные открытия

100 дней протестов в Хабаровске. Чудо-город всё-таки.

Кудрин "открыл", что последнее десятилетие куда хуже брежневского "застоя", а основные причины - "большой госсектор и слабая конкуренция".

Меж тем, проблема даже не в госсекторе самом по себе, а в фактическом отсутствии на данной территории государства в любом из его классических пониманий, когда открыто обсуждаемые общественные противоречия заставляют людей вырабатывать законы и даже порой соблюдать их. Нет и государства монархического или аристократического, когда элита правит, опираясь на наёмников. В РФ наёмники преданы нанимателям куда меньше, чем достаточно для удержания ситуации под контролем, социальное неравенство слишком велико, а сформированная в 90-е "элита" слишком молода и мала, чтобы реально что-то контролировать.

Фактически, мы имеем квазигосударство, превращённое в частную собственность кучки воров и негодяев, такого в истории крупных держав и впрямь давно не было.

Чеченцы режут головы не только в РФ, но там террористов просто пристреливают. Между тем, Бобокулова, вероятнее всего, уже на свободе, а сожжённую ей квартиру, где она отрезала голову ребёнку, купили её же родственники "на добрую память" о совершённом их родственницей акте шахады. Хозяевам квартиры Мещеряковым собранных пожертвований едва хватило на покупку скромной однушки в том же самом районе.

Рекордная в РФ смертность от COVID за сутки, судя по демонстративному отсутствию каких бы то ни было мер, власти открыли для себя COVID как фактор "стабилизации" и заодно "оптимизации" пенсионного и других фондов. Страница статьидалее...
18.10.2020, 10:19 [39]


Концентрические окружности на CSS

Если нужно только 3 цвета, помочь может небольшой трюк с рамкой border, отступом padding и фоновым цветом.

Эти окружности получены вот такой разметкой HTML+CSS: Страница статьидалее...
17.10.2020, 17:50 [38]


Простейший макет сайта в 2 колонки

Этот простой учебный макет использует вертикальное меню блочных ссылок, прижатое влево свойством float и обычное вложение блоков по принципу "обёртка-контент", позволяющее растянуть двухколоночный макет вниз, а также задать ему минимальную высоту.

Ниже показана разметка файлов index.html и styles.css, предположительно имеющих кодировку Юникода UTF-8 и сохранённых в одной папке.

Валидаторы HTML и CSS считают код корректным, стиль подробно закомментирован. Страница статьидалее...
17.10.2020, 14:56 [39]


Ставангер-2020: первый живой турнир чумного времени

Первый (пост)ковидный "очный" топ-турнир в Ставангере собрал на этот раз всего 6 гроссмейстеров. Играют без масок и перчаток, как в старые добрые времена. Необычен регламент - если основная партия (120 минут с добавлением 10 секунд на ход начиная с 41-го) завершается вничью, то следом проводится Армагеддон с тем же цветом фигур (10 минут против 7 с добавлением секунды на ход, начиная с 41-го). За победу в основной партии при этом начисляется 3 очка, в Армагеддоне – 1.5, за поражение в Армагеддоне – 1 очко, за поражение в основной партии – ноль. Соглашение на ничью до 30-го хода запрещено.

Время начала трансляций - 18 ч. Мск (22 Нск), неудобно, учитывая ранние подъёмы, поэтому почти не смотрю.

В целом же - "классика", может, и умирает, но ещё помучается. Организаторы даже не слишком испортили качество игры необычным Армагеддоном. При моём невысоком шахматном уровне, я затрудняюсь точно сформулировать отличие от коротких форматов, но игра воспринимается по-другому - как более логичная и качественная, что ли. Плюс никаких искусственных проблем с дисконнектами, mouse slip и т.п.

Отмечу в этой заметке запомнившиеся моменты турнира, если таковые будут. Страница статьидалее...
11.10.2020, 14:01 [64]


Мистика, статистика, #знакибед

Особой подлостью этого ковидного года была дата начала моих болезней - 15 сентября.

Как наверняка неизвестно читателям этого блога, 16 сентября 1990 года я познакомился со своей первой любовью, 16 сентября 1994 - с первой женой, 16 сентября 1998 - со второй женой (прости, Одька, но с тобой - 16 июня того же), а 16 сентября 2003 - скажем так, с одной подругой дней моих суровых, привет, Света.

Наученный горьким опытом обезьян, которых бьют электрическим током за несостоявшийся банан, накануне Светлого Дня я ровным счётом ничего не ждал от 16 сентября 2020-го, и эта-то расслабленность сыграла со мной злую роль. Ещё в полночь на 16-е сентября торкнуло по полной, как только я смирился и поплыл по течению. Страница статьидалее...
10.10.2020, 01:59 [68]


CSS: рисунок тянется точно по размерам раздела

Наверное, наиболее простым представляется типовое решение с разделом-обёрткой и вложенным разделом для контента. Ниже показан код и результат его работы. Вместо 400x300 можно указать любые другие размеры. Страница статьидалее...
07.10.2020, 09:48 [44]


Когда люди всё время выбирают по принципу меньшего зла, они получают только большее зло

Наверняка не мной первым сказано, но право же заслуживает отдельного заголовка :) А чтобы заметка была не пустой и я мог заодно очистить лог, добавлю сюда пару незаконченных автоцитат и диалогов.

Итак, чтобы выжить на не слишком упавшем уровне, этой осенью надо совершать уже примерно в полтора раза больше телодвижений, а это очень много.

Почти незаметно для пенсионера, терпимо для трудящегося, плохо переносимо для детей, невыносимо для людей творческих.

Ждём особенно ярких проявлений б***ства, шкурности и продажности от тех, кто слаб, заранее не осуждаем их за это.

Не только потерявшая берега соловьёвоподобная погань, но и более-менее адекватные люди стали грубы и несдержаны.

Страница статьидалее...
24.09.2020, 13:15 [79]


Word: специальные символы и подстановочные знаки

В окне "Найти и заменить" Microsoft Word есть два типа подстановок - специальные символы и подстановочные знаки. Те и другие можно вводить в строки поиска и замены, включив используя список "Special" ("Специальный") в полностью открытом окне "Найти и заменить" (нажать комбинацию клавиш Ctrl+H, потом кнопку "Больше>>").

Специальные символы - это те, которых нет на клавиатуре или которые нельзя непосредственно вписать в строки поиска/замены, например, разрыв строки.

Если в окне поиска/замены включен чекбокс Use wildcards (Подстановочные знаки), то можно задавать достаточно сложные условия поиска и замены, потому что подстановчные знаки - это офисная реализация всё тех же регулярных выражений.

Чекбокс "Подстановочные знаки" в работе - убираем лишние пробелы в тексте
Чекбокс "Подстановочные знаки" в работе - убираем лишние пробелы в тексте

Некоторые символы и знаки можно использовать только в строке поиска, а некоторые — только в строке замены. При этом возможность применения части символов зависит от того, включен ли чекбокс Use wildcards (Подстановочные знаки).

Полный список подстановок в самом Word отсутствует или я его не нашёл, поэтому ниже приводится более-менее адекватный список, актуальный для всех версий Word плюс немного примеров.

Страница статьидалее...
24.09.2020, 10:16 [170]


А фирмы как люди...

Тучи как люди

"Иванушки International"

Всё-таки плохо, что компании не обязательно связаны с именами конкретных людей, и если о последних все понимают как они меняются, ветшают и продаются, то о компаниях многие склонны строить иллюзии, будто этот условный "Пердже" имеет хоть какое-то отношение к своему предку-юрлицу 50-летней давности.

Проще всего сказать об IT-компаниях, как наиболее мне понятных, но и везде так же.

1. Яндекс конца 90-х. Молодой амбициозный технократ, не просто мечтающий перевернуть мир, но реально делающий это, вбивая в замшелые мозги молящихся на газеты и ТВ совков идеи Поиска и Свободы.

2. Конец "нулевых" - начало 10-х. Капризный развращённый деньгами и влиянием нувориш, то и дело по прихоти щемящий подсевших на сервисы хомячков очередными внезапными и безумными барскими прихотями вроде закрытия лучших сервисов (1, 2), непрерывного изменения дезайнегов в худшую сторону и т.п.

3. Конец 10-х - начало 20-х. Окончательно рехнувшийся старый дегенерат, занимающийся вместо своего дела какими-то опасными для жизни грязными такси, где "лицензию" раздают вообще всем, аналогичными по качеству работы дебилами в жёлтом, волокущими рюкзаки с помойной жрачкой и т.п., уже не понимающий, что над ним просто смеются.

Компания Google прошла аналогичные этапы развития: Страница статьидалее...
23.09.2020, 00:44 [81]


[1-15] [16-30] ... [2551-2565] [2566-2569]