İçeriğe Geç

Fizz Buzz Oyunu Projesi

06 Nov 2023
Fizz Buzz Game

FizzBuzz Nedir?

FizzBuzz, programlamayı öğrenmenin ve zorluğunu denemenin yaygın bilinen bir yoludur. Bu egzersiz, belirli bir sayıya kadar saymayı hedefler ve temel programlama kavramlarını güçlendirmek için tasarlanmış basit bir görevdir. Sayılar arasında gezinirken, 3'ün katları "Fizz" adını alırken, 5'in katları "Buzz" olarak adlandırılır ve hem 3 hem de 5'e bölünenler ise "FizzBuzz" olarak anılır. Bu görev, döngüler, koşullu ifadeler ve algoritmik düşünme gibi temel programlama yeteneklerini geliştirmeyi amaçlar. Genellikle kod mülakatlarında adayların kodlama yeteneklerini, problem çözme yeteneklerini ve temel programlama yapılarını ne kadar iyi bildiğini değerlendirmek için kullanılır.

FizzBuzz Oyunu

FizzBuzz Oyunu, bölünebilme kurallarını eğitimsel ve etkileşimli bir şekilde öğretmek için kullanılan eğlenceli bir araçtır. Bu oyun, temel çarpma kavramlarını öğrenmek isteyen çocuklar ve yeni başlayanlar için öğrenmeyi daha ilgi çekici ve katılımcı bir deneyim haline getirmek için yaygın olarak kullanılır. Katılımcılar bir daire içinde otururlar ve sırayla 1'den başlayarak sayıları sayarlar. Bir oyuncu 3'e bölünebilen bir sayıyı bulduğunda "Fizz" der, 5'e bölünebilen bir sayıyı bulduğunda "Buzz" der ve hem 3 hem de 5'e bölünen bir sayıyı bulduğunda "FizzBuzz" der. Bu oyun, matematik öğrenmeyi eğlenceli hale getirirken temel aritmetik kavramlarını öğrenmelerine yardımcı olur.

Fizz Buzz ne için kullanılır?

Fizzbuzz'un temel kullanımı, bilgisayar bilimi eğitimi ve programlama mülakatlarında öğretim ve değerlendirme aracı olarak hizmet etmektir. Bu egzersiz, mantıklı düşünme becerilerini, koşullu mantık uygulama yeteneklerini ve belirli bir kural setini takip ederek kod oluşturma yeteneklerini değerlendirmenin basit ve etkili bir yolunu sunar. Eğitim ortamlarında, Fizzbuzz, temel programlama kavramlarını anlamalarına yardımcı olurken problem çözme yeteneklerini geliştirmeye yardımcı olur. Kodlama mülakatlarında ise, adayların kodlama yeteneklerini ve algoritmik düşünme yeteneklerini hızlı bir şekilde değerlendirmeye yardımcı olur. Gerçek dünya uygulamaları açısından sınırlı bir kullanım alanına sahip olsa da, kodlama becerilerini geliştirmek için önemli bir egzersiz olarak değerini korur.

Detaylar ve Algoritma

  1. Oyuncular 1'den saymaya başlarlar.

  2. Eğer sayı 3'e bölünebiliyorsa, "Fizz" derler.

  3. Eğer sayı 5'e bölünebiliyorsa, "Buzz" derler.

  4. Eğer sayı hem 3'e hem de 5'e bölünebiliyorsa, "Fizz Buzz" derler.

  5. Eğer hiçbiri geçerli değilse, sayıyı kendisi söylerler.

    Oyun devam eder ve oyuncular sırayla bu kuralları takip ederler. Bu sıkça programlama kavramlarını öğretmek ve mülakatlarda kodlama becerilerini değerlendirmek için kullanılır. İşte bu oyunun algoritması.

Gerekli Malzemeler

Devre Şeması

PicoBlockly Kodları

PicoBricks IDE ile yapabileceğiniz diğer Projeleri keşfedin!

MicroBlocks Kodları

MicroPython Kodları


from time import sleep
from machine import Pin
from machine import I2C
from picobricks import SSD1306_I2C
from picobricks import WS2812
import time

i2c = I2C(0, scl=Pin(5), sda=Pin(4), freq=200000)
oled = SSD1306_I2C(128, 64, i2c, addr=0x3c)
ws2812 = WS2812(6, brightness = 1)

def write_fizzbuzz():
    global i
    oled.fill(0)
    oled.text("{}".format("FizzBuzz"), 0, 25)
    oled.show()
    ws2812.pixels_fill((255, 0, 0))
    ws2812.pixels_show()
    time.sleep((0.75))

def write_fizz():
    global i
    oled.fill(0)
    oled.text("{}".format("Fizz"), 0, 25)
    oled.show()
    ws2812.pixels_fill((51, 255, 51))
    ws2812.pixels_show()
    time.sleep((0.75))

def write_i():
    global i
    oled.fill(0)
    oled.text("{}".format(i), 0, 25)
    oled.show()
    ws2812.pixels_fill((0 ,0 ,0 ))
    ws2812.pixels_show()
    time.sleep((0.75))

def write_buzz():
    global i
    oled.fill(0)
    oled.text("{}".format("Buzz"), 0, 25)
    oled.show()
    ws2812.pixels_fill((51, 51, 255))
    ws2812.pixels_show()
    time.sleep((0.75))

oled.fill(0)
while True:
    for i in range((101)):
        if (i % 15) == (0):
            write_fizzbuzz()
        elif (i % 3) == (0):
            write_fizz()
        elif (i % 5) == (0):
            write_buzz()
        else:
            write_i()
    oled.fill(0)
    oled.text("{}".format("END"), 0, 25)
    oled.show()
    time.sleep((3))

Arduino C Kodları


#include <Adafruit_NeoPixel.h>
#define PIN 6 
#define NUMPIXELS 1
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#include <Wire.h>
#include "ACROBOTIC_SSD1306.h"

void write_fizzbuzz() {
  oled.clearDisplay();
  oled.setTextXY(3, 1);
  oled.putString("FizzBuzz");
  pixels.setPixelColor(0,pixels.Color(255,0,0));
  pixels.show(); 
  delay(750);
}

void write_fizz() {
  oled.clearDisplay();
  oled.setTextXY(3, 1);
  oled.putString("Fizz");
  pixels.setPixelColor(0,pixels.Color(51,255,255));
  pixels.show(); 
  delay(750);
}

void write_buzz() {
  oled.clearDisplay();
  oled.setTextXY(3, 1);
  oled.putString("Buzz");
  pixels.setPixelColor(0,pixels.Color(51,51,255));
  pixels.show(); 
  delay(750);
}

void write_i(int i) {
  oled.clearDisplay();
  oled.setTextXY(3, 1);
  oled.putString(String(i));
  pixels.setPixelColor(0,pixels.Color(0,0,0));
  pixels.show(); 
  delay(750);
}

void setup() {
  //define dht sensor and Oled screen
  Serial.begin(115200);
  Wire.begin();  
  oled.init();                      
  oled.clearDisplay();
  pixels.begin();
  pixels.clear(); 
}

void loop() {
  oled.clearDisplay();

  for (int i = 1; i <= 100; i++) {
    if (i % 15 == 0) {
      write_fizzbuzz();
    } else if (i % 3 == 0) {
      write_fizz();
    } else if (i % 5 == 0) {
      write_buzz();
    } else {
      write_i(i);
    }
  }
  oled.clearDisplay();
  oled.setTextXY(3,1);
  oled.putString("THE END");
  delay(3000);
}
fizzbuz game on rasperry
ALT TAG
Ö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