C# обучение

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Статистика по задачам раздела «Консоль»

  • Всего решённых задач:  29
  • Решённых на 100% задач: 28
  • Запусков программ:  57
  • Написано строк кода:  409

Последние запуски программ

Дата Задача Результат
2015-07-08 20:54 Комбинаторика Счастливые билеты N 60 % 29 строк
2015-07-06 18:56 Комбинаторика Счастливые билеты 6 100 % 24 строки
2015-06-10 19:31 For-to-чки Сумма квадратов   13 строк
2015-06-04 16:29 Целые числа Отзыв 100 % 22 строки
2015-06-04 15:52 Целые числа Пирамида 100 % 21 строка
2015-06-04 15:33 Целые числа Пять чисел 100 % 17 строк
2015-06-04 14:59 Целые числа Деление 100 % 12 строк
2015-06-04 14:46 Целые числа Два числа 100 % 11 строк
2015-06-04 14:37 Целые числа Чтение 100 % 14 строк
2015-06-04 14:15 Целые числа Максима 100 % 16 строк
2015-06-04 13:56 Строки Trim/Start/End 100 % 12 строк
2015-05-15 19:23 Строки Starts/EndsWith 100 % 11 строк
2015-05-15 19:07 Строки Substring 100 % 12 строк
2015-05-15 17:44 Строки Replace 100 % 12 строк
2015-05-15 16:50 Строки PadRight/Left 100 % 17 строк
2015-05-15 15:46 Строки Remove 100 % 15 строк
2015-05-15 14:40 Строки Insert 100 % 11 строк
2015-05-15 14:33 Строки Last/IndexOf 100 % 10 строк
2015-05-15 14:16 Строки Contains 100 % 16 строк
2015-05-15 14:00 Строки ToLower/Upper 100 % 9 строк
2015-05-15 13:26 Строки Split 100 % 13 строк
2015-05-15 13:16 Строки Copy 100 % 12 строк
2015-05-10 19:15 Строки CompareTo 100 % 9 строк
2015-05-10 19:02 Строки Length 100 % 9 строк
2015-05-10 18:53 Семантика Китайская стена 100 % 11 строк
2015-05-09 23:52 Семантика Дедушка Эхо 100 % 11 строк
2015-05-09 23:47 Семантика Дядюшка Эхо 100 % 9 строк
2015-05-09 23:33 Семантика Считалка 100 % 13 строк
2015-05-09 23:31 Семантика Калькулятор 100 % 9 строк
2015-05-09 18:27 Семантика Привет, Мир! 100 % 9 строк
  Лирика Банкиры  
  Олимпиада Распаковка строк  
  Олимпиада Четырёхзначное число  
  Олимпиада Квадратная спираль  
  Динамика Счастливые билеты 20  
  Любимые циклы Барабанная дробь  
  Любимые циклы Гармония  
  pascal_for_1_norm 01  
  Олимпиада Трёхзначная головоломка  
  Олимпиада Котик Елены  

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Находить и исправлять недоделки в приложении. Проявлять фантазию))). Познакомился с сериализацией и десериализацией - ничего сложного и очень понравилось. Также могу сказать, что я понял одно из применений делегатов на практике.
Трудности: Самым сложным оказалось окончательно реализовать идею сохранения результатов игры. Подробности ниже:).
Что сделал/изменил в программе: 1. Исправил/доделал функцию сокращения линий шариков - ранее, при сокращении нескольких линий одновременно за 1 ход (т.е. одним шариком за 1 ход сокращается несколько линий), количество шариков, подлегаемых сокращению, подсчитывалось неправильно. Допустим, сокращается две линии - 5 шариков и 6 шариков - ранее, в массив удаляемых шариков записалось бы 11 шариков, что является неправильным. Или при сокращении линий из 5-ти и 5-ти шариков, в массив записалось бы 10 шариков. Правильно нужно было бы записать в первом случае в массив 10 шариков (11-1 шариков), а во втором случае 9 шариков. Так получается за счет того, что 1 шарик является общим для обоих линий, и он заносился в массив шариков дважды - с каждой линией по разу. Что самое интересное - на ход игры этот факт никак не влиял. Но мне для анимации прогресса игры в виде счета сокращенных линий (общее количество сокращенных шариков) это было критично. Поэтому пришлось переделать эту функциональность. 2. Добавил анимацию прогресса игры в виде счета сокращенных линий (общее количество сокращенных шариков) и отображения имени игрока. 3. Добавил "диалог" между программой и игроком при завершении игры с вопросами о сохранении игры и о создании новой игры. 4. Добавил возможность сохранения результата игры, статистику результатов сохраненных игр в виде таблицы рекордов, просмотр таблицы рекордов. Таблица рекордов автоматически сортируется при добавлении новой записи. Данная функциональность реализована в виде отдельного класса, специально для удобного интегрирования в другие приложения, требующие подобной функциональности. При реализации данной функциональности изначально хотел работать с пространством имен System.IO. В принципе все работало, но я захотел чтобы у меня был 1 файл, exe-шник и всё (чтобы нельзя было подделать таблицу рекордов через редактирование самого файла), но уперся в проблему, когда приложение во время выполнения пытается изменить само себя (ведь текстовый файл находится в ресурсах приложения). Долго бился с этим. В итоге вспомнил про сериализацию - в моем случае это является аналогом System.IO - также в итоге таблица рекордов сохраняется во внешний файл. НО - в итоге это вылилось в намного меньший объем кода, чем при использовании System.IO, и во внешний файл таблица рекордов записывается в виде потока байтов, что в самом файле выглядит в виде набора шестнадцатеричных чисел. Т.е. особо такой файл не подделаешь. Так, что я очень доволен своей работой!:)))


Научился: Абсолютно новому ничему. Закрепил навык размещения pictureBox'ов на panel'e. Данный способ мне кажется самым "полезным".
Трудности: Не запутаться во вложенных switch'ах.
С картинками у меня проблемы. Но я качаю Photoshop, сделаю в нем клевейшие шарики! Всё будет замечательно!:)) Ещё, кстати, я сделал, чтобы размер формы подстраивался под размер поля игры. Очень удобно получилось. 1 строчку написал - и теперь тебе всё равно на любые изменения с полем игры - всегда будет красиво и аккуратно.