Оглавление:

Игра 3D4x: 3D 4x4x4 Крестики-нолики: 5 шагов (с изображениями)
Игра 3D4x: 3D 4x4x4 Крестики-нолики: 5 шагов (с изображениями)

Видео: Игра 3D4x: 3D 4x4x4 Крестики-нолики: 5 шагов (с изображениями)

Видео: Игра 3D4x: 3D 4x4x4 Крестики-нолики: 5 шагов (с изображениями)
Видео: Galactic Civilizations III - 3D 4x Aurora 2024, Ноябрь
Anonim
Image
Image
3D4x Игра: 3D 4x4x4 Крестики-нолики
3D4x Игра: 3D 4x4x4 Крестики-нолики
3D4x Игра: 3D 4x4x4 Крестики-нолики
3D4x Игра: 3D 4x4x4 Крестики-нолики
3D4x Игра: 3D 4x4x4 Крестики-нолики
3D4x Игра: 3D 4x4x4 Крестики-нолики

Вы устали играть в одни и те же, старые, скучные, двухмерные крестики-нолики ?? Что ж, у нас есть решение для вас! Крестики-нолики в 3-х измерениях !!! Для 2 игроков в этом кубе 4x4x4 поставьте 4 светодиода подряд (в любом направлении) и вы выиграете! Ты делаешь это. Вы играете в это.

Шаг 1. Соберите компоненты и инструменты

Соберите компоненты и инструменты
Соберите компоненты и инструменты

Самым важным компонентом этих 3D крестиков-ноликов является светодиод. Мы выбрали PL9823, в котором уже есть встроенный контроллер. Он имеет четыре контакта (вход данных, питание, заземление, выход данных) и позволяет легко адресовать и контролировать цвет светодиода. Структуру сетки можно построить разными способами, но для нас это был самый дешевый, прочный и эстетичный вариант.

Список компонентов:

  • Arduino (мы использовали Uno)
  • Светодиоды PL9823 (не менее 64)
  • Деревянные палочки для шампуров (длина 24 см)
  • Электропроводка (мы использовали внутренности старого кабеля Ethernet)
  • Кнопки (мгновенное состояние)
  • 7 резисторов (220 Ом)
  • Макетные платы (1 для кнопок и игры, 1 для простого подключения панели к Arduino)
  • Пенополистирол (~ 2х30х30см для изготовления панелей)
  • Блок пенополистирола (~ 7x25x25см в качестве основы для всей сетки)

Список инструментов:

  • Паяльник
  • Олово для пайки
  • Клей
  • Линейка с линейкой
  • Плоскогубцы
  • Инструмент для зачистки проводов
  • Кусачки
  • Ножницы
  • Маркер
  • Ручка
  • Пинцет

Шаг 2: сделайте сетку

Image
Image
Сделайте сетку
Сделайте сетку
Сделайте сетку
Сделайте сетку

Изготавливаем 4 панели из светодиодов 4х4 индивидуально.

  • 00: Получите пенополистирол, чтобы сделать макет панели. Нарисуйте выкройку. В этом случае мы использовали расстояние 6 см между светодиодами с 2 см на концах.
  • 01: Вставьте контакты светодиода в пенополистирол. Важный! Убедитесь, что вы вставили все светодиоды с одинаковой ориентацией. В нашем случае мы выбрали выходной контакт слева.
  • 02: Теперь поместите палочки для шампуров из деревянных стержней по обе стороны от светодиодов рядами, убедившись, что все точки смотрят в одном направлении. Приклейте палочку к бокам светодиодных лампочек и дайте высохнуть.
  • 03: Сделайте то же самое для столбиков деревянных прутьев для шпажек с обеих сторон светодиодов, убедившись, что все точки направлены в одном направлении. Приклейте и дайте высохнуть.
  • 04: Осторожно удалите, ослабив светодиоды со всех сторон. Поднимите панель и переверните. Приклейте обратную сторону, чтобы было надежнее.
  • 05: После того, как все высохнет, согните контакты, чтобы облегчить пайку и избежать пересечения электрических линий. Воспользуемся пинцетом и загибаем штифт вплотную к основанию.
  • 06: Теперь подготовьте провода. Мы использовали старый кабель Ethernet с 4-мя витыми парами внутри. Снимайте изоляцию, стараясь не порезать маленькие провода. Затем раскрутите, выберите цвета, соответствующие разным линиям, и отрежьте нужную длину между светодиодами. Затем снимите немного изоляции с концов. Мы выбрали землю = зеленый, Vdc = синий, вход / выход данных = белый.
  • 07: Припой! Соединений много (64х4), поэтому будьте осторожны при правильной пайке.
  • 08: Снимите панель и поместите на пенопласт!

Шаг 3: сделайте джойстик

Сделайте джойстик
Сделайте джойстик
Сделайте джойстик
Сделайте джойстик

Мы использовали макетную плату, чтобы сделать джойстик для навигации по сетке и выполнения выбора. Мы разместили перемычки, резисторы и кнопки, чтобы сформировать схему (см. Диаграмму), которая определяет контроллер направления (6 кнопок, по 1 для каждого направления) и кнопку выбора (вводит ход игрока). 5 В и земля подключены к соответствующим портам на Arduino. Для аналоговых и цифровых входных контактов мы выбрали порты Arduino A5 и 2 соответственно.

Кнопка выбора имеет принципиальную схему с антигруппировочным резистором. Команда направления основана на резистивной лестнице, которая работает как схема делителя напряжения: напряжение на аналоговом входе зависит от нажатой кнопки и интерпретируется Arduino как одно направление команды.

Шаг 4: напишите код

Напишите код
Напишите код

Мы загрузили наш код, чтобы вы могли его использовать:) Во-первых, выполните электрические подключения к Arduino. Мы поставили мини-макет рядом с Arduino, чтобы облегчить задачу. Мы подключили Arduino «GND» и «5V» к 2 линиям макетной платы, где затем подключили соответствующее заземление и Vdc от каждой панели. Для ввода и вывода данных мы выбрали 4 разных контакта Arduino, 13, 10, 7 и 4 для каждой из панелей. Светодиоды PL9823 можно адресовать индивидуально, указав порядковый номер последовательно включенных светодиодов. Например, если вы хотите, чтобы 1-й светодиод загорелся определенным цветом, обратитесь к светодиоду [0]. Для 16-го светодиода адресный светодиод [15]. Теперь вы готовы писать код и играть с красивыми огоньками! Ниже приводится общее объяснение кода игры в 3D крестики-нолики.

Код игры 3D4x

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

Куб виртуально запоминается в трехмерном целочисленном массиве «TTTMap», где каждый элемент может находиться в 1 из 5 состояний в зависимости от того, принадлежит ли соответствующий свет: 0 = нет игрока, 1 = игрок 1, 2 = игрок 2, 3 = игрок 1 в выигрышной комбинации и 3 = игрок 2 в выигрышной комбинации. Чтобы сопоставить элементы виртуального куба в TTTMap с реальными светодиодами, используются целочисленные массивы LEDMap0, LEDMap1, LEDMap2, LEDMap3.

Функция «setup» инициализирует порты Arduino, подключенные к панели, инициализирует все светодиоды на «черный» и инициализирует элементы массива TTTMap на 0.

Функция «цикл» запускает функции «ReadButtonInput ()», «SendLED ()» и, в случае победы одного игрока, функцию «VictoryAnimation ()». Первая функция считывает аналоговый вход команды направления и цифровой вход кнопки выбора. Логические переменные «ButtonPushing» и «SelectPushing» используются для того, чтобы избежать повторения движения со скоростью цикла, когда кнопка удерживается. Функция «SendLED ()» обновляет статусы светодиодов, отправляя последовательный управляющий сигнал в соответствии с данными в TTTMap. Фундаментальной функцией является «CheckVictory ()», которая вызывается функцией «ReadButtonInput ()» каждый раз, когда нажимается кнопка выбора. Эта функция проверяет, составляет ли выбранная точка в поле выигрышную комбинацию с окружающими кеглями. В случае выигрышной комбинации очки на TTTMap подписываются цифрами 3 или 4, в зависимости от игрока, который выигрывает, и запускается захватывающая «VictoryAnimation ()»!

Чтобы сыграть снова, просто нажмите кнопку сброса на Arduino:)

Шаг 5: Играйте с друзьями

Играйте с друзьями!
Играйте с друзьями!
Играйте с друзьями!
Играйте с друзьями!
Играйте с друзьями!
Играйте с друзьями!

Никаких объяснений здесь не требуется… НАСЛАЖДАЙТЕСЬ!

Рекомендуемые: