SLiGerr

SLiGerr

На Пикабу
поставил 76 плюсов и 0 минусов
442 рейтинг 2 подписчика 6 подписок 3 поста 1 в горячем

Полуночный инфаркт

(Увеличьте яркость)

Полуночный инфаркт Маска, Испуг, Ночь, Длиннопост

Вот такую страшную шнягу увидел ночью, испугался конечно знатно

Полуночный инфаркт Маска, Испуг, Ночь, Длиннопост
Полуночный инфаркт Маска, Испуг, Ночь, Длиннопост

Фотографировал на голубя (да и ночью качество не особо в глаза бросалось)

Показать полностью 3

"Та самая "Мини игра"..."  Часть 2.

Console.WriteLine("Hello pikabu world!!!");
Первая часть: Та самая "Мини игра" в консоли да на C#

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

"Та самая "Мини игра"..."  Часть 2. Программирование, Длиннопост, Код, Программист

Особенно хочу поблагодарить за комментарии с советами и критикой, всё-всё читал)!
Собственно, перейдем к обновлениям.

Во первых, я увеличил для наглядности ширину клетки на еще 1 символ.

"Та самая "Мини игра"..."  Часть 2. Программирование, Длиннопост, Код, Программист

Во вторых, я полностью переписал этот ад из If-else, который (вы не поверите, но) получился (!!!) случайно.
Как работает эта новая преблуда:
Вывод первой строки и последней, а так же между ними по формуле "цифра, клетки, цифра" выводим все остальное.

"Та самая "Мини игра"..."  Часть 2. Программирование, Длиннопост, Код, Программист

Конечно, знающие синьоры накидали годных вариантов, но я не крутой, переписал проще (или сложнее?).

Кстати о "Так получилось случайно": когда я вначале написал только 3 if-else, с проверкой на (игрок1/игрок2/пустая клетка), я добавил /цифра/цифра<10 и пошлоооо поехало, почему я не решил переписать? Банально в час ночи спать уже хотелось)

Как к слову заметно по коду, я прикрутил так же покраску текста, для наглядности.

"Та самая "Мини игра"..."  Часть 2. Программирование, Длиннопост, Код, Программист

Далее, я прикрутил возможность выбора разворота блока, с ожиданием до ввода "не разворачивать" посредством ввода любого, кроме "y", символа). Код простой, хотя я уверен что появится кореец Сеньор, который сделает это в 15 символов)

"Та самая "Мини игра"..."  Часть 2. Программирование, Длиннопост, Код, Программист

Как это выглядит:

"Та самая "Мини игра"..."  Часть 2. Программирование, Длиннопост, Код, Программист
"Та самая "Мини игра"..."  Часть 2. Программирование, Длиннопост, Код, Программист
"Та самая "Мини игра"..."  Часть 2. Программирование, Длиннопост, Код, Программист

Так же, как и подобает программисту. все проблемы я заметил на показе кода))))
Фиксим отображение нижних координат, попутно улучшая названия переменных:

"Та самая "Мини игра"..."  Часть 2. Программирование, Длиннопост, Код, Программист
"Та самая "Мини игра"..."  Часть 2. Программирование, Длиннопост, Код, Программист

Ну и на десерт, добавлю еще несколько плюх:

"Та самая "Мини игра"..."  Часть 2. Программирование, Длиннопост, Код, Программист

Выводим чей сейчас ход;

"Та самая "Мини игра"..."  Часть 2. Программирование, Длиннопост, Код, Программист

Выводим инфу о победе того или иного противника)

"Та самая "Мини игра"..."  Часть 2. Программирование, Длиннопост, Код, Программист

Напомню! Я не называю свой код идеальным, жгу как, чем, и насколько могу) Ожидаю ваших предложений, советов, критики и "Що это такое".

И да, далеко не все что я хотел по итогу прикрутить - было прикручено. Я решил не маячить один проект до состояния "Чтоб с него есть можно было!", и продолжать развиваться, а в месте с тем, писать посты! Если интересны еще решения моего еврейского мозга, можете кинуть интересную задачку в комменты, обязательно что то попробую.

Весь код: https://pastebin.com/ak7PnumN

Огромное спасибо за прочтение.

Показать полностью 12

Та самая "Мини игра" в консоли да на C#

Многие наверно встречали изображения этой мини-игры.

Та самая "Мини игра" в консоли да на C# Программист, Программирование, Длиннопост, Код

Наш (не?)очень креативный преподаватель по Основам программирования часто кидает подобные задания на практические работы, конкретно эту мне захотелось сделать, и я был достаточно близок, однако задание не завершил, от чего пишу его сейчас дома)

Итак! У нас есть поле X на Y, состоящее из пустых клеток, наша задача - заполнить максимум пространства своими прямоугольниками, которые мы вбиваем на поле броском двух кубиков. Идея проста - реализация .. ха.ха. Для второкурсника колледжа увидевшего код впервые месяц назад - задача не из простых, но я, аки человек, стучащий по клаве не только в играх, в свое время не мало и программировавший, принял это за челлендж.

Справка: Я буду описывать свой процесс разработки этой игры. Ваша реализация может отличатся и вообще за гениальность моего кода я не ручаюсь, не кидайте помидорами хотябы от того, что это мой первый пост :)
Начнем!
Та самая "Мини игра" в консоли да на C# Программист, Программирование, Длиннопост, Код

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

Та самая "Мини игра" в консоли да на C# Программист, Программирование, Длиннопост, Код

Я создал в одном месте все переменные, относящиеся к графической части, игрок один, игрок 2, пустое поле, вместе с этим и обрисовал вывод самого поля в консоль. На этом моменте можно и первый раз вывод нашего кода проверить.

Та самая "Мини игра" в консоли да на C# Программист, Программирование, Длиннопост, Код

Первый пух и первый прах, как стало ясно Visual Studio Code как то не очень выводит ASCII символы. ну а то и понятно (точнее стало очевидно сразу после попытки). Так же я забыл внести строку с переходом на новую строчку после каждых 25 символов, с кем не бывает. (да?)

Меняем символы на более приземленные, попутно продолжаем писать основу игры.

В игре есть несколько правил: Поочередность ходов, рандомность бросков костей, Ставим только возле своих полей или соответственно при первом ходу только в своем углу.

Первое правило описывается просто:

Та самая "Мини игра" в консоли да на C# Программист, Программирование, Длиннопост, Код

Создаем цикл, в нем простую проверку, если последний ход - 2, теперь 1, и наоборот. Далее вводим проверку на текущий ход уже отдельно для выполнения процесса игры.


Рандомность бросков штука тоже простая, ранее мной уже был описан random, с ним у нас будут выбиваться случайные числа в промежутке Next(N); (от нуля до N).

А вот правило "Ставим только рядом со своими" я пока опущу.

Далее начинаем прописывать сам бросок костей.

Попутно я усложнил вывод для отображения координат (кривого, но все-таки отображения!)

Та самая "Мини игра" в консоли да на C# Программист, Программирование, Длиннопост, Код

Очищаем, выводим рандомные кости, пишем координатами куда ставим блок.

Та самая "Мини игра" в консоли да на C# Программист, Программирование, Длиннопост, Код

Подгоняем цикл игры к новому методу

Та самая "Мини игра" в консоли да на C# Программист, Программирование, Длиннопост, Код

Уже выглядит неплохо! (в ширину одна клетка - теперь 2 символа) Но встает другой вопрос, когда мы игрок 2, нам нужно сначала посчитать куда вообще ставить, если у игрока 1 это вначале 0 и 0, то у второго первый ход вышел на 24 и 22, что не дело, надо сделать вычитание для игрока 2 (25 минус кость). и лучше будет сделать сначала вывод поля, а потом спрашивать куда ставить, для наглядности).

Та самая "Мини игра" в консоли да на C# Программист, Программирование, Длиннопост, Код

Добавляем не сложную вариацию, усложняем отображение (пожалуй оставлю за кадром, мои интерфейсы в коде инфаркт вызывают, но работают)))) )

Та самая "Мини игра" в консоли да на C# Программист, Программирование, Длиннопост, Код

и.... Готово!

Та самая "Мини игра" в консоли да на C# Программист, Программирование, Длиннопост, Код

Внешний вид

Та самая "Мини игра" в консоли да на C# Программист, Программирование, Длиннопост, Код

Ввод координатов установки прямоугольника (от левого верхнего угла прямоугольника у игрока 1, и правого нижнего у игрока 2)

Та самая "Мини игра" в консоли да на C# Программист, Программирование, Длиннопост, Код

*Несколько ходов спустя*


При желании можно еще подкрутить выход при окончании места на поле, защиту от неправильной установки блоков, ASCII движ. и норм отображение, а так же вывод победителя, но это уже как-нибудь в другой раз)


В целом, все! Спасибо за прочтение!

Весь код: https://pastebin.com/6Xa17Xef

Принимаю конструктивную критику, а еще лучше: варианты улучшения!

Показать полностью 13
Отличная работа, все прочитано!