İçindekiler:

Esp8266 ile Sheepshead Kart Oyunu: 4 Adım
Esp8266 ile Sheepshead Kart Oyunu: 4 Adım

Video: Esp8266 ile Sheepshead Kart Oyunu: 4 Adım

Video: Esp8266 ile Sheepshead Kart Oyunu: 4 Adım
Video: Почему ESP8266 лучше подходит к управлению модулем реле чем Arduino UNO🧐? 2024, Temmuz
Anonim
Esp8266 ile Sheepshead Kart Oyunu
Esp8266 ile Sheepshead Kart Oyunu

Sheepshead, teyzelerim ve amcalarımın aile toplantılarında oynadığı bir kart oyunudur. Avrupa'da ortaya çıkan bir kart oyunu alarak hiledir. Birkaç versiyonu var, bu yüzden benim versiyonum oynadığınızdan biraz farklı olabilir. Uyguladığım sürümde 3, 4 veya 5 oyuncu ile oynayabilirsiniz, 5 ideal oyuncu sayısıdır. Oyun standart bir 52 kart destesinden 32 kart kullanır.

Temel kurallar burada bulunabilir:

5 kişilik bir oyun için kuralların kısa bir özeti; her oyuncuya 6 kart dağıtılır ve kör oyuncuya iki kart dağıtılır. Dağıtıcının solundaki oyuncuya önce kör bahsi seçme şansı, ardından bir sonraki oyuncuya, biri kör bahsi seçene kadar veya tüm oyuncularda seçim değişikliği olana kadar vb. şans verilir. Eğer kimse seçmezse oyun baştan başlar ve yeni kartlar dağıtılır. Körü seçen kişiye seçici denir. Seçici, Kupa, Sopa veya Maça renklerinden birini arayarak bir partner seçer ancak elinde aynı renkten bir kart olmalıdır. Aranan takımın Asına sahip olan oyuncu ortaktır. Oyuncular oynanan ilk kartın rengini takip etmelidir, koz bir renktir. Ortak, çağrılan renk ilk kez lider olduğunda As'ı oynamalıdır. Seçici ve ortak, oyunu kazanmak için 61 puan almalıdır. Seçici veya ortak olmayan oyuncular bir takım oluşturur ve puanları onları yenmek için birleştirilir. Puanlama için yukarıdaki kurallar bağlantısına bakın.

3 ve 4 kişilik oyun için ortak yoktur ve sırasıyla 10 veya 8 kart dağıtılır.

En az bir oyun uygulamadım. Hiçbir oyuncu seçmediğinde, oyun en az oyuncu tarafından devam edebilir. En Az Kazanan, en az bir numara alan ve en az puanı alan oyuncudur.

Oyun geliştirme:

Bu proje için ilham kaynağım bir Sheepshead uygulaması oluşturmak ve aynı zamanda jquery öğrenmek istemekten geldi. Ayrıca kartların sürüklenip bırakılmasına yardımcı olması için dragula.js kullandım. esp8266, AP moduna alınır. Bağlanmak için "Sheepshead" ağına bağlanabilen ve https://191.168.1.1 web sitesine gidebilen bir WiFi cihazına ihtiyacınız var.

Bu benim ilk talimatım, bu yüzden herhangi bir geri bildirim için minnettar olurum. Elimden geldiğince sorularınızı yanıtlamaya çalışacağım.

Adım 1: Donanımı Oluşturma

Donanımı İnşa Etme
Donanımı İnşa Etme
Donanımı İnşa Etme
Donanımı İnşa Etme
Donanımı İnşa Etmek
Donanımı İnşa Etmek

Donanım Gereksinimleri

Bu, bir Wemos D1 Mini ile veya bir esp8266 - esp-07 veya esp-12 ile yapılabilir.

Esp8266 yapısı:

  • esp8266 (esp-07 veya esp-12)
  • esp8266 + konektörler için beyaz montaj panosu
  • 6 pinli dişi konnektör (isteğe bağlı)
  • LM317 voltaj regülatörü
  • (2) 10K Ohm direnç
  • 390 Ohm Direnç
  • 220 Ohm Direnç
  • 20 Ohm Direnç
  • (2) anlık butonlar
  • 100n seramik kondansatör
  • 10uF elektrolitik kapasitör
  • 220uF elektrolitik kondansatör
  • 1N4002 diyot (isteğe bağlı)
  • namlu konektörü (yan montaj kullandım ve 3 pinli erkek konektöre lehimledim)
  • proje kutusu
  • Güç kaynağı

Devreyi oluşturmak için kullandığım ExpressSCH ve ExpressPCB dosyalarını ekledim. Resimden de görebileceğiniz gibi, butonları eklemedim veya J2 konektörünü kullanmadım (esp8266'yı programlamak için FTDI232RL modülü ile kullanılabilir). Bunu bir esp8266 programcısı olarak kullanmak istiyorsanız, düğmelere ve J2 konektörüne ihtiyacınız olacak. Yazılımı veya verileri flaş etmek için cihazı (SW1) sıfırlamanız gerekir (SW2) düğmesine basarken basılı tutun, ardından (SW1) düğmesini bırakın ve ardından kodu yükleyin.

Herhangi bir bileşeni yerleştirmeden önce her bağlantıyı test ederek devreyi doğrulayın. Voltaj regülatörünün 3,3 volt çıkış verdiğini doğrulayın ve tüm bağlantıları iki kez kontrol edin. Emin değilseniz, lehimleme gerekmediğinden bir Wemos D1 mini kullanmanızı öneririm.

Adım 2: Yazılımı Yükleme

Yazılımın Yüklenmesi
Yazılımın Yüklenmesi

Yazılım

Bu proje için yazılımı dahil ettim. Her sınıf ve ne için kullanıldığı hakkında kısa bir açıklama yapacağım ama ayrıntılara girmeyeceğim. Bu oyun, bir esp8266'da bir kart oyununun yapılabileceğinin bir kanıtıdır. Oyunun henüz çözemediğim birkaç sorunu var. Örneğin, bir kullanıcı oturum açtığında ve bağlantısını kaybettiğinde oyundan serbest bırakılmaz ve oyuna yeniden bağlanamaz. Bunu aşmanın tek yolu oyunu sıfırlamak ve baştan başlamaktır. Oyun biraz yavaş ve bazen kartları yenilemez. Kullanıcı, kartları doğru şekilde göstermesi gereken tarayıcıyı yenileyebilir. Kullanıcı bağlantıyı ana ekranına kaydederse (iPhone'lar için), yenileme düğmesi kullanılamaz ve yenilemeyi imkansız hale getirir. Bazen küçük cihazlarda kartları körlüğe / körlüğe sürükleyip bırakmak zordur.

Card.h ve Card.ino Card sınıfı

Bu sınıf, kart takımını, derecesini, puanını ve hangi kartların koz olduğunu tutar.

Deck.h ve Deck.ino Deck sınıfı

Bu sınıf, kart destesi bilgilerini tutar. Desteyi karıştırma ve desteden kart alma yöntemine sahiptir. Desteyi karıştırmak için rastgele bir tohum kullanır

Hand.h ve Hand.ino

Bu sınıf, IGame arayüzünü uygular ve her oyuncunun Eli hakkında bilgi tutar. Seçici, Ortaklar ve Bayi kimdir. Sıranın kimde olduğunu, rengin ne olduğunu, ana rengin ne olduğunu, hangi el numarasını, oyuncu sayısını, kazananın kim olduğunu vb.

Player.h ve Player.ino Player sınıfı

Bu sınıf, oyuncunun seçtiği veya başarılı olduğu oyuncu adı, takım puanları gibi Oyuncu bilgilerini tutar ve oyuncuya mesaj görüntüler.

IGame.h ve IGame.ino IGame arabirim sınıfı

Bu sınıf, oyun akışını kontrol etmek için Deste, Kart ve Oyuncu sınıflarını içerir.

Sheepshead.ino

Web sitesine hizmet vermek için kurulum ve döngü işlevini tutar.

login.html ve login.js dosyaları

Bu dosyalar, kullanıcı oturum açma web sitesi sayfasının akışını kontrol eder.

koyunshead.html ve koyunshead.js dosyaları

Bu dosyalar web sitesindeki koyun süsü oyununun akışını kontrol eder.

Kart resimleri

kartın arkası da dahil olmak üzere her kartın görüntüsünü tutar.

İşte esp8266'ya yükleme yazılımının kısa bir açıklaması. Web'de daha ayrıntılı olarak açıklayabilecek birkaç örnek var. Arduino IDE yazılımını kullanarak yazılımı ve verileri bu şekilde yükledim.

  • Arduino yazılımını ve esp8266 kart dosyalarını kurun, daha fazla bilgi için https://github.com/esp8266/Arduino adresine bakın.
  • Wemos D1 mini kullanıyorsanız, Flash boyutunu 4M (1M SPIFFS) olarak ayarlayın. Genel bir esp8266 esp-07 veya esp-12 kullanıyorsanız, Flash boyutunu 1M (512 SPIFFS) olarak ayarlayın.
  • Arduino yazılımına bazı ek kütüphaneler kurmanız gerekebilir.
  • SPIFF verilerini yüklemek için bu bağlantıyı takip edin
  • Sheepshead yazılımını açın ve bilgisayarınıza yerleştirin.
  • Arduino IDE yazılımını başlatın ve Sheepshead projesini açın
  • Yükleme düğmesine tıklayarak Sheepshead kodunu esp8266 cihazına yükleyin. Wemos D1 Mini'yi kullanmıyorsanız, sıfırlama düğmesine (SW1) tıklayarak cihazı flaş moduna geçirmeniz gerekebilir, (SW2) düğmesine basarken basılı tutun, ardından (SW1) düğmesini bırakın ve ardından kodu yükleyin.
  • Menüdeki araçlara gidip "ESP8266 Sketch Data Upload" seçeneğine tıklayarak verileri esp8266 cihazına yükleyin. Cihazı flaş moduna geçirmek için yukarıdaki adımların aynısını uygulamanız gerekecektir.
  • Yazılım ve veriler yüklendikten sonra oyunu oynamaya hazırsınız.

3. Adım: Oyunu Oynamak

Oyun oynamak
Oyun oynamak
Oyun oynamak
Oyun oynamak
Oyun oynamak
Oyun oynamak

Bağlanmak için "Sheepshead" ağına bağlanabilen bir WiFi cihazına ihtiyacınız var ve ardından https://191.168.1.1 web sitesine gidin.

  • Oyuncular, adlarını girip Katıl'ı tıklatarak katılırlar. Oyun, 5 oyuncunuz olacağını varsayar, yoksa bir oyuncunun son oyuncu oyuna katılmadan önce oyuncu sayısını seçmesi gerekir.
  • Son oyuncu katıldığında kartlar dağıtılır ve oyuncu Başlat düğmesine tıkladığında oyun başlar.
  • Oyun, bir oyuncunun geçersiz bir kart oynamasına veya sıra dışı oynamasına izin vermez.
  • Bir kart tıklandığında daha görünür olması için boyutu artacaktır. İkinci kez tıklanırsa kart oynanır.
  • Oyuncu adı beyaz harflerle vurgulanır.
  • Sırada oynayacak oyuncunun adını ve kartını çevreleyen kırmızı bir kutu olacaktır.
  • Oyun, bir oyuncunun kör veya pas seçmesine izin vererek başlar. Bir oyuncu kör bahisi seçtiğinde, kartları kör bahisten oraya/elden oraya sürükleyip bırakabilir. Seçici, istediği kartlara sahip olduğunda, açılır menüden adı verilen bir renk seçmelidir.
  • Oyun, çağrılan takım için uygun bir karta sahip olduklarını doğrulayacaktır.
  • Oyun, ilk oyuncu ilk kartı oynadığında başlar, her oyuncu bir kart oynar ve elin kazananı görüntülenir. Puanlar her oyuncu/takım için hesaplanır ve görüntülenir.
  • Elin galibi ilk kartı oynar ve her oyuncu bir kart oynar.
  • Tüm kartlar oynanana kadar oyun devam eder
  • Bir kazanan belirlenir.
  • Sıradaki kişi krupiye olur ve yeni bir oyun başlar.

4. Adım: Sonuç

Bu benim ilk Eğitilebilirliğim ve geri bildiriminizi memnuniyetle karşılıyorum. Dediğim gibi bu, bir esp8266 cihazında bir kart oyununun yapılabileceğinin bir kanıtı. Birkaç sorunu var ama oynanabilir durumda. Yorumlarınızı ve önerilerinizi bekliyorum.

Önerilen: