İçindekiler:
- Adım 1: Başlamadan Önce…
- 2. Adım: Tahmin Oyunu Kuralları
- Adım 3: Bloklar Programı: Değişkenler
- Adım 4: Fonksiyonlar
- Adım 5: Program Başlatma ve Shake Events & Event Handlers
- Adım 6: Başlangıç Mesajı ve Görev İşlevleri
- Adım 7: Bir Tıklama Etkinliği Düğmesi - BIT'lerin Meydan Okumasına Yanıt Verin
- Adım 8: B Düğmesi Tıklama Etkinliği - BIT Yarışmasına Yanıt Gönderin
- Adım 9: Kazanma/Kaybetme ve İşlevlerin Geri Kalanı
- Adım 10: Simülatör ve Kod
Video: Biraz Düşünmek Nedir? BBC Microbit ile Basit Bir Tahmin Oyunu Yapın!: 10 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Birkaç çevrimiçi makalede onlar hakkında olumlu eleştiriler okuduktan sonra birkaç BBC Mikrobit aldım.
BIT'e alışmak için çevrimiçi Microsoft Blocks Editor ile birkaç saat oynadım ve basit bir tahmin oyunu buldum.
Bu IBLE'da oyunun kuralları hakkında konuşacağız ve Blocks Editor'da farklı kod bloklarında birleştirilmiş fonksiyonlar arasında dolaşacağız.
Son olarak, heyecanlı izleyiciler çevrimiçi simülatöre gidebilir ve bu basit oyuna bir şans verebilir.
Başlayalım.
Adım 1: Başlamadan Önce…
Donanım
BBC Microbit kartını tanımak kolaydır. Bu IBLE için bilmeniz gereken tek şey, 2 basma düğmeli, bir dizi küçük LED'li ve güç kaynağı görevi gören ve karta bir program yüklemek için bir araç olarak işlev gören bir mikro USB soketi olan küçük bir kart olmasıdır..
Minik LED dizisi, farklı desenlerde yanacak şekilde programlanabilir.
Not:
Bu IBLE için fiziksel panoya ihtiyacınız yok! BBC Microbit sitesinde, çevrimiçi olarak geliştirdiğiniz kodu test etmek için çevrimiçi bir simülatör bulunur.
Yazılım
Bu IBLE, BBC Microbit ve/veya Online Blocks Editor'ı kullanmaya başlamanın ayrıntılarına girmez.
İzleyiciler, sonraki adımlara geçmeden önce bu BBC Micorbit kaynağını keşfetmeye teşvik edilir.
BBC Microbit, programlamayı çok kullanıcı dostu bir yaklaşım kullanarak öğretmek için tasarlanmıştır ve bu nedenle başka bir programlama diline aşina olmak güzel bir şeydir, ancak özellikle programlama öğrenmek için Microsoft Blocks Editor'ı kullanacaksanız gerekli değildir.
Yine de, diğer birkaç mikro denetleyici programlama platformuna sahip olduğum ve bunlarla oynadığım göz önüne alındığında, BBC Microbit'ten başlamak kadar kolay bir ürünle henüz karşılaşmadım.
2. Adım: Tahmin Oyunu Kuralları
Oyunun kuralları aşağıdaki gibidir:
- BIT açılırken bir sayı düşünür ve LED paneline bir mesaj yazdırarak insan oyuncuyu bu sayının ne olduğunu tahmin etmeye zorlar ve bir yanıt bekler.
- Oyuncu bir tahminde bulunur ve cevap kadar Sol Basmalı Düğmeye (A) basar - Örnek, oyuncu 5 tahmin ederse, düğmeye 5 kez basar
- Cevabı BIT'e göndermek için, oyuncu Sağ Basmalı Düğmeye (B) bir kez basar!
- Oyuncuların tahminleri doğruysa, oyuncu bir puan alır, aksi takdirde BIT bir puan alır.
- Bir oyuncu aralığın dışında bir sayı tahmin ederse, diğer oyuncu bir puan alır - BIT, LED ekranında büyük bir X gösterir ve yeni bir sayı tahmin etmeye devam eder ve meydan okumayı tekrarlar; Örnek: BIT, 1 ile 5 arasında bir sayı tahmin etmeniz için size meydan okuduysa ve siz 6 tahmin ettiyseniz veya SIFIR tahmin ettiyseniz (A Düğmesine basmadan önce B Düğmesine basarak), o tur geçersiz sayılır.
- Meydan okuma yanıtı, oyunculardan biri izin verilen maksimum puana ulaşana kadar devam eder.
Yeni Bir Oyuna Başlamak:
İstediğiniz zaman yeni bir oyuna başlamak için BIT'i sallamanız yeterlidir! Veya gücü kesin ve yeniden bağlayın.
Adım 3: Bloklar Programı: Değişkenler
Program, aşağıda listelenen işlevlerine uyacak şekilde adlandırılmış birkaç değişken kullanır. Bu değişkenler Blocks Editor'da Variables Programming sekmesine tıklanarak oluşturulabilir.
BIT_SCORE - BIT tarafından atılan puanların kaydını tutar
bitGuessed - Bu değişken, BIT tarafından tahmin edilen rastgele değeri tutar
KONTROL - Doğru olarak ayarlandığında, BIT, oyuncuların tahminlerinin BIT'lerin tahminlerine eşit olup olmadığını kontrol eder
GAME_RANGE - Bu sayı, BIT'in veya bir oyuncunun ne kadar yüksek tahmin edebileceğini sınırlar
Örnek: 6'ya ayarlanırsa, oyunculardan biri 1'den 6'ya kadar tahminde bulunabilir.
MSG - Oyunun içeriğine göre farklı mesajlar gösterecek şekilde değiştirilen bir dize
PLAYER_SCORE - oyuncu tarafından atılan puanların kaydını tutar
playerGuess - Oyuncunun tahmin ettiği sayı bu değişkene kaydedilir
NOT
Öğe adlı ilk değişken, genel ve varsayılan bir değişkendir ve göz ardı edilebilir
Adım 4: Fonksiyonlar
Öğrenme sürecinin bir parçası olarak ve daha iyi bir organizasyon için kod, ana programda çağrılabilecek veya çağrılabilecek bir dizi işleve göre düzenlenmiştir. Değişkenler gibi, fonksiyonlar da Gelişmiş > Fonksiyon Programlama sekmesine tıklayarak oluşturulabilir ve erişilebilir.
Aşağıda işlevlerin kısa bir açıklaması verilmiştir:
anonsWinner - Bu fonksiyon kazanan oyuncuya gönderilen Winning mesajını yazdırır
doChallenge - BIT'in bir sayı tahmin etmek ve oyuncuya meydan okumak için çağırdığı işlev
showBadGuess - Oyunculardan herhangi biri izin verilen aralığın dışında tahmin ederse, LED panelinde büyük bir X ile bir mesaj görüntüler
showLose - BIT, oyuncu üzerinde bir meydan okuma turu kazanırsa çağrılır
showMessage - oyuncuya belirli bir aralıktaki bir sayıyı tahmin etmesi için meydan okumak için bir mesaj sunar
showWin - oyuncu BIT üzerinden tahmin turunu kazandığında çağrılır
Adım 5: Program Başlatma ve Shake Events & Event Handlers
"Başlangıçta" ve "sallamada", sırasıyla "başlangıç" olayı ve "sallama" olayları gerçekleştiğinde çağrılan olay işleyicileridir. Blocks kodundan görüldüğü gibi, bu iki olay işleyici çağrıldığında ne olur:
- Oyun başladığında mesajı görüntülemek için showMessage() işlevi çağrılır.
- Mesaj görüntülendikten sonra 650 mili saniyelik kısa bir duraklama var
- BIT'in bir sayı tahmin ettiği ve insan oyuncunun bir tahmin göndermesini beklediği doChallenge() işlevi çağrılır.
Bir sonraki adımda iki işlevi ele alacağız.
Bununla birlikte, "başlangıçta" ve "sallamada" olay işleyicileri arasında temel farklılıklar vardır:
- "Başlangıçta" olay işleyicisi, BIT her başlatıldığında çalışır - BIT'e giden gücün bağlantısını kesme ve yeniden bağlamada olduğu gibi
- Program başlatıldığında yalnızca bir kez gerçekleşmesi gereken belirli şeyler "başlangıçta" olarak tanımlanır ve programın tamamında başka hiçbir yerde tanımlanmaz.
- Böyle bir şey GAME_RANGE değişkenini başlatmaktır - bu durumda, 6 olarak başlatılır, bu da oyuncuların 1 ile 6 arasında bir sayı tahmin edebileceği anlamına gelir.
- "Başlangıçta" temel bir BIT işlevi olduğundan, Blok Düzenleyicinin Temel programlama sekmesinden erişilebilir olması şaşırtıcı değildir.
- Öte yandan "sallamada", kullanıcı BIT'e hızlı sallama şeklinde bir girdi sağladığında çağrılan bir olay işleyicisidir.
- Bu nedenle, "sallamada" olay işleyicisi, Blok Düzenleyicisinin Giriş programlama sekmesinde bulunabilir.
Adım 6: Başlangıç Mesajı ve Görev İşlevleri
showMessage() Başlangıç Mesajı işlevi, net bir ekran komutuyla BIT'lerin LED paletini temizleyen ve oynatıcıyı bir sayı tahmin etmeye zorlayan bir kayan mesaj görüntüleyen basit bir işlevdir.
showMessage fonksiyon bloğundan görüldüğü gibi, GAME_RANGE değişkenine aşağıdaki gibi basit bir mesaj görüntülemek için birkaç sabit dize parçası eklenir:
Tahmin et 0 - 6!
doChallenge() işlevi, her sorgulama turunun başında çağrılır ve bu nedenle doChallenge işlev bloğundan görüldüğü gibi aşağıdakileri yapar:
- İnsan oyuncudan yeni bir girdi kabul etmeden önce playerGuess değişkenini sıfıra başlatır
- CHECK değişkenini false olarak başlatır - bu, turun başlamak üzere olduğu ve her iki oyuncunun tahmin ettiği sayıları karşılaştırmanın henüz zamanı olmadığı anlamına gelir
- Daha sonra ve en önemlisi, BIT, GAME_RANGE tarafından tanımlanan aralık içinde rastgele bir sayı seçer ve bunu bitGuessed değişkenine kaydeder.
- Son olarak, LED paleti, BIT'lerin meydan okumasına yanıt olarak insan oyuncudan bir giriş yapmasını isteyen bir soru işareti sembolü ile aydınlanır!
Not
GAME_RANGE değişken değeri önceki adımda tartışıldığı gibi değiştirilirse oyununuz biraz farklı görünebilir ve hareket edebilir.
Birleştirme işlevi bir dize işlevidir ve Blok Düzenleyicinin Metin programlama sekmesinden erişilebilir.
Adım 7: Bir Tıklama Etkinliği Düğmesi - BIT'lerin Meydan Okumasına Yanıt Verin
BIT'lerin LED ekranında büyük soru işareti göründüğünde, insan oyuncunun bu zorluğuna yanıt olarak aşağıdakileri yapmak yeterlidir:
- BIT'in 0 ile 6 arasında hangi sayıyı düşündüğünü tahmin edin
- Cevabınız kadar A Düğmesine basın - Örneğin cevabınız 3 ise, A Düğmesine 3 kez basın
Açıkçası, düğmeye basmak bir kullanıcı girişidir ve bu nedenle "düğmede" olay işleyicisine Bloklar düzenleyicisinin Giriş programlama sekmesi aracılığıyla erişilebilir. Kullanıcı A Düğmesine her bastığında, bu olay işleyici aşağıdakileri yapar:
- GAME_RANGE limiti içinde olduğu sürece playerGuess değişkeninin değerini 1 artırın (bu durumda 6)
- Oyuncu 7 veya daha yüksek bir sayı gönderirse, tahmin geçersiz olur ve playerGuess sıfıra sıfırlanır, bu da esasen oyuncuların tahminini geçersiz kılar.
Bir sonraki eylem, bir sonraki adımda üzerinde duracağımız meydan okumaya yanıtı göndermektir.
Adım 8: B Düğmesi Tıklama Etkinliği - BIT Yarışmasına Yanıt Gönderin
İnsan oyuncu, B Düğmesine bir kez basarak cevabı BIT'e gönderir. BIT, görüntüdeki kod işaretçilerinde belirtildiği gibi oyuncuların yanıtını alır almaz "tıklandığında" olay işleyicisinde B Düğmesinde bir dizi adım gerçekleşir:
- KONTROL bayrağı True olarak ayarlanır - BIT'in tahminini oyuncularınkiyle karşılaştırması için bir sinyal
- Puanlama, yalnızca her iki oyuncu da Sıfırdan büyük ve GAME_RANGE limiti (6'dan) dahilinde bir sayı tahmin ederse gerçekleşir ve değilse, showBadGuess() işlevi çağrılır - iyi tahmin eden oyuncu bir puan kazanır ve kötü tahmin yapan oyuncu bir kaybeder!
- Oyuncular BIT'lerinkiyle eşleştiğini tahmin ederse, showWin() işlevi çağrılır - oyuncu bu turu kazanır!
- Değilse, showLose() işlevi çağrılır - BIT bu turu kazanır!
- Her turun sonunda, iki oyuncudan birinin 3 puan kazanıp kazanmadığını görmek için anonsWinner() işlevi tarafından bir kontrol gerçekleştirilir - eğer öyleyse, oyun sona erer ve nihai kazanan duyurulur ve tüm puanlar ve mesajlar Sıfırla
- BIT, doChallenge() işlevini çağırarak bir meydan okuma yayınlayarak oyunu yeniden başlatır ve oyuncunun yanıt vermesini bekler ve işlem tekrarlanır.
Sonraki adımlarda yeni işlevleri tartışacağız.
Beklemek! SIFIR nasıl tahmin edersiniz?
- random() Math işlevine bakarsanız, başlangıç değerinin Sıfır olarak ayarlandığını ve değiştirilemediğini görebilirsiniz.
- Bu nedenle BIT, bu sınırlamanın bir sonucu olarak bir Sıfır tahmin etmekte ve oyuncuya meydan okumakta serbesttir.
- Benzer şekilde, insan oyuncu, önce A Düğmesine tıklamadan B Düğmesine tıklayarak bir Sıfır tahmini gönderebilir!
- Buna izin verilirse, insan oyuncunun oynamak için herhangi bir çaba göstermesi gerekmez ve bu hiçbir anlam ifade etmez!
- Bu nedenle, bu sınırlama Bullet #2 ile telafi edilmiştir. yukarıda tartışılan
Adım 9: Kazanma/Kaybetme ve İşlevlerin Geri Kalanı
Tüm bu işlevler, önceki adımda görüldüğü gibi Düğme B "tıklandığında" olay işleyicisi tarafından çağrılır.
Bu işlevler oldukça basittir ve bu zamana kadar, uygun şekilde adlandırılmış değişkenlerin ve Blocks Editor'ün görsel özelliklerinin bir kombinasyonu tarafından oluşturulan kodun sezgisel ve anlatısal doğasına aşina olmalısınız.
- showWin() işlevi, oyuncunun bu meydan okuma turunu kazandığını belirten bir mesaj görüntüler ve PLAYER_SCORE değişkenini 1 artırır
- Benzer şekilde, showLose() işlevi, oyuncunun kötü bir tahminde bulunduğunu gösterir ve BIT_SCORE değişkenini 1 artırarak BIT'e bir puan verir.
- showBadGuess() işlevi, ekranda oyunculardan birinin kötü bir tahminde bulunduğunu (0 veya 6'dan büyük) belirten büyük bir X görüntüler - bu durumda kötü oyuncu bir puan kaybeder ve diğer oyuncu bir puan alır!
Ve son olarak, anonsWinner() işlevi, 3 tur meydan okuma/yanıttan sonra büyük kazananın kim olduğunu duyurma görevini yerine getirir:
- PLAYER_SCORE ve BIT_SCORE puan değişkenlerini sıfırlama
- Kısa bir süre duraklama ve bu IBLE'nin önceki adımında (6) açıklanan showMessage () başlatma işlevini çağırarak yeni bir oyun başlatmak
Son olarak, simülatöre ve koda!
Adım 10: Simülatör ve Kod
Kod, burada bulunan çevrimiçi simülatörde çalışıyor
- Simülatör, sayfanın sol alt kısmında bulunur
- Alternatif olarak, bir BBC Microbit'iniz varsa, kodu indirmek için İndir düğmesi kullanılabilir.
- IBLE'nin başında belirtildiği gibi, Blocks Editor'da kodu oluşturmak veya kodunuzu simüle etmek ve test etmek için bir BBC Microbit'e ihtiyacınız yok, ancak bu benim gibi meraklı kişiler için işe yaramıyor!
Düzenle Düğmesine İlişkin Bir Not
- Gözlemlediyseniz, kod herkese açık alandadır ve sağ üstteki Düzenle düğmesini kullanarak kodu düzenlemenin bir yolu vardır.
- Ancak, içtenlikle bu kodun bir kopyasını almanızı ve orijinal versiyonun bu IBLE'ın yararına korunması için ihtiyaçlarınıza göre değiştirmenizi rica ederim.
Teşekkürler! Ve mutlu kodlama!!!:-)
Önerilen:
Basit Bir Tahmin Oyunu - Python + XBees + Arduino: 10 Adım
Basit Bir Tahmin Oyunu - Python + XBees + Arduino: Oyun şu şekilde çalışır: 'a' – 'h'-> Doğru harfi tahmin et: Kazandın! ?-> Yanlış harfi tahmin et: Oyun bitti mi?-> 'a' - 'h' dışında başka bir karakter tahmin edin: Oyun bitti mi? Arduino'nuz size izin verecek
Basit Python Sayısı Tahmin Oyunu: 11 Adım
Basit Python Sayı Tahmin Oyunu: Bu dersimizde Pycharm uygulamasında basit Python sayı tahmin oyununun nasıl oluşturulacağını öğreteceğiz. Python, hem yeni başlayanlar hem de uzmanlar için harika bir betik dilidir. Python'daki kodlama stilinin okunması ve takip edilmesi kolaydır
Bir Dizi Resimden Basit Bir EPUB Yapın: 13 Adım
Bir Dizi Resimden Basit Bir EPUB Yapın: Bu teknik bir proje değildir. Bir EPUB'un ne olduğu ve bir EPUB'un ne olmadığı hakkında uçup gitmeyeceğim. Size diğer dosya formatlarından nasıl farklı olduğunu söylemeyeceğim. EPUB, yayıncılıktan çok, çok daha fazlası için kullanılabilen süper havalı bir formattır
Arduino İle Basit Bir İşleme Oyunu Nasıl Kontrol Edilir: 6 Adım
Arduino ile Basit Bir İşleme Oyunu Nasıl Kontrol Edilir: Herkese Merhaba, Bu Derste, nasıl bir "bağ" oluşturulacağını göreceğiz. Bir İşleme çizimi ve bir Arduino kartı arasında. Bu örnekte, basit bir oyunda bir uçağı kontrol etmek için ultrasonik bir modül kullanılacaktır. Yine, bu eğitim sadece bir örnektir
Cep LED Işık (Bir Işın Kılıcı gibi biraz.. Biraz Faydalı): 4 Adım
Cep LED Işığı (bir Işın Kılıcı gibi. Biraz Kullanışlı): Bu Eğitilebilir Kitap umarım size nasıl kullanışlı, kullanışlı ve muhtemelen eğlenceli bir cep lambası yapacağınızı gösterir. 1. görüntü kalitesi için özür dilerim. makro açıkken bile kamera yakın mesafeden sux. Ayrıca, bunun için yaptığım gibi talimatları da çizmek zorunda kaldım