Мой последний проект модуля Javascript был одним из тех, над которыми мне больше всего понравилось, когда я участвовал в учебном лагере Access Labs Bootcamp Flatiron School. После краткого обсуждения мы с партнером решили создать Ханафуда. Игра, о которой мы только что познакомились на прошлой неделе, один из участников нашей когорты. Никто из нас мало что знал об игре, но нам понравилось играть в нее, так что это казалось достойным усилием. В ходе нашего обсуждения я решил заняться бэкэндом, и, как только обсуждение закончилось, мое исследование игры началось.

Ханафуда (Цветочные карты) - это японская игра на совпадение карт. Всего существует 12 костюмов, которые отражают 12 месяцев в году и представлены в виде уникального цветка. В каждой масти есть 4 карты с вариациями уникального цветка и различными атрибутами (ленты, животные, яркость и т. Д.). Если вас интересует значение выбранных цветов, загляните на этот сайт.

Как только я начал понимать игру, моим следующим шагом было заполнение нашей базы данных 48 картами, необходимыми для игры.

Что касается матчей, нет двух одинаковых карт, совпадения заключаются, когда у карт общий месяц. Цель игрока - собрать матчи, удовлетворяющие условиям победы в играх. Мне нужно было преобразовать эти условия победы в нечто, что компьютер мог бы понять, и вот тут-то и началось самое интересное.

На изображениях выше представлены некоторые из различных условий выигрыша, которые предлагает игра. В моем файле collection.rb я сопоставил массив идентификаторов, собранных во внешнем интерфейсе, чтобы у меня был массив объектов, который я мог бы использовать для поиска определенных карточек. Затем оценили карты, используя логику условия выигрыша. Наконец, я создал логику, которая перетасовывала карты и раздавала их соответствующим образом, когда игра начиналась, и мой партнер и я объединили нашу логику, чтобы создать полностью работающую игру. Если вы хотите попробовать сами, следуйте инструкциям в этих двух репозиториях.
https://github.com/Isiah-VanBrackle/hanafuda-front-end
https://github.com/Isiah-VanBrackle/hanafuda-back-end