Mündəricat:

3D4x Oyun: 3D 4x4x4 Tic-Tac-Toe: 5 addım (şəkillərlə)
3D4x Oyun: 3D 4x4x4 Tic-Tac-Toe: 5 addım (şəkillərlə)

Video: 3D4x Oyun: 3D 4x4x4 Tic-Tac-Toe: 5 addım (şəkillərlə)

Video: 3D4x Oyun: 3D 4x4x4 Tic-Tac-Toe: 5 addım (şəkillərlə)
Video: 3D4x Game: 3D 4x4x4 Tic-Tac-Toe - Making the Panels 2024, Iyun
Anonim
Image
Image
3D4x Oyunu: 3D 4x4x4 Tic-Tac-Toe
3D4x Oyunu: 3D 4x4x4 Tic-Tac-Toe
3D4x Oyunu: 3D 4x4x4 Tic-Tac-Toe
3D4x Oyunu: 3D 4x4x4 Tic-Tac-Toe
3D4x Oyun: 3D 4x4x4 Tic-Tac-Toe
3D4x Oyun: 3D 4x4x4 Tic-Tac-Toe

Eyni, köhnə, darıxdırıcı, 2 ölçülü tik-tac-barmaq oynamaqdan yoruldunuzmu? Yaxşı, sizin üçün bir həllimiz var! Tic-tac-toe 3 ölçüdə !!! 2 oyunçu üçün, bu 4x4x4 kubda, ardıcıl olaraq 4 LED əldə edin (istənilən istiqamətdə) və siz qazanırsınız! Sən bacar. Siz oynayın.

Addım 1: Komponentləri və Alətləri toplayın

Alətlər və Komponentlər toplayın
Alətlər və Komponentlər toplayın

Bu 3D Tic-Tac-Toe-nin ən vacib komponenti LED-dir. Artıq içərisində inteqrasiya edilmiş bir nəzarətçi olan PL9823 seçdik. Dörd sancağa malikdir (Məlumat girişi, Gərginlik Təchizatı, Topraklama, Məlumat Çıxışı) və LED-in rəngini asanlıqla həll etməyə və idarə etməyə imkan verir. Şəbəkə quruluşu müxtəlif yollarla qurula bilər, amma bizim üçün bu ən ucuz, ən sağlam və ən estetik seçim idi.

Komponent siyahısı:

  • Arduino (Uno istifadə etdik)
  • PL9823 LEDləri (ən az 64)
  • Taxta şiş çubuqlar (uzunluğu 24 sm)
  • Kablolama (köhnə bir Ethernet kabelinin içini istifadə etdik)
  • Düymələr (bir anlıq vəziyyət)
  • 7 Rezistor (220 Ohm)
  • Çörək lövhələri (düymələr və oynamaq üçün 1, Arduino ilə asan panel əlaqələri üçün 1)
  • Köpük polistirol lövhəsi (panelləri hazırlamaq üçün ~ 2x30x30 sm)
  • Köpük polistirol blok (~ 7x25x25 sm bütün şəbəkə üçün əsas kimi)

Alət siyahısı:

  • Lehimleme dəmir
  • Lehimləmə qalay
  • Yapışqan
  • Hökmdarla düzəldin
  • Kəlbətinlər
  • Tel çıxarıcılar
  • Tel kəsicilər
  • Qayçı
  • Marker
  • Qələm
  • Cımbız

Addım 2: Şəbəkəni düzəldin

Image
Image
Şəbəkə yaradın
Şəbəkə yaradın
Şəbəkə yaradın
Şəbəkə yaradın

Fərdi olaraq 4x4 LED -lərdən 4 panel hazırlayırıq.

  • 00: Panel düzeni etmək üçün strafor alın. Nümunəni çəkin. Bu vəziyyətdə, ucları 2 sm olan LEDlər arasında 6 sm boşluq istifadə etdik.
  • 01: LED sancaqlarını strafor daxil edin. Vacibdir! Bütün LEDləri eyni istiqamətə daxil etdiyinizə əmin olun. Bizim vəziyyətimizdə çıxış pinini sola doğru seçdik.
  • 02: İndi taxta çubuq çubuqlarını LED -lərin hər iki tərəfinə sıralarla qoyun, bütün nöqtələrin eyni istiqamətə baxdığından əmin olun. Çubuğu LED ampullərinin yanlarına yapışdırın və qurudun.
  • 03: LED -lərin hər iki tərəfindəki taxta çubuq şiş çubuqlarının sütunları üçün eyni şeyi edin, bütün nöqtələrin eyni istiqamətə baxdığından əmin olun. Yapışdırın və qurudun.
  • 04: Ətrafdakı LEDləri gevşetərək yumşaq bir şəkildə çıxarın. Paneli qaldırın və çevirin. Arxa tərəfi yapışdırın ki, daha etibarlı olsun.
  • 05: Hər şey quruduqdan sonra, lehimləmə işini asanlaşdırmaq və hər hansı bir elektrik xəttinin keçməməsinə kömək etmək üçün pinləri bükün. Bir cımbız istifadə edirik və pimi bazaya yaxın əyirik.
  • 06: İndi telləri hazırlayın. İçərisində 4 bükülü cüt tel olan köhnə bir Ethernet kabeli istifadə etdik. Kiçik telləri kəsməmək üçün ehtiyatla izolyasiyanı çıxarın. Sonra açın, fərqli xətlərə uyğun rənglərinizi seçin və LEDlər arasındakı uyğun uzunluğa kəsin. Sonra izolyasiyanı uclarından bir az çıxarın. Biz torpaq = yaşıl, Vdc = mavi, giriş/çıxış = ağ seçdik.
  • 07: Lehim! Bir çox əlaqə var (64x4), buna görə də düzgün lehimləmək üçün diqqətli olun.
  • 08: Paneli çıxarın və köpük bazasına qoyun!

Addım 3: Joystick hazırlayın

Joystick hazırlayın
Joystick hazırlayın
Joystick hazırlayın
Joystick hazırlayın

Şəbəkədə gəzmək və seçim etmək üçün joystick etmək üçün bir çörək taxtasından istifadə etdik. İstiqamət tənzimləyicisini (hər düymə üçün 6 düymə, 1) və seçmə düyməsini (oyunçunun hərəkətinə daxil olan) müəyyən edən dövrə (diaqrama baxın) yaratmaq üçün atlayıcılar, rezistorlar və düymələr yerləşdirdik. 5V və yer Arduino nisbi limanlarına bağlıdır. Analoq və rəqəmsal giriş pinləri üçün müvafiq olaraq A5 və 2 Arduino portlarını seçdik.

Seçim düyməsi, anti-bunching rezistoru olan əsas sxemə malikdir. İstiqamət əmri, gərginlik bölücü dövrə kimi işləyən bir rezistor nərdivanına əsaslanır: analog girişdəki gərginlik basılan düymədən asılıdır və Arduino tərəfindən bir əmr istiqaməti olaraq şərh olunur.

Addım 4: Kodu yazın

Kodu yazın
Kodu yazın

İstifadə etməyiniz üçün kodumuzu yüklədik:) Əvvəlcə Arduino ilə elektrik əlaqələri qurun. Bir az asanlaşdırmaq üçün Arduinonun yanında mini çörək taxtası qoyduq. Arduino "GND" və "5V" ni çörək taxtasının 2 sətrinə bağladıq, sonra hər bir paneldən müvafiq torpaq və Vdc bağladıq. Məlumat Giriş və Məlumat Çıxış üçün panellərin hər biri üçün 13, 10, 7 və 4 olmaqla 4 fərqli Arduino sancağı seçdik. PL9823 LED -ləri, LED -in sıra sırası ilə fərdi olaraq həll edilə bilər. Məsələn, 1 -ci LED -i müəyyən bir rəngə çevirmək istəyirsinizsə, LED -ə [0] müraciət edin. 16 -cı LED üçün ünvan LED [15]. İndi kod yazmağa və gözəl işıqlarla oynamağa hazırsınız! Aşağıda 3D tic-tac-toe oyununun kodunun ümumi izahı verilmişdir.

3D4x oyun kodu

Mikro idarə olunan LED-ləri idarə etməyə imkan verən fastled.h kitabxanasından istifadə edirik.

Kub, hər bir elementin müvafiq işığa görə 5 vəziyyətdən 1 -də ola biləcəyi "TTTMap" 3D tamsaytında faktiki olaraq yadda saxlanılır: 0 = oyunçu yoxdur, 1 = oyunçu 1, 2 = oyunçu 2, 3 = qazanan kombinasiyada 1 oyunçu və 3 = qazanan kombinasiyada 2 oyunçu. TTTMapdakı virtual kubun elementlərini həqiqi LED -lərlə müqayisə etmək üçün LEDMap0, LEDMap1, LEDMap2, LEDMap3 tam ədədləri istifadə olunur.

"Quraşdırma" funksiyası panelə bağlı olan Arduino portlarını işə salır, bütün LED -ləri "qara" vəziyyətə gətirir və TTTMap massivinin elementlərini 0 -a endirir.

"Döngü" funksiyası "ReadButtonInput ()", "SendLED ()" və bir oyunçunun qalib gəlməsi halında "VictoryAnimation ()" funksiyalarını yerinə yetirir. Birinci funksiya istiqamət əmrinin analoq girişini və seçim düyməsinin rəqəmsal girişini oxuyur. "ButtonPushed" və "SelectPushed" boolean dəyişənləri düyməni basıldıqda hərəkətin dönmə sürətində təkrarlanmasının qarşısını almaq üçün istifadə olunur. "SendLED ()" funksiyası, TTTMapdakı məlumatlara uyğun olaraq serial nəzarət siqnalını göndərməklə LED -lərin vəziyyətini yeniləyir. Seçim düyməsinə hər dəfə basıldıqda "ReadButtonInput ()" tərəfindən çağırılan "CheckVictory ()" funksiyası əsas funksiyadır. Bu funksiya, məkandakı seçilmiş nöqtənin ətrafdakı sancaqlar ilə qalibiyyətli bir kombinasiya yaratdığını yoxlayır. Qalib birləşmə halında, TTTMapdakı xallar qazanan oyunçuya görə 3 və ya 4 nömrə ilə imzalanır və həyəcanlı "VictoryAnimation ()" qaçır!

Yenidən oynamaq üçün Arduino -da sıfırlama düyməsini vurun:)

Addım 5: Dostlarınızla oynayın

Dostlarınızla oynayın!
Dostlarınızla oynayın!
Dostlarınızla oynayın!
Dostlarınızla oynayın!
Dostlarınızla oynayın!
Dostlarınızla oynayın!

Burada heç bir izahat lazım deyil… Zövq alın!

Tövsiyə: