Си шарп с нуля

Формула программиста
основатель — Волосатов Евгений Витольдович
Видео про Архитектуру Шахматного клиент-сервера.

Orange
  • Звание: Делегатор
  • Накопленный опыт: 218 часов
  • Баланс Мегахешей: собрано 0 Mh, потрачено 0 Mh
  • Баланс Байтов: нет
  • Не состоит в «Клубе формулистов»
  • Последний визит: 2017-12-03 17:09:33
  • Возраст: 41 год

Видеокурсы

Дата активности Видеокурс Прогресс
2016-06-04 java-start 1. Запуск 3 из 4 75 %
2016-06-04 java-write 2. Печать 1 из 3 34 %
2015-08-09 sokoban Сокобан 2 из 23 9 %
2014-10-29 task3 Комбинаторика 1 из 22 5 %
Итого: 7 из 52 14 %

Консольные задачи

Дата активности Консольный раздел Прогресс
2017-10-05 olimp Олимпиада 23 из 40 58 %
2016-01-07 task1g Целые задачи все 11 100 %
2015-02-25 task1h Цифры все 12 100 %
2015-02-19 task1c Лирика 13 из 14 93 %
2014-12-06 task2d For-to-чки 16 из 26 62 %
2014-11-26 task3 Комбинаторика все 9 100 %
2014-11-26 task3 Динамика все 3 100 %
2014-11-25 task2 Алгоритмика 9 из 20 45 %
2014-11-25 task2r Подпрограммы все 14 100 %
2014-11-25 task2b Логика 3 из 13 24 %
2014-11-25 task2k Последовательность 2 из 6 34 %
2014-11-25 task3 Рекурсия все 4 100 %
2014-11-24 task1b Строки все 14 100 %
2014-11-24 task2g Обман цикла 1 из 7 15 %
2014-11-24 task6 For-to-Цикл все 12 100 %
2014-11-24 task2s Строки 1 из 6 17 %
2014-11-24 task2e Пока-цикл 2 из 6 34 %
2014-11-24 task2m Любимые циклы 1 из 6 17 %
2014-11-24 task2i Узник цикла IF 5 из 6 84 %
2014-11-24 task2c Условный оператор 9 из 16 57 %
2014-11-24 task2o Матрёшки 1 из 9 12 %
2014-11-24 task2l Математика 1 из 9 12 %
2014-11-23 task1i Календарь 1 из 16 7 %
2014-11-23 task1d Формулы все 9 100 %
2014-11-23 z Вещественные числа все 1 100 %
2014-11-23 task1f Геометрия все 8 100 %
2014-11-23 task1e Символы все 5 100 %
2014-11-19 task1a Целые числа все 7 100 %
2014-10-22 task1 Семантика все 6 100 %
Итого: 203 из 315 65 %
Сохранить страницу:

2775. Orange
Orange
ответить
# Консоль / Олимпиада / Ширина сарая / 2017-09-27 20:21

на самом деле это самая сложная часть, так как нужно определить ширину сарая в каждой клетке за 2 прохода по строке.
один проход для всех левых границ и один для всех правых.
и для этого нужно использовать стек.
если же решать в лоб, то в поле 10000 x 10000 итоговая программа будет работать очень медленно.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  Orange  # Консоль / Олимпиада / Большой сарай / 2017-09-13 19:09

Верно. Нужно будет исправить.


2775. Orange
Orange
ответить
# Консоль / Олимпиада / Большой сарай / 2017-09-13 16:39

Не совсем точное описание:
"Далее на T строчках вводится координаты построек, по два числа X Y, каждое от 0 до 10000."
на самом деле задается Y X судя по картинке с примером.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  Orange   / 2017-06-25 00:23

Классное решение!


1. Евгений Волосатов
Евгений Волосатов
ответить
→  Orange   / 2017-06-25 00:22

Классное решение!


4004. Елена
Елена
ответить
→  Orange  # C# Четыре в ряд - Соревнование / Как протестировать ИИ / 2016-11-28 05:22

Хорошие советы, Orange. Жалко, что поздно их увидела. Возможно, это помогло бы моему боту "набраться силы" :)


10494. Алексей В.
Алексей В.
ответить

7119. Новопашин Владимир
Новопашин Владимир
ответить

10558. Иван Воронин
Иван Воронин
ответить
→  Orange  # C# Четыре в ряд - Соревнование / Как протестировать ИИ / 2016-11-27 04:38

Хорошие советы, пригодятся в будущем =)


9263. Андрей Н.
Андрей Н.
ответить
→  Orange  # C# Четыре в ряд - Соревнование / Как протестировать ИИ / 2016-11-26 22:10

Сделать игрока с функцией:
public int GetMove(...) => int.Parse(Console.ReadLine());
и можно тогда делать ходы ручным вводом, возможно действительно стоило об этом упомянуть в видео.


9263. Андрей Н.
Андрей Н.
ответить
→  Orange  # C# Четыре в ряд - Соревнование / Как протестировать ИИ / 2016-11-26 22:01

1, 2 - Для этого есть этот урок - можно вместо второго игрока запрашивать ввод с консоли.
Советы хороши, но, как говорится... да много как говорится, поговорок подходящих много.
Первый блин - комом. Одна голова хорошо, а две - лучше. Ложка хороша к обеду. И т.д.
3 - Здесь - да и с этим ничего не поделать.
То что сложно - да, поэтому особо не углублялся, лишь старался показать минимальный код, который позволит протестировать свою dll.
Комментарий дельный и полезный. Спасибо!


1. Евгений Волосатов
Евгений Волосатов
ответить
→  Orange  # C# Четыре в ряд - Соревнование / Как протестировать ИИ / 2016-11-26 20:47

Спасибо за дельные советы. Надеюсь, Андрей найдёт их для себя полезными.


2775. Orange
Orange
ответить
/ 2016-11-19 01:25

1. Женя, реально нет времени, когда дедлайн суббота или воскресенье и во сколько?
2. Андрей, стоило бы добавить в видео как дебажить dll, когда есть только внешняя прога, это не сложно, но для новичков может быть проблемой. Судя по количеству участников.
3. Конечно полный перебор не вариант, с учетом запрещенных позиций и симметрии их все равно очень много, но, уже в 1988 году нашли решение, например, Victor Allis не только прогу написал, но и целую диссертацию по этому поводу, и хотя там всего 9 правил, разбираться с ними времени нет, это реально очень долго.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  Orange  # C# Четыре в ряд - Соревнование / Как создать ИИ / 2016-11-18 10:09

Зачем тогда записался на этот курс, если нет времени разбираться?


9263. Андрей Н.
Андрей Н.
ответить
→  Orange  # C# Четыре в ряд - Соревнование / Как создать ИИ / 2016-11-18 07:30

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


9263. Андрей Н.
Андрей Н.
ответить
→  Orange  # C# Четыре в ряд - Соревнование / Как создать ИИ / 2016-11-18 07:26

О временных ограничениях я сначала думал, но потом решил от них уйти, так как непонятно сколько ставить - поставить 1 секунду, кому-то может вполне не хватить, поставить - больше? сколько тогда? 5? 10? 60?
С другой стороны, кто-то может впихнуть в своего бота бесконечный цикл, но я для себя решил, что таких мы просто вручную отсеим на предварительном этапе.
Чтобы посмотреть заголовок класса, метода, перечисления и прочего - нужно нажать F12, забыл сказать об это на видео, наверное.
По поводу того, то первый игрок всегда выигрывает - для человека может быть гораздо проще, а вот в коде это реализовать... Тут ведь даже мат конем и слоном покажется детским лепетом, здесь всего число комбинаций на доске ограничено сверху величиной 127^7 = 5.3*10^14 и в каждом случае до 7 вариантов хода, такое количество не то что перебрать во время игры, так даже заочно перебрать и составить словарь не предоставляется возможным - он будет занимать более 3 ПБ


10558. Иван Воронин
Иван Воронин
ответить
→  Orange  # C# Четыре в ряд - Соревнование / Как создать ИИ / 2016-11-18 02:03

Автор участвовать не будет, так что можешь не переживать, временных отрезков нет, по поводу 1000 боёв, я думаю ограничимся 120+-


2775. Orange
Orange
ответить
# C# Четыре в ряд - Соревнование / Как создать ИИ / 2016-11-18 00:54

Еще не указано временные ограничения на ход.
Если будет допустим 1 секунда на ход, и в среднем 20 ходов за партию, то для проверки 1000 игр каждым цветом только для двух участников займет более 11 часов.


7119. Новопашин Владимир
Новопашин Владимир
ответить
→  Orange  # C# Четыре в ряд - Соревнование / Хочу играть! / 2016-11-15 09:42

А почему одна звездочка?


10558. Иван Воронин
Иван Воронин
ответить
→  Orange  # C# Четыре в ряд - Соревнование / Хочу играть! / 2016-11-15 03:39

Следующим уроком сразу ссылка на задачу =)



24. Олюшка
Олюшка
ответить
→  Orange  # Игра Сокобан / Сокобан - Подготовка - Картинки и лабиринт / 2015-08-09 15:02

Мне нравится твоя подготовка, очень позитивно и сочно, уверена это будет классно смотреться и весело играть! :)


24. Олюшка
Олюшка
ответить
→  Orange  # Игра Сокобан / Сокобан - Вступление / 2015-08-09 11:18

Потрясающе, вот что значит настоящий программист с подходом программиста решения задачи!!!
Я в восторге и под впечатлением от твоей работа,  очень стимулирует и мотивирует! Молодец! :)


2775. Orange
Orange
ответить
# Игра Сокобан / Сокобан - Вступление / 2015-08-09 09:19

С ростом числа кубиков количество вариантов возрастает в геометрической прогрессии.
Так если для поля 10x10 с 1 кубиком достаточно хранить 100 позиций для игрока Х 100 позиций для кубика, всего то 10 000 вариантов, то для 10 кубиков вариантов уже сильно больше:
100 * 100^10 = 100^11 = 10 000 000 000 000 000 000 000.

О, и решение для 3й олимпиадной задачи («Большая степень») пригодилось, а я то думал куда его можно применить :)

В общем, нужно разными способами по максимуму сокращать количество ненужных вариантов.
Например, хранить только карты после движения кубика, а локальные, когда игрок бегает и не двигает кубики можно сбрасывать.
Заранее помечать точки куда кубик ставить нельзя, а также динамически проверять тупиковые ситуации.
Использовать сигнатуры для быстрого поиска среди рассмотренных позиций и т.д. и т.п.
При этом вариантов все равно остается еще очень и очень много, я не могу сказать что текущая версия у меня решит любой лабиринт.
Так для 6го лабиринта с сайта http://logic-games.spb.ru/sokoban/ (10 кубиков) ей потребовалось порядка 40 000 раз сдвинуть кубики, чтобы найти решение, на что ушло около минуты.
А вот для 8го уровня (18 кубиков) не хватило и 1 000 000, быстрее получилось самому уже пройти :)


1. Евгений Волосатов
Евгений Волосатов
ответить
→  Orange  # Игра Сокобан / Сокобан - Вступление / 2015-08-09 06:01

МЫ в этой игре тоже пишем решалку, как ты помнишь, но только с одним ящиком.
А как ты делал с 4-мя ящиками, 10-мерный массив использовал? :)


2775. Orange
Orange
ответить
# Вебинары / Отзывы по базовому вебинару / 2015-03-15 14:55

База по созданию проекта в VisualStudio на C#.
Очень полезная информация.


2775. Orange
Orange
ответить
# Вебинары / Отзывы по базовому вебинару / 2015-02-28 15:39

Отличный вебинар, сделали игру Socoban практически с нуля целиком, много познавательных моментов.


2775. Orange
Orange
ответить
# Вебинары / Отзывы по базовому вебинару / 2015-02-14 15:10

Очень понравилось!


2775. Orange
Orange
ответить
# Вебинары / Отзывы о консольном вебинаре / 2015-02-11 14:08

Всегда интересно


2775. Orange
Orange
ответить
# Вебинары / Отзывы по базовому вебинару / 2015-01-31 13:58

Спасибо было интересно.


2775. Orange
Orange
ответить
# Вебинары / Отзывы по базовому вебинару / 2015-01-24 13:32

Урок классный!


2775. Orange
Orange
ответить
# Консоль / For-to-Цикл / Форычер 2 / 2014-11-24 14:00

Вывод результата: те же числа через запятую, в конце точка.
Условие не верное, на самом деле нужно вывести через пробел и без "." в конце.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  Orange   / 2014-11-24 12:11

Я знаю, но новая мне больше нравится.


2775. Orange
Orange
ответить
→  Евгений Волосатов   / 2014-11-24 11:53

У вас есть полностью идентичная задача в разделе ниже (найти сумму цифр) и видео-решение к ней со звуком:
http://www.youtube.com/watch?v=gDiDp7b1tZc


1. Евгений Волосатов
Евгений Волосатов
ответить
→  Orange  # Консоль / Лирика / Любимые цифры / 2014-11-23 16:03

ЕСТЬ ТАМ ЗВУК. Просто очень тихо. Нужно в наушниках слушать.


2775. Orange
Orange
ответить
# Консоль / Лирика / Любимые цифры / 2014-11-22 20:51

http://www.youtube.com/watch?v=YlnUpdGp2Z0
Звука в видео-решении нет.


2775. Orange
Orange
ответить
# Консоль / Лирика / Огород / 2014-11-19 15:14

Неправильно вычисляете, в одном из тестов ошибка, входные данные не прошедших тестов не показываете, а зря.
Более корректно считать так: 2*b + 200*a/b, но он ваш тест не проходит, а такой 2*(b+100*a/b) проходит.
Пример, введено 7 1000
тогда одна сторона 0.7м, а вторая 1000м
Периметр будет 2001.4 м (в дабле), или отбросив дробную часть 2001м
У вас же получится что одна сторона 0м (700/1000 в инт), а вторая 1000м, и ответ 2000 м, что совершенно не верно.

Еще корректнее считать в дабл. и округлять к ближайшему целому. А не отбрасывать дробную часть
Так при входных данных 8 1000 правильный ответ 2002.


  • Звание: Делегатор
  • Накопленный опыт: 218 часов
  • Собранный капитал: нет

Клуб формулистов

Формулист За сегодня За неделю
Разминка Обучение Бонусы Сумма
1 Андрей Шевченко 16533 5 5 345
2 Tekashnik 8275 5 5 344
3 Новопашин Владимир 7119 310
4 Иван Воронин 10558 10 15 14 39 279
5 chokayes 9752 9 1 5 15 255
6 Николай Денисов 9014 244
7 Денис 13665 236
8 Константин Мельников 17022 233
9 Александр 16653 5 10 5 20 199
10 gorynych 8877 196
11 vip 9913 5 5 187
12 Алексей В. 10494 170
13 Александр 3922 5 5 167
14 Дмитрий 4814 153
15 Дмитрий 16218 130
16 zmejchik 10833 126
17 Pavlin 16496 126
18 Виталий 16268 124
19 Денис Корнеев 16989 121
20 Андрей 162 107
21 Григорий 3850 5 5 106
22 Андрей Гришагин 17240 97
23 Margarita 16911 95
24 Родион Глушков 11582 5 5 87
25 Владимир 15525 77
26 Евгений Волосатов 1 3 1 4 75
27 DimanDOS 14981 74
28 Николай (nick27m) 6203 5 5 10 69
29 Сергей Стефаненко 13131 67
30 AZANIR 7308 66
31 Константин 16880 5 5 65
32 Timoha 9980 64
33 Piligrim 8066 53
34 Антон Кравченко 5502 5 5 51
35 Михаил 5081 49
36 Николай 17038 49
37 DimkaKMS 9156 5 5 45
38 Алексей|BrisK|Кривицкий 3506 43
39 Serpimolot 16503 42
40 Володимир 8707 5 5 40
41 Кирилл Шмойлов 6452 5 5 38
42 Наталья 7226 3 3 38
43 Yefim 11589 38
44 Андрей 16259 38
45 Петя 7652 2 2 37
46 Pavel 11353 1 5 6 36
47 Andreas 17372 36
48 Ivan 4038 1 1 35
49 alex_kag 10591 3 3 33
50 Сергей Сергеевич 459 32
51 Семен 17051 29
52 Anna 17181 26
53 Иван 2146 25
54 Денис 4395 25
55 Слава 17255 23
56 JSP 17387 3 3 22
57 Антон Лазарец 986 21
58 Дмитрий 16253 19
59 Роман 14462 18
60 Илья 17343 17
61 Дмитрий 17348 17
62 vjacheslav 16906 16
63 Neverwinter 2 1901 15
64 Ильдар 5911 15
65 jin 17093 15
66 FireWolf 10080 12
67 Danil42Russia 10895 12
68 Puhl9sha 17400 12
69 Артём 17408 12
70 Михаил 17390 6 6 11
71 Sergej Šugajev 16017 11
72 Дмитрий Трамп 16246 11
73 KmX 16830 5 5 10
74 nikolay famin 402 10
75 Валерий Жданов 791 10
76 Фомичева Наталья 1232 10
77 Степан 1710 10
78 Николай 2573 10
79 Sergey 4732 10
80 Павел 5263 10
81 Александр 6614 10
82 Дмитрий 10162 10
83 Slava23 17308 10
84 salman 17319 10
85 Артём 17344 10
86 Эдвард 13364 9
87 Максим 4522 8
88 Андрей 9732 8
89 belcut 17302 8
90 Vlad179 17098 7
91 Assel 17362 6
92 Дмитрий 16862 5 5 5
93 Владислав 8036 5
94 Kapitanov Dmitrij 9368 5
95 Алекс Имаго 12013 5
96 Алексей 14117 5
97 Andrej Gladkov 16018 5
98 Катерина 16358 5
99 Денис 16396 5
100 Андрей Чуприков 16799 5
101 Альберт Шарифисламов 17066 5
102 vandry 17316 5
103 Алекс 17341 5
104 Кирилл 17402 5
105 DmitryTrump 17403 5
106 Иван 17404 5
107 Zebos 13846 3
108 Саша Авербух 16520 3
109 Сергей Соколов 10670 1 1 2
110 Игорь 7321 1 1 1
111 Андрей 4961 1
112 Сергей 5193 1
113 Виктор Си 5923 1
114 Alexey 9830 1
115 Тимур 9921 1
116 Nurik 13879 1
117 Лаура 13896 1
118 Sergey 16448 1
119 Олександр 16966 1
120 Dimitry 17334 1
121 EmptyBoy 17347 1
122 Игорь 17364 1
123 AlexActiv 17369 1
124 Fedor 17376 1
125 mcLovin777 17397 1
126 Liubomir 17399 1
127 murad 17409 1

Правила клуба формулистов

У каждого формулиста есть задача минимум на каждый день:
+ зайти на сайт, проверить один отчёт, получить 1 байт.
Задача максимум - выполнить все остальные ежедневные задачи.
Нажмите здесь чтобы перейти к ежедневному чек-листу.

В 24:00 МСК накопленные за сутки байты переносятся в недельный актив.
В воскресение 24:00 МСК все накопленные байты переходят на баланс формулиста.

Собранные байты можно обменивать на доступные видеокурсы (1 байт = 1 рубль, без скидок)
Приобретённые за байты видеокурсы доступны только во время нахождения в автобусе/клубе формулистов!

При завершении подписки в автобусе/клубе формулистов все накопленные байты обнуляются, а доступ к видеокурсам, приобретённым за байты, закрывается.
Продлевайте подписку заблаговременно.

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




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Научился научить комп самому искать решения.
Трудности: Взял 1й попавший сайт с игрой, сходу прошел 5 лвл и встрял. Так как я немного программист решил сделать авторешалку. 6й уровень с ней и прошел. С большим количеством ящиков она думает достаточно долго, поэтому пока она думала над 7м лабиринтом, прошел еще 4.
Форма не дает ввести больше 24 часов на выполнение задание, хотя я реально на нее 5 дней потратил, чистое число часов не засекал.