Ответы пользователя по тегу C#
  • Как исправить- пытаюсь двигать bitmap по полю?

    @Myclass
    case Keys.Left:
                        image5 = new Bitmap(@"C:\Users\MAKSIM\source\repos\LoadLevel\WindowsFormsApp5\Image\left.png");
                        g.DrawImage(image3, posSX * 32, posSY * 32);
                        g.DrawImage(image5, posSX * 32 - 32, posSY * 32);
                        posSX -= 1;
    
                        if (coordBoll[posSX, posSY] == 2)
                        {                     
                            for (int j = 0; j < height; j++)
                            {
                                for (int i = 0; i < width; i++)
                                {
                                    g.DrawImage(image2, posSX * 32 - 32, posSY * 32);
                                }
                            }
                        }
    
                        g.DrawImage(image2, posSX * 32 - 32, posSY * 32); // а зачем в условии эта последняя строчка с прорисованием image2 вновь....
                        break;


    а зачем в условии эта последняя строчка с прорисованием image2 вновь....

    И ещё. Я совсем не понял два этих вложенных в друг-друга цикла. Ведь они никак не влияют ни на что. Зачем они?

    И ещё. Я конечно не специалист по играм, но я-бы в голове (памяти) держал-бы сетку с координатами и прорисовка элементов была-бы независима от количества пикселей в одной клетке (32), что-бы мочь всегда скалировать.
    Ответ написан
    1 комментарий
  • Как распознавать русскую речь с помощью c#?

    @Myclass
    Напиши своё API. Но ведь это тоже не в твоём плане. Какой-то кривой вопрос. Тебе не кажется?
    Ответ написан
    Комментировать
  • Рациональность кода C#?

    @Myclass
    Конечно после просмотра тысячи разных вещей хочется сказать. И про не-модульность в твоём коде, и про неиспользования констант, которые уже своим использованием делаю ненужное комментирование кода итд. Но. Для прототипа- нормально. И то, что рефлектируешь собой созданное- тоже хорошо.
    Ответ написан
    Комментировать
  • Как хранить настройки программы без внешних файлов (C#)?

    @Myclass
    Не совсем понятно, кто вводит эти настройки? На каждом компьютере свои? Сколько таких компьютеров? Нельзя на уровне комплиляции создавать каждому компу свою версию exe-шника? Ведь так намного проще - разные виды создаются в одном месте. После каких-либо новых функций создаётся например 100 копий этого exe. Для каждого компа - своя. От-туда и раскидывается по компам уже в готовом формате. Такой процесс можно автоматизировать. И все разные конфигурации сохраняются тоже центрально. В файле или базе данных - на усмотрение.
    Ответ написан
    Комментировать
  • Можно ли удалить повторяющиеся элементы из маcсива написав меньше кода чем я?

    @Myclass
    Переделанный Counting Sort подошел думаю лучше.
    Ответ написан
    Комментировать
  • Как оптимизировать поиск совпадений в большом .txt файле?

    @Myclass
    Может быть я ошибаюсь, но прочитал ваши другие вопросы как например этот "Есть ли сервис для сбора данных от Python скрипта?", где вы от "друзей" хотели получать автоматически данные, после того, как ваш exe у них стартует. Сейчас - 40х млн. паролей. Ваши действия на что-то смахивают....
    Ответ написан
    2 комментария
  • Как сформировать массив из тех положительных элементов исходного массива, которые расположены в порядке возрастания?

    @Myclass
    странная какая-то формула a[i] > 0 && a[i] < a[i + 1] && a[i + 1] > 0,
    для цифры 3 все условия выполняются, но ведь для цифры 4 - нет. Тк. след. после нёё цифра -5 а для неё не выполняется условие а[i + 1] > 0 - те. условие не подходит для ожидаемого результата.

    Вот другой вариант. Положительное знаение вставляется всегда во второй массив, но counter для следующего значения увиличивается только тогда, когда условия "слева меньше чем справа" выполняются. Иначе count остаётся на месте и при след. положительном числе элемент массива переписывается новым значением.

    ну где-то так:

    int s = 0;
                for (int i = 0; i < n; i++)
                {
                    if (a[i] > 0)
                    {
                        b[s] = a[i];
                      	if ( (s==0) || (s > 0 && b[s-1] < b[s]) )
                        {
                          s++;
                        }
                    }
                }


    не надо забывать, что последний элемент в массиве b - не есть часть правильного ответа. Элементы b индексом меньше
    Ответ написан
    1 комментарий
  • Какие отличие между значимыми и ссылочными типами? Зачем придумали такое разделение? Нельзя было придумать только либо значимые либо ссылочные?

    @Myclass
    ответ кроется в самой сущности. Сохранить переменную byte, int, double word или адресс - для этого понадобиться всего-то навсего байт, два байта, ну или столько, сколько на сегодня актуально - например 8 байтов (64 Bit).
    Это всегда более менее легко организовать. Например тот-же int array с его элементами. Они все чинно лежат друг за другом. Если идёт разговор о сложных структурах, начиная со string, то там уже проще сохранять и организовывать адресса для тех мест, где на самом деле лежат эти структуры.

    И всё - нет никакого злого умысла или тупости. Всё сделано для простоты организации всех этих вещей и легкости справлятся с такими задачами, как создавание переменных/обьектов, их видоизменения и удаления.

    Так-же как и с Carbadge Collection. Тратить время на "точное" удаление обьектов из памяти во время работы программы - свою программу не уважать. Но здесь распределение действий, а в вашем вопросе распределение мест.
    Ответ написан
    8 комментариев
  • Нюансы между двумя конструкциями инициализация?

    @Myclass
    А зачем второе делать? Ведь тем, что передаётся значение как параметр, то создаётся string по любому, а потом переобразовывается , те используется конструктором - опять в string. Хотя может быть для компайлера разницы нет.
    Ответ написан
  • Как исправить ошибку?

    @Myclass
    А можете по возможности весь класс показать? Хотя бы фунции с их параметрами. Почему то думаю, что вы эту функцию переопределили, поэтому и ошибку выдаёт. Из вашего текста причину ошибки не определить.
    Ответ написан
  • Может есть сборник готовых объектов для создания dashboard на c#?

    @Myclass
    А лицензионные контролы вам не подходят? Хотите сами всё с нуля писать? В принципе всё возможно, но я посоветовал-бы вам подумать - а стоит оно того? Я как-то создавал с нуля контролы, которых в помине нигде нет, вот это было интересно. А повторять то, что уже создавалось 1000 и один раз - я-бы не делал.

    после пары секунд поиска в инете

    или вы хотите полностью бесплатно :(
    Ответ написан
  • Поменять местами 1ый отрицательный и последний положительный элементы в матрице. Как исправить ошибку?

    @Myclass
    Не сильно вдавался в логику, но что сразу бросилось в глаза, то что переменная indexOfPositiveElement получает инит.значеие -1, и потом по всяким проверкам может и не изменится. После этого вы проверяете её на меньше или равно нулю. И в этом случае даже без того, что вы обнаружили положительный эелемент, вы всё равно хотите переставлять значения. Тоже самое и с переменной indexOfNegativeElement. Оба места я отметил жирным шрифтом.

    if (indexOfNegativeElement >= 0 && indexOfPositiveElement <= 0)
    {
    int temp = mas[indexOfNegativeElement];
    mas[indexOfNegativeElement] = mas[indexOfPositiveElement];
    mas[indexOfPositiveElement] = temp;
    }
    listBox2.Items.Add(mas[i].ToString());

    if (indexOfNegativeElement <= 0 && indexOfPositiveElement >= 0)
    {
    int temp = mas[indexOfNegativeElement];
    mas[indexOfNegativeElement] = mas[indexOfPositiveElement];
    mas[indexOfPositiveElement] = temp;
    }
    listBox2.Items.Add(mas[i].ToString());


    А вообще я посоветовал-бы вам названия кнопок и листков итд. называть так, что они из себя представляют. Т.е. кнопка например или "btnSwapPairItems", или если не комильфо без ""btn. Это первое. Второе, у вас есть в этой функции одно и то-же повторяющее действие. Выведите его в отдельную функцию. Например назовите её "SwapPairItemsInList" и передайте ей параметры первого и второго элемента, которые должны быть переставлены и вызывайте эту функцию кадый раз (здесь уже два раза), когда надо переставить два елемента. Если такое повторяется не только в этом окне и не только с этим списком, а в 100 других местах, то выведите эту функцию в отдельный класс и увеличьте параметер этой фукции ещё одним - Reference на этот лист-контроль. И всё - вам никогда больше не надо будет ручками это опять набивать. Жалейте своё время.

    После просмотра обратил ещё на одну вещь внимание. Никогда не используйте просто числа, как у вас в циклах проверок. Все эти 9 и 10 - сегодня вы знаете, почему 9 и 10, завтра - нет. Сегодня 9, завтра 900. Вам что весь код переписывать. Для таких вещей всегда используйте константы или именно в этом окне, если это значение играет роль не только в этом окне, но и в других выводите в отдельный класс со всеми константами по этой тематике. Обзываете её например " public const Int32 MaxItemsInSwapList = 9", и используйте её здесь в функции и всё - и через 9 лет вы в курсе, что эта 9 значит. Или, если 10 или 9 вообще не играют никакой роли, то тогда опрашивайте количество элементов в списке, перед тем, как пробегаете все значения этого списка....., но не числа.
    Ответ написан
    Комментировать