Си шарп с нуля

Формула программиста
основатель — Волосатов Евгений Витольдович
1-2-3 мая - Создай online игру!
Вебинар «Карточки памяти на Android» начнётся через 2 дня 2 час. 52 мин.

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 task2r Подпрограммы все 14 100 %
2014-11-25 task2 Алгоритмика 9 из 20 45 %
2014-11-25 task2b Логика 3 из 13 24 %
2014-11-25 task2k Последовательность 2 из 6 34 %
2014-11-25 task3 Рекурсия все 4 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 task2m Любимые циклы 1 из 6 17 %
2014-11-24 task2e Пока-цикл 2 из 6 34 %
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-24 task1b Строки все 14 100 %
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 chokayes 9752 10 11 10 31 291
2 Дмитрий 4814 10 15 10 35 275
3 zhikharevav 8380 5 5 225
4 Tekashnik 8275 10 15 15 40 200
5 Иван Воронин 10558 10 15 15 40 200
6 vip 9913 10 15 12 37 166
7 WildOrc 17443 10 10 148
8 Виктор 17606 8 15 5 28 143
9 Алексей|BrisK|Кривицкий 3506 105 1 106 127
10 Bodrik_torf 16066 10 10 5 25 125
11 Anton 5394 5 14 5 24 109
12 Владимир 15525 103
13 Pavlin 16496 5 10 5 20 102
14 Алексей В. 10494 91
15 Yefim 11589 5 10 2 17 85
16 Андрей Гришагин 17240 80
17 Dmitry Sinitsin 17947 5 7 12 78
18 Дмитрий 16218 5 5 10 67
19 Яков 6401 56
20 Володимир 8707 3 3 53
21 Евгений Волосатов 1 7 1 8 50
22 Timoha 9980 10 3 13 47
23 Александр 3922 5 5 10 45
24 Dimon 9156 5 5 10 45
25 Григорий 3850 5 9 14 41
26 Андрей 162 5 8 13 39
27 Алекс 8932 39
28 Денис 16396 1 1 37
29 Николай Миролюбов 6203 5 5 30
30 drWatson 17575 27
31 Михаил 5081 5 5 25
32 Антон Кравченко 5502 5 5 25
33 Pavel 11353 5 5 25
34 chip 13417 2 2 25
35 Andrej Gladkov 16018 25
36 Виталий 16268 3 4 7 24
37 Sergej Šugajev 16017 1 1 24
38 Narek Aslanyan 18057 1 1 22
39 vjacheslav 16906 5 5 20
40 Валерий Жданов 791 19
41 Gilman 17619 18
42 DimanDOS 14981 16
43 Евгений 17938 16
44 Neverwinter 2 1901 15
45 Иван 2146 15
46 Rise 14075 15
47 Aleksej Fiodorov 16016 15
48 Слава 17769 15
49 Самал 18138 14
50 Povilas Abramovicius 16089 12
51 Гендос 18183 10 1 11 11
52 Dim_nk 18171 11
53 Сергей Витальевич 4699 5 5 10 10
54 Сергей Сергеевич 459 10
55 Петя 7652 10
56 Aelita 18082 10
57 Nikita 16135 8
58 Diserdyuk 17894 1 1 7
59 Den Andreevich 6861 7
60 Андрей Шевченко 16533 7
61 Дмитрий 18157 7
62 Alexander Sidorov 4853 1 5 6 6
63 Кирилл Шмойлов 6452 6
64 Сергей Стефаненко 13131 6
65 Кирилл Бойко 17895 6
66 FireWolf 10080 5 5 5
67 Demonick 10981 5 5 5
68 Родион Глушков 11582 5 5 5
69 Oleksandr 17822 5 5 5
70 Кирилл 18177 5 5 5
71 DbIM 18181 5 5 5
72 Дубильер Яна Александровна 18184 5 5 5
73 Сарапульцев Константин 1570 5
74 Denis 1947 5
75 Сергей 3747 5
76 Денис 4395 5
77 Алексей 9323 5
78 Роман 14462 5
79 ivan tuzhikov 15865 5
80 Kiril Krutiajev 16014 5
81 Serge 16861 5
82 Андрей 17589 5
83 Сергей Тирпиц 17608 5
84 Bakha 17695 5
85 Greed846 18029 5
86 Taras 18146 5
87 David 18153 5
88 CaLLiek 18162 5
89 Tigran 18175 5
90 Igorenzia 689 4 4 4
91 Игорь 7321 2
92 Dni 16691 2
93 Валерий 1305 1 1 1
94 Sergey 4732 1 1 1
95 Евгений 4864 1 1 1
96 maks 5907 1 1 1
97 Виктор Си 5923 1 1 1
98 Артём 6925 1 1 1
99 Анатолий 8512 1 1 1
100 SergeyKa 8744 1 1 1
101 Alex 8822 1 1 1
102 Андрей 10891 1 1 1
103 magna mentes 11790 1 1 1
104 Алекс Имаго 12013 1 1 1
105 Илья 13030 1 1 1
106 Александр 13813 1 1 1
107 EVUKOLOV 15931 1 1 1
108 Саша Авербух 16520 1 1 1
109 Vlad179 17098 1 1 1
110 Никита 17542 1 1 1
111 Тамерлан 18174 1 1 1
112 Андрей 4753 1
113 Владимир 6587 1
114 Константин 10821 1
115 Andrej Petrunev 16015 1
116 Юрий Караваев 17629 1
117 Andrey 18136 1
118 slava 18137 1
119 Harry Potter 18145 1
120 Лев 18152 1
121 Сергей 18159 1

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

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

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

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

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

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




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

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

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

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