İçindekiler:

Biraz Düşünmek Nedir? BBC Microbit ile Basit Bir Tahmin Oyunu Yapın!: 10 Adım
Biraz Düşünmek Nedir? BBC Microbit ile Basit Bir Tahmin Oyunu Yapın!: 10 Adım

Video: Biraz Düşünmek Nedir? BBC Microbit ile Basit Bir Tahmin Oyunu Yapın!: 10 Adım

Video: Biraz Düşünmek Nedir? BBC Microbit ile Basit Bir Tahmin Oyunu Yapın!: 10 Adım
Video: Eğitimde STEM Yaklaşımı ve STEM Keşif Haftası 2024, Haziran
Anonim
Biraz Düşünmek Nedir? BBC Microbit ile Basit Bir Tahmin Oyunu Yapın!
Biraz Düşünmek Nedir? BBC Microbit ile Basit Bir Tahmin Oyunu Yapın!

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…

Başlamadan Önce…
Başlamadan Önce…
Başlamadan Önce…
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ı

Tahmin Oyunu Kuralları
Tahmin Oyunu Kuralları

Oyunun kuralları aşağıdaki gibidir:

  1. 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.
  2. Oyuncu bir tahminde bulunur ve cevap kadar Sol Basmalı Düğmeye (A) basar - Örnek, oyuncu 5 tahmin ederse, düğmeye 5 kez basar
  3. Cevabı BIT'e göndermek için, oyuncu Sağ Basmalı Düğmeye (B) bir kez basar!
  4. Oyuncuların tahminleri doğruysa, oyuncu bir puan alır, aksi takdirde BIT bir puan alır.
  5. 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.
  6. 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

Bloklar Programı: Değişkenler
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

Fonksiyonlar
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

Program Başlangıcı ve Shake Events & Event Handlers
Program Başlangıcı 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:

  1. "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
  2. 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.
  3. 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.
  4. "Başlangıçta" temel bir BIT işlevi olduğundan, Blok Düzenleyicinin Temel programlama sekmesinden erişilebilir olması şaşırtıcı değildir.
  5. Öte yandan "sallamada", kullanıcı BIT'e hızlı sallama şeklinde bir girdi sağladığında çağrılan bir olay işleyicisidir.
  6. Bu nedenle, "sallamada" olay işleyicisi, Blok Düzenleyicisinin Giriş programlama sekmesinde bulunabilir.

Adım 6: Başlangıç Mesajı ve Görev İşlevleri

Başlangıç Mesajı ve Görev İşlevleri
Başlangıç Mesajı ve Görev İşlevleri
Başlangıç Mesajı ve Görev İşlevleri
Başlangıç Mesajı ve Görev İşlevleri
Başlangıç Mesajı ve Görev İşlevleri
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:

  1. İnsan oyuncudan yeni bir girdi kabul etmeden önce playerGuess değişkenini sıfıra başlatır
  2. 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
  3. 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.
  4. 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

Düğmeye Tıklama Etkinliği - BIT Mücadelesine Yanıt Verin!
Düğmeye Tıklama Etkinliği - BIT Mücadelesine 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:

  1. BIT'in 0 ile 6 arasında hangi sayıyı düşündüğünü tahmin edin
  2. 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

B Düğmesi Tıklama Etkinliği - BIT Yarışmasına Yanıt Gönderin!
B Düğmesi Tıklama Etkinliği - BIT Yarışmasına Yanıt Gönderin!
B Düğmesi Tıklama Etkinliği - BIT Yarışmasına Yanıt Gönderin!
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:

  1. KONTROL bayrağı True olarak ayarlanır - BIT'in tahminini oyuncularınkiyle karşılaştırması için bir sinyal
  2. 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!
  3. Oyuncular BIT'lerinkiyle eşleştiğini tahmin ederse, showWin() işlevi çağrılır - oyuncu bu turu kazanır!
  4. Değilse, showLose() işlevi çağrılır - BIT bu turu kazanır!
  5. 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
  6. 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ı

Kazanma/Kaybetme ve İşlevlerin Geri Kalanı
Kazanma/Kaybetme ve İşlevlerin Geri Kalanı
Kazanma/Kaybetme ve İşlevlerin Geri Kalanı
Kazanma/Kaybetme ve İşlevlerin Geri Kalanı
Kazanma/Kaybetme ve İşlevlerin Geri Kalanı
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.

  1. 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
  2. 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.
  3. 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

Simülatör ve Kod
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: