SLiGerr

SLiGerr

На Пикабу
442 рейтинг 2 подписчика 6 подписок 3 поста 1 в горячем
Награды:
5 лет на Пикабу
15

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

Внешний вид

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

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


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


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

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

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

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

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества