Zum Inhalt springen

Zahlen-Ratespiel

06 Nov 2023
Number Guessing Game

Mystery Number Ratespielprojekt!

Inhaltsverzeichnis

    Wir sagen immer zu unseren Freunden: „Lass uns die Zahl erraten.“ Sie haben wahrscheinlich schon die Antworten gehört: „Nein, es ist größer.“ Nein, es ist kleiner. Wow, woher wusstest du das?“ Möchten Sie genau das nicht mit PicoBricks tun? Wir laden Sie zu einer Reise voller Mathematik und Intelligenz ein! Heute öffnen wir die Tür zu einem spannenden Projekt: dem Zahlen-Ratespiel-Projekt. 

    Dieses Projekt ist ein unterhaltsames Erlebnis, bei dem Sie Ihre mathematischen Fähigkeiten testen, Ihre Fähigkeiten zur Problemlösung verbessern und Ihre geistigen Fähigkeiten verbessern können.

    Das Spiel „Zahlen erraten“ ist ein unterhaltsames und interaktives Codierungsprojekt, bei dem die Spieler eine Zufallszahl innerhalb eines bestimmten Bereichs erraten müssen. Dieses Zahlen-Ratespiel-Projekt verfeinert nicht nur Ihre Programmierkenntnisse, sondern bietet den Spielern auch ein unterhaltsames Erlebnis, wenn sie versuchen, die richtige Zahl zu erraten. Ob Sie ein sind Anfänger Wenn Sie Programmieren lernen möchten oder ein Enthusiast sind, der ein spannendes Spieleentwicklungsprojekt sucht, ist Guess The Number Game eine großartige Wahl zum Erkunden und Genießen.

    Denken Sie daran, dass Sie in diesem Projekt viel mehr lernen werden, als nur die Zahl zu erraten …

    Erraten Sie die Zahl!

    Details und Algorithmus

    Drücken Sie die „Start“-Taste Taste um das Zahlen-Ratespiel zu starten. Um Ihre Prognose zu aktualisieren, führen Sie die folgenden Schritte aus. Wenn der Spieler auf der Fernbedienung die Aufwärtspfeiltaste drückt (wenn die Picobrick-Schätzung kleiner als die vom Spieler ausgewählte Zahl ist), wird die geschätzte Reichweite erneut halbiert und dieser Wert zur aktuellen Picobrick-Schätzung addiert. 

    Wenn der Spieler auf der Fernbedienung die Abwärtspfeiltaste drückt (wenn die Picobricks-Schätzung größer ist als die vom Spieler ausgewählte Zahl), wird die geschätzte Reichweite erneut halbiert und dieser Wert von der aktuellen Picobricks-Schätzung abgezogen. Wenn der Player „OK“ drückt Taste Aus der Ferne endet das Zahlen-Ratespiel und PicoBricks feiert. Das bedeutet, dass die vom Spieler gewählte Zahl richtig erraten wurde!

    Komponenten

    1X PicoBricks

    Schaltplan

    PicoBricks IDE-Codes der PicoBricks

    MicroBlocks-Codes von PicoBricks

    MicroPython-Codes der PicoBricks

    `
    “`
    from time import sleep
    from machine import Pin
    from machine import I2C
    from picobricks import SSD1306_I2C
    import machine
    from picobricks import NEC_16
    from picobricks import IR_RX
    import time
     
    
    i2c = I2C(0, scl=Pin(5), sda=Pin(4), freq=200000)
    oled = SSD1306_I2C(128, 64, i2c, addr=0x3c)
    pin_button = machine.Pin(10, machine.Pin.IN)
    def ir_callback(data, addr, ctrl):
        global ir_data
        global ir_addr, data_rcvd
        if data > 0:
            ir_data = data
            ir_addr = addr
            print(‘Data {:02x} Addr {:04x}’.format(data, addr))
            data_rcvd = True
    ir = NEC_16(Pin(0, Pin.IN), ir_callback)
    ir_data = 0
    data_rcvd = False
     
    
    def up():
        global i_g, n_r
        i_g += n_r
        oled.fill(0)
        oled.text(“{}”.format(str(“My gues:”)+str(i_g)), 0, 0)
        oled.show()
        n_r = int(n_r / (2))
        time.sleep((0.5))
     
    
    def ok():
        global i_g, n_r
        oled.fill(0)
        oled.text(“{}”.format(str(“Your number”)+str(i_g)), 0, 0)
        oled.text(“{}”.format(“Congratulations Picobricks “), 15, 32)
        oled.show()
        time.sleep((0.5))
     
    
    def down():
        global i_g, n_r
        i_g += (0) – n_r
        if i_g < (0):
            i_g = 0
        else:
            oled.fill(0)
            oled.text(“{}”.format(str(“My gues:”)+str(i_g)), 0, 0)
            oled.show()
        n_r = int(n_r / (2))
        time.sleep((0.5))
     
    
    oled.fill(0)
    oled.text(“{}”.format(“Press the Button “), 0, 20)
    oled.text(“{}”.format(“TO START!!!”), 15, 30)
    oled.show()
    while (pin_button.value()) == (0):
        pass
     
    
    while True:
        oled.fill(0)
        n_r = 64
        i_g = n_r
        oled.text(“{}”.format(str(“My gues:”)+str(i_g)), 25, 0)
        oled.text(“{}”.format(“Press \’ok\’ if I guess correctly”), 0, 30)
        oled.show()
        while True:
            if data_rcvd == True:
                data_rcvd = False
                if ir_data == IR_RX.number_up:
                    up()
                if ir_data == IR_RX.number_down:
                    down()
                if ir_data == IR_RX.number_ok:
                    ok()
                    break
    “`

    Arduino-Codes der PicoBricks

    #include <Wire.h>
    #include “ACROBOTIC_SSD1306.h”
    #define BUTTON_PIN 10
    #define DHTPIN 11
    //define the library

    const char* sentences[] = {
      “It is certain.”,
      “It is decidedly so.”,
      “Without a doubt.”,
      “Yes definitely.”,
      “You may rely on it.”,
      “As I see it, yes.”,
      “Most likely.”,
      “Outlook good.”,
      “Yes.”,
      “Signs point to yes.”,
      “Reply hazy, try again.”,
      “Ask again later.”,
      “Better not tell you now.”,
      “Cannot predict now.”,
      “Concentrate and ask again.”,
      “Don’t count on it.”,
      “My reply is no.”,
      “My sources say no.”,
      “Outlook not so good.”,
      “Very doubtful.”
    };

    const int numSentences = sizeof(sentences) / sizeof(sentences[0]);

    void setup() {
      //define dht sensor and Oled screen
      pinMode(BUTTON_PIN, INPUT);
      Wire.begin();
      oled.init();
      oled.clearDisplay();
      Serial.begin(9600);
    }

    void loop() {
      oled.setTextXY(3, 0);
      oled.putString(“Magic8PicoBricks”);
     
      if (digitalRead(BUTTON_PIN) == 1) {
        oled.clearDisplay();
        for (int i = 3; i > 0; i–) {
          oled.clearDisplay();
          oled.setTextXY(3, 7);
          oled.putString(String(i));
          delay(2000);
          oled.clearDisplay();
        }
     
        oled.clearDisplay();
        int randomIndex = random(0, numSentences);
        oled.setTextXY(0, 0);
        oled.putString(sentences[randomIndex]);
        delay(3000);
        oled.clearDisplay();

      }
    }
    Vorheriger Beitrag
    Nächster Beitrag

    Danke fürs Abonnieren!

    Diese E-Mail wurde registriert!

    Shoppen Sie den Look
    Wählen Sie Optionen

    Bearbeitungsoption

    Benachrichtigung wieder auf Lager

    Vergleichen

    Produkt ArtikelnummerBewertungBeschreibung Sammlung Verfügbarkeit Produktart Andere Details
    this is just a warning
    Anmeldung
    Einkaufswagen
    0 Artikel
    Same Day Shipping No Extra Costs
    Easy Returns Guarantee Return with Ease
    Secure Checkout Secure Payment