Вопрос к самым умным людям
Добрый день, программисты!
Столкнулся с желанием сделать приложение, с помощью которого из заданных пользователем значений оно помогает выбрать одно. (C++, VS 2019)
"Красота то какая".
Ну так вот. Есть массив, через цикл забиваем его значениями. Допустим, Ауди, БМВ, Альфа Ромео, Додж, Линкольн, Ситроен. Далее я начинаю тупить. Нужно перемешать массив, выбрать попарно из него элементы. БМВ или Додж? Додж. Альфа Ромео или Ауди? Альфа Ромео. Два победителя, два выбывших. Удалить БМВ и Ауди, оставить Додж и Альфа Ромео. Альфа Ромео или Ситроен?... Ну и так далее. Пока не останется один.
Подскажите/Научите? Очень было бы полезно научиться такие писать самому.
Спасибо.
Топ-5 моих любимых плагинов для Visual Studio Code
Для тех, кто не в курсе, Visual Studio Code – это бесплатный и кроссплатформенный текстовый редактор, созданный компанией Microsoft. Он достаточно быстро стал «народным любимцем», ввиду его высокой производительности и обильного функционала.
1. Live Server
По умолчанию, Visual Studio Code не предусматривает возможности открывать файл в любом выбранном браузере. Данное расширение не только добавляет функцию Открыть в браузере по умолчанию, но также позволяет открывать файлы в любом имеющемся у вас браузере.
2. Quokka
Quokka – это утилита, дающая вам возможность предварительного просмотра результата выполнения того или иного куска кода. Она выдает вам результаты выполнения функций и посчитанные значения переменных. Расширение легко настроить, и оно запускается из того же ящика, что и JSX или Typescript проекты.
3.Color Info
Небольшой плагин, который даёт вам возможность получать краткую справку об используемых в CSS цветах. Наведя курсор на название цвета, вы можете увидеть, как этот цвет выглядит, а также получить всю информацию о трансляции данного цвета в разные форматы (hex, rgb, hsl и cmyk).
4. CSS Peek
С этим плагином вы можете отслеживать определения CSS классов и id таблиц стилей. Для этого просто достаточно кликнуть правой кнопкой мыши на селектор в вашем HTML файле и воспользоваться функцией Перейти к определению или Подсмотреть определение.
5. HTML Boilerplate
Это расширение упрощает работу с HTML файлами, избавляя вас от необходимости прописывать теги head и body вручную. Просто наберите в пустом файле html, нажмите на Tab, и VS Code сам сгенерирует шаблон вашего документа.
P.s Если тебе IT тематика, и ты хочешь больше контента на тему IT то можешь подписаться на Telegram канал: t.me/AlphaCodeJS
Книги Visual Studio 2008 и C# .NET 3.5
Книжки даром, отправлю почтой, пересылку оплачу.
Телеграм для связи https://t.me/WeightGain4000
UPD: Забрали обе.
Visual Studio
Решил поучиться C#, но столкнулся с проблемой что не могу найти консоль, искал в интернете, но там ничего нормального так и не нашел, кто нибудь знает где она?
Дневник разработки моей игры(пока без названия)
Приветствую всех! Это дневник разработки моей игры (или дневник разработчика. Кстати, как правильно?). Для начала стоит рассказать, как у меня появилась идея делать эту игру. Если вас это не интересует сразу можете переходить к пункту «Начало Разработки» или «Идея» если вы хотите понять основную идею игры.
Появления идеи.
Некоторые возможно знакомы с серий игр King’s Bounty (ну та, что от Katauri), так вот пару месяцев назад я занимался перепрохождением этих игр, я также увлекся историей разработки это игры, я мне захотелось сделать что-то подобное. Но как это обычно бывает, так ничего я и не начал.
Через некоторое время мне повезло: один мой знакомый попросил меня, помочь ему решить его проблему с программированием. Эта просьба заставила меня вспомнить, что такое программирование. Мне пришлось заново накатить Visual Studio, что помочь ему. Конечно, я мог отказать ему, но тогда это бы не побудило меня создать собственный проект.
Через некоторое время, когда проблема была решена, у меня начали появляться идея создать игру. Мысли из-за недавно пройденной King’s Bounty еще сильнее побуждали меня к разработке. Тогда я еще не был уверен в своих силах, поэтому я решил поиграться с Visual Studio и консолью.
С моими успехами в выводе текста, моя уверенность повысилась (знаю звучит глупо), и я решил начать разработку идеи игры. Лично для меня писать сюжет и идею игры на бумаге или в Word очень скучно, так что я решил начать с написания кода, параллельно придумывая игру (с помощью такого метода я много раз пытался сделать игру, но всегда не удачно, впрочем, это меня не остановило).
Идея.
Тип моей игры – ролевая RPG. У меня всегда была мечта создать свою фэнтезийную игру, и вот мне снова предоставился шанс. На момент начала разработки в моей голове не было как такого сюжета, я думал, что, когда движок игры будет готов сюжет будет придумать не сложно.
Сразу после обдумывания идея и у меня появилась проблема связанная с графическим оформление игры. Проблема с графикой очень частая проблема для меня при разработке игр. Решение было необычное, пугающее и очень-очень странное – делать консольную игру. Не в смысле игру для консолей типа PS или Xbox, а игру для cmd, консоли в Windows. Решение необычное, но оно убирало множество проблем, например системные требования: такая игра пойдет даже на микроволновку.
Начало разработки.
Язык, на котором я буду писать – C#. Я выбрал его т. к. у меня уже был опыт работы с ним, и я считаю его очень удобным.
Так как на момент начала разработки у меня не было основной идеи игры, я решил начать с создания классов, которые в будущем сыграю важную роль в игре.
Первым классов в это проекте был IntelligentWriter. Он должен существенно упрощал работу с консолью, и добавлял новые методы. Основные: WriteDelay (этот метод занимается плавным выводом текста на консоль, скорость вывода можно настроить), WriteDialog (занимается выводом текста на консоль с использование имени персонажа, может работать с задержкой), WriteList (метод, который выводит список, он был специально разработан для работы в команде с IntelligentReader).
IntelligentReader.
Класс, отвечающий за более качественное считывание нажатий клавиш. Сказать мне, о нем в принципе нечего, так что идем дальше.
Отрисовка карты.
Отрисовка карты в консоли — это еще одна интересная идея. За нее отвечает класс IntelligentDrawer. Вы скажите мне, что я поехал головой, но давайте я вам объясню, как это работает.
У нас есть специальные метод, который создает двумерный массив char. Этот массив и есть наша карта. Наш метод далее наполняет массив символами, вот, например символы, которые я использовал для отрисовки границ карты: ‘┌’ ‘┐’ ‘└’ ‘┘’ и т. д. Когда наш персонаж будет каким-либо образом менять свое положение на карте мы будет отчищать консоль, а затем заново отрисовывать карту.
Персонаж.
Изначально, я придумал небольшую систему для персонажа. Потом я ее переделал, и она стала более удобной. Но сейчас я вам расскажу про первую версию этой системы.
Наш персонаж имеет в себе переменные: x и y. Они обозначают координаты. Когда персонаж меняет свое положение, IntelligentDrawer перерисовывает карту с учетом изменений. Здесь вроде бы все просто. То есть персонаж это просто мешок с камнями, который может перемещаться.
Конец.
К сожалению, этот пост подходит к концу. Здесь я попытался рассказать про мою игру, то, как я ее придумал и как начал над ней работать.
Возможно, этот пост показался вам затянутым, или очень маленьким для дневника разработки. Пишите свою комментарии, я все прочитаю и обязательно отвечу.
Извиняюсь за отсутствие скриншотов. Так как я уже не люблю сохранять старый код или результаты работы старого кода, то я не могу предоставить вам ничего. Я еще не полностью изложил идею игры, так что если мои дневники разработки заинтересуют кого-то, то я с радостью продолжу их писать.
Всем спасибо за потраченное время!
Автоцензор. Сборка проекта с OpenCV в Visual Studio 2019
Доброго времени суток. Вот и вторая часть цикла образовательных видео по OpenCV. Подразумевается, что вы уже знаете хотя бы основы языка программирования С++. Иначе вряд ли наши видео окажутся актуальными для вас. В текущем видео показывается, как собрать проект. В предыдущем, которое вы можете найти в моих сообщениях или на канале, -- вводные слова, где взять OpenCV и т.д. В следующем -- Hello World OpenCV. Оно уже есть на канале. На Пикабу выложу потом. Второе видео так-то оказалось готово ещё две недели назад, просто сюда я забыл пост написать. Спасибо за внимание. Приятного(надеюсь) просмотра.
Шифруем файл через Visual Basic 2010
У меня на компьютере не установлен антивирус, а пароли хранятся в файле. Решил защитить шифрованием. Но бесплатных программ не нашёл. Думаю, уж лучше сделать свою. Хотел попробовать на C#, но среду разработки устанавливать - одна морока)) Если кто хочет этим заниматься, переходите по ссылке. А я - потом.
А пока - на Visual Basic:
Public Sub encrypt(ByVal Pass As String, ByVal InputFile As String, ByVal OutputFile As String, ByVal Crypt As Boolean)
Dim ByteIN As Byte() = IO.File.ReadAllBytes(InputFile), ByteOut(ByteIN.Length - 1) As Byte, PL As Integer = Pass.Length, bPass() As Byte = System.Text.ASCIIEncoding.ASCII.GetBytes(Pass), biPass(bPass.Length - 1) As Integer
bPass.CopyTo(biPass, 0)
If Crypt Then
For i As Integer = 0 To ByteIN.Length - 1
ByteOut(i) = (ByteIN(i) + biPass(i Mod PL)) Mod 256
Next
Else
For i As Integer = 0 To ByteIN.Length - 1
ByteOut(i) = (256 + ByteIN(i) - biPass(i Mod PL)) Mod 256
Next
End If
IO.File.WriteAllBytes(OutputFile, ByteOut)
End Sub
Function B(ByVal S As Char, ByVal Inp As Byte, ByVal Crypt As Boolean) As Byte
If Crypt Then
Return IIf(Inp + Asc(S) > 225, Inp + Asc(S) - 256, Inp + Asc(S))
Else
Return IIf(Inp - Asc(S) < 0, 256 + Inp - Asc(S), Inp - Asc(S))
End If
End Function
Шифрует просто замечательно. Побитно. Я один раз файл pic.png зашифровал в pic2.jpg и потом расшифровал в pic3.bmp. Конвертирует довольно хорошо. А ещё может сделать из exzeshnik.exe exzeshnik.txt и наоборот.
Кстати, после шифрования надо убить входной файл командой Kill(<файл>). В приведённом коде это не предусмотрено, это надо сделать после вызова процедуры encrypt() c необходимыми параметрами. Объясняю, что за параметры:
Pass - код шифрования;
InputFile - входной файл (который будет зашифрован);
OutputFile - выходной файл (путь и имя того файла, который получится, чтобы сохранить его);
Crypt - шифровать или расшифровывать. При значении True InputFile будет зашифрован и результат будет сохранён в OutputFile, а при значении False зашифрованный InputFile будет расшифрован и результат будет сохранён в OutputFile.
Итак, вызываем encrypt() с объяснёнными выше параметрами, убиваем входной файл - и всё. У меня получился такой шифратор:
Кто заинтересовался - посмотрите видос: