İçeriğe Geç

DIY Bingo Rastgele Sayı Üreteci

18 Dec 2023
DIY Bingo Random Number Generator

Kendin yapmak istemez misin Bingo için rastgele sayı üreteciYılbaşı eğlencelerinin vazgeçilmez aktivitelerinden biri olan ? Bu projede kendi bingo sayı üretecimizi şu şekilde yapıyoruz: Ahududu Pi Kiti Pikotuğlalar. Merak etmeyin, adım adım nasıl yapılacağını anlattık ve gerekli Python kodlarını sizin için hazırladık.

Kodlamada yenisiniz... Öğrendiklerinizi test etmek istiyorsunuz. Yılbaşı gecesi yaklaşıyor. Yılbaşı gecesinin en eğlenceli aktivitelerinden biri olan bingo oyunu aklınıza geldi. Kendi kendinize şöyle düşündünüz: "Keşke öğrendiğim kodlarla kendi bingo sayı üretecimi yapabilseydim." İşte bu aşamada size yardımcı olacağız geleceğin yazılımcısı :)

Adım adım bir bingo oyunu sayı üretecinin nasıl oluşturulacağını öğrenelim.

Rastgele Sayı Oluşturucu Nasıl Yapılır?

Adım 1: Gerekli Malzemeleri Toplayalım

Eğer bir Picobrick'iniz varsa şanslısınız çünkü ihtiyacınız olan tek şey bir Picobrick ve aşağıda sizinle paylaştığımız bingo kartlarını basmak için bir yazıcı. 

Bu projede kullanacağımız OLED ekrandüğme Ve zil PicoBricks'te. Bağlantı şemasını incelemek isterseniz işte buradasınız:

Adım 2: Gerekli Kodları Hazırlayıp Yükleyelim

Kodu sizler için 3 farklı platformda hazırladık. İstediğinizi seçin ve PicoBricks'inize yükleyin. Nasıl yapacağınızı bilmiyorsanız rehberimize göz atabilirsiniz:

PicoBricks Nasıl Kullanılır?

BricksIDE Kodları

BricksIDE ile kendi geliştirdiğimiz blog tabanlı programlama IDE, resimdeki gibi bir blok yapısı hazırladığınızda Bingo sayı üreteciniz hazır olacaktır.

Arduino C Kodları


#katmak
#include "ACROBOTIC_SSD1306.h"

#define butonuPin 10
#define POT_PIN 26

int düğmeDurumu = DÜŞÜK;
int lastButtonState = DÜŞÜK;
unsigned long lastDebounceTime = 0;
imzasız uzun debounceDelay = 10;

int sayılar[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
                 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
                 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
                 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
                 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99};

geçersiz kurulum() {
  Seri.begin(9600);
  Wire.begin();
  pinMode(buttonPin, INPUT);
  oled.init();
  oled.clearDisplay();
  pinMode(POT_PIN, INPUT);
  oled.clearDisplay();
  oled.setTextXY(0, 5);
        oled.putString("Bingo!");
        oled.setTextXY(3, 2);
        oled.putString("Düğmeye Basın");
       oled.setTextXY(2, 0);
        oled.putString("----------------");
        oled.setTextXY(5, 2);
        oled.putString("Başlamak İçin");
  randomSeed(analogRead(POT_PIN));
}

geçersiz döngü () {
  int okuma = digitalRead(buttonPin);

  if (okunuyor != lastButtonState) {
    lastDebounceTime = milis();
  }

  if ((millis() - lastDebounceTime) > debounceDelay) {
    if (okunuyor != düğmeDurumu) {
      ButtonState = okuma;

      if (buttonState == YÜKSEK) {
        int rastgeleIndex;
        int numarası;

        Yapmak {
          randomIndex = random(0, sizeof(sayılar) / sizeof(sayılar[0]));
          sayı = sayılar[randomIndex];
        } while (sayı == 0);

        oled.clearDisplay();
        oled.setTextXY(0, 5);
        oled.putString("Bingo!");
        oled.setTextXY(2, 0);
        oled.putString("----------------");
        oled.setTextXY(6, 0);
        oled.putString("----------------");
        oled.setTextXY(4, 7);
        oled.putString(String(sayı).c_str());

        
        sayılar[randomIndex] = 0;
      }
    }
  }

  lastButtonState = okuma;
}

MicroPhyton Kodları


zamandan içe uyku
makineden içe aktarma Pimi
makine ithalatından I2C
picobricks'ten SSD1306_I2C'yi içe aktar
ithalat makinesi
ithalat zamanı

i2c = I2C(0, scl=Pin(5), sda=Pin(4), frek=200000)
oled = SSD1306_I2C(128, 64, i2c, addr=0x3c)
pin_button = makine.Pin(10, makine.Pin.IN)
rastgele içe aktar

liste = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 ,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49 ,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74 ,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99 ".bölmek(",")
oled.fill(0)
oled.text("{}".format("Bingo"), 42, 5)
oled.text("{}".format("----------------"), 0, 15)
oled.text("{}".format("Düğmeye Basın"), 15, 25)
oled.text("{}".format("Başlamak İçin"), 15, 35)
oled.show()
Doğruyken:
    pin_button.value() ise:
        oled.fill(0)
        oled.text("{}".format("Bingo"), 42, 5)
        oled.text("{}".format("----------------"), 0, 15)
        oled.text("{}".format("----------------"), 0, 45)
        rastgele2 = rastgele.randint(0, len(liste)-1)
        sayı = liste[rastgele2]
        oled.text("{}".format(sayı), 52, 30)
        oled.show()
        zaman.uyku((0.3))
        list.remove(sayı)
Önceki Gönderi
Sıradaki Gönderi

Abone olduğun için teşekkürler!

Bu e-posta kaydedildi!

Görünümü satın alın
Seçenekleri Seçin

Seçeneği Düzenle

Stok Bildirimi

Karşılaştır

Ürün Stok KoduDeğerlendirmeAçıklama Kategori Uygunluk Ürün Tipi Diğer Detaylar
this is just a warning
Giriş Yap
Alışveriş Sepeti
0 Ürünler
Same Day Shipping No Extra Costs
Easy Returns Guarantee Return with Ease
Secure Checkout Secure Payment