C# обучение с нуля

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

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

Статистика по сообщениям

  • Отправлено: 6
  • По консольным: 3
  • По видеоурокам: 3
  • Получено ответов: 28

4199. --
Евгений
Евгений
ответить
# Консоль / Олимпиада / Распаковка строк / 2015-08-08 21:45

Так и не понял, как проходить несколько тестов, а не один) В любом случае писал для себя ибо сокобан и так есть. Вот код, может кому-то пригодиться для начала своих разработок. (ввиду отсутствия в роботе многих плюх фреймворка год получился несколько длиннее)

static void Main()
{
    Console.WriteLine(Unbox("4AB5C4D", 80));           
}

static string Unbox(string text, int maxLength)
{
    string res = string.Empty;
    string[] sepAlfLetters = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y" };
    string[] sepAlfFigures = new string[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
    string[] letArr = text.Split(sepAlfFigures, StringSplitOptions.RemoveEmptyEntries);
    string[] figArr = text.Split(sepAlfLetters, StringSplitOptions.RemoveEmptyEntries);
    int letCount = 0;
    for (int i = 0; i < figArr.Length; i++)
    {
        string temp = string.Empty;
        if (letArr[letCount].Length > 1)
        {
            for (int j = 1; j < letArr[letCount].Length; j++) temp += letArr[letCount][j];
            letArr[letCount] = letArr[letCount][0].ToString();
        }
        for (int j = 0; j < int.Parse(figArr[i]); j++) res += letArr[letCount];
        letCount++;
        res += temp;
    }
    if (res.Length > maxLength) throw new Exception("Длина строки более 80 символов");
    else if (res.Length > 40) res = res.Insert(40, Environment.NewLine);
    return res;
}


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Евгений   / 2015-08-08 15:57

Да верно


4199. --
Евгений
Евгений
ответить
# Консоль / Олимпиада / Распаковка строк / 2015-08-08 15:25

"Что значит, что "строка должна быть разбита на строчки длиной по 40 символов"? То есть если на вход дана строка 100А, то на выходе должно быть две строки по 40 А и одна строка с 20 А?"

эксепшн бросать


2146. --
Иван
Иван
ответить
→  Евгений  # Игра Сокобан / Сокобан - Игра - На двоих по сети / 2015-07-20 00:10

Очень здорово! По-моему это первый такой отчет с двумя компьютерами!


24. --
Олюшка
Олюшка
ответить
→  Евгений  # Игра Сокобан / Сокобан - Игра - На двоих по сети / 2015-07-19 23:49

Евгений, шикарная работа, ты еще и на двух компах протестировал как я поняла и все работает! Молодец! :)


24. --
Олюшка
Олюшка
ответить
→  Евгений  # Игра Сокобан / Сокобан - Телефон - TCP/IP протокол / 2015-07-17 16:37

Евгений, замечательно что продолжаешь создавать игру, что занимаешься! Если хочешь попробуй реализовать так и пожалуйста поделись своими результатами! :)


24. --
Олюшка
Олюшка
ответить
→  Евгений  # Игра Сокобан / Сокобан - Игра - На двоих / 2015-07-16 16:11

Здорово, Евгений! :)


24. --
Олюшка
Олюшка
ответить
→  Евгений  # Игра Сокобан / Сокобан - Редактор - На двоих / 2015-07-16 14:15

Евгения, замечательно двигаешься вперед, твои результаты очень радуют! Молодец! :)


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Евгений  # Игра Сокобан / Сокобан - Редактор - На двоих / 2015-07-16 14:09

Женя, я в восторге от твоих успехов!!!!


24. --
Олюшка
Олюшка
ответить
→  Евгений  # Игра Сокобан / Сокобан - Игра - Автоходы / 2015-07-16 00:01

Евгений, замечательные познания! :)


24. --
Олюшка
Олюшка
ответить
→  Евгений  # Игра Сокобан / Сокобан - Решалка - Мышка / 2015-07-14 15:48

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


4199. --
Евгений
Евгений
ответить
→  Олюшка  # Игра Сокобан / Сокобан - Решалка - Тестер / 2015-07-14 15:04

Да, просто лишнее пишем:
if(...) return false; // 1
if(...) return false; // 2
if(...) return true; // 3
return false;
Смысл писать первые два условия. так же и в предыдущем уроке было.


24. --
Олюшка
Олюшка
ответить
→  Евгений  # Игра Сокобан / Сокобан - Решалка - Тестер / 2015-07-14 13:44

Евгений, я завтра начинаю этот курс, пока ничего не отвечу, попробую твое предложение! А ты так пробовал? Работает корректно!? :)


2146. --
Иван
Иван
ответить
→  Евгений  # Игра Сокобан / Сокобан - Игра - Управление / 2015-07-13 23:19

Солнечно! Класс! Отлично придумано!


24. --
Олюшка
Олюшка
ответить
→  Евгений  # Игра Сокобан / Сокобан - Игра - Управление / 2015-07-13 21:46

Евгений, очень позитивно! :)


24. --
Олюшка
Олюшка
ответить
→  Евгений  # Игра Сокобан / Сокобан - Игра - Интерфейс / 2015-07-13 14:50

Евгений, очень хорошо что ты продолжаешь создавать эту замечательную игру, у тебя хорошо получилось! :)


1803. --
Саша
Саша
ответить
→  Евгений  # Игра Сокобан / Сокобан - Игра - Интерфейс / 2015-07-13 14:27

ты это узнаешь из последующих уроков;-)


1901. --
Neverwinter 2
Neverwinter 2
ответить
→  Евгений  # Игра Сокобан / Сокобан - Создаём свои уровни / 2015-07-12 14:32

Ух ты! Классные текстуры!!


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Евгений  # Игра Сокобан / Сокобан - Создаём свои уровни / 2015-07-12 13:54

Хорошие уровни ты придумал.


24. --
Олюшка
Олюшка
ответить
→  Евгений  # Игра Сокобан / Сокобан - Создаём свои уровни / 2015-07-12 12:18

Евгений, я хочу попросить не ставь пожалуйста прочерки, напиши хоть что-то словами! Спасибо! :)


24. --
Олюшка
Олюшка
ответить
→  Евгений  # Игра Сокобан / Сокобан - Редактор - Улучшение / 2015-07-12 11:42

Евгений, замечательно что продолжаешь заниматься, завтра присоединяюсь буду догонять вас! :)


1. --
Евгений Волосатов
Евгений Волосатов
ответить


24. --
Олюшка
Олюшка
ответить
→  Евгений  # Игра Сокобан / Сокобан - Редактор - Редактирование / 2015-07-10 16:28

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


2146. --
Иван
Иван
ответить
→  Евгений  # Игра Сокобан / Сокобан - Редактор - Редактирование / 2015-07-10 12:44

Красиво получается.


24. --
Олюшка
Олюшка
ответить
→  Евгений  # Игра Сокобан / Сокобан - Редактор - Интерфейс / 2015-07-01 19:01

Евгений, прикольненькие у тебя картинки!:)


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Евгений  # Игра Сокобан / Сокобан - Редактор - Интерфейс / 2015-07-01 18:20

Дополнительные функции - это хорошо,
всегда может потребоваться что-то добавить.


4199. --
Евгений
Евгений
ответить
# Игра Сокобан / Сокобан - Редактор - Загрузка / 2015-07-01 17:32

Спасибо за ответы:)


24. --
Олюшка
Олюшка
ответить
→  Евгений  # Игра Сокобан / Сокобан - Редактор - Загрузка / 2015-07-01 17:17

Евгений, я очень рада что ты все же продолжаешь заниматься! Уверена ты найдешь для себя наиболее лучший способ! :)


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Евгений  # Игра Сокобан / Сокобан - Редактор - Загрузка / 2015-07-01 16:32

Ну, этот вариант простой только на первый взгляд.
Потом начинаются всякие проблемы. Так что сериализация,
хоть и посложнее вначале, но проще при дальнейшем развитии проекта.


2146. --
Иван
Иван
ответить
→  Евгений  # Игра Сокобан / Сокобан - Редактор - Загрузка / 2015-07-01 15:19

Такой вариант загрузки мне понравился, например, своей наглядностью и простотой реализации, т.к. в xml так наглядно не будет. А текстовый файл всегда просто создать или исправить, если где-то ошибся. А сериализация есть, например, в спрайтах - там как раз удобнее информацию хранить в xml .


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Евгений  # Игра Сокобан / Сокобан - Вступление / 2015-03-29 16:49

Если эта игра бесполезная, то, наверное, не стоит её писать.
Делать нужно только то, что интересно и полезно.

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





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

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

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

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


Зачем в условии передвижения нужно прописывать условия для фолса (проверять на ширину и т.п.), если у нас в любом случае в итоге вернет фолс. Можно же просто написать для тру, а остальные все варианты и так будут фолс


Научился: Сохранению и загрузке уровней
Насколько оптимальный данный способ сохранения/загрузки уровней? Например, можно через сериализацию. или данный вариант специально показан, как один из наиболее простых? Если да, то какие еще есть более оптимальные варианты. Спасибо за ответ)