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 ekran, düğ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:
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ı)