• Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
Image

Les tutos pourtout comprendre

Exemple 1 : La trappe secrète

Présentation :
Lorsque les joueurs trouvent les deux boutons cachés (connectés sur IO1 et IO2), la trappe s'ouvre (connecté sur RLY1).

#include <sodega>
sodegaGame game_1("1_trappe_secrete");

void setup() {
    Serial.begin(115200);
    setCodeName("TRAPPE_SECRETE_V1.0");
    pinMode(IO1, INPUT_PULLUP);
    pinMode(IO2, INPUT_PULLUP);
    pinMode(RLY1, OUTPUT);
    sodegaBegin();
}

void loop() {
    bool condition = !digitalRead(IO1) && !digitalRead(IO2);
    game_1.setGameSolved(condition);
    if(game_1.getGameSolved()){
        digitalWrite(RLY1, HIGH);
    } else {
        digitalWrite(RLY1, LOW);
    }
    delay(50);
}

Exemple 2 : Cryptex

Présentation :
Les joueurs doivent terminer le puzzle nommé "1_trappe_secrettes". Une fois ce puzzle ouvert, il reçoivent un indice qui permet la résolution du puzzle "1_cryptex".
Pour éviter que le cryptex puisse être réalisé par lles joueurs avant que "1_trappe_secrettes" soit terminé, celui ci est bloqué dans le code.

#include <sodega>
sodegaGame game_1("1_cryptex");
sodegaExternalGame game_2("1_trappe_secrete");

void setup() {
    Serial.begin(115200);
    setCodeName("CRYPTEX_V1.0");
    pinMode(IO1, INPUT_PULLUP);
    pinMode(RLY1, OUTPUT);
    sodegaBegin();
}

void loop() {
    game_1.setGameLocked(!game_2.getGameSolved());
    game_1.setGameSolved(!digitalRead(IO1));
    if(game_1.getGameSolved()){
        digitalWrite(RLY1, HIGH);
    } else {
        digitalWrite(RLY1, LOW);
    }
    delay(50);
}
        

Exemple 3 : Combinaison boutons

Présentation :
Les joueurs doivent terminer le puzzle nommé "1_trappe_secrettes". Une fois ce puzzle ouvert, il reçoivent un indice qui permet la résolution du puzzle "1_cryptex".
Pour éviter que le cryptex puisse être réalisé par lles joueurs avant que "1_trappe_secrettes" soit terminé, celui ci est bloqué dans le code.

#include <SODEGA_V3.h>
#include <Adafruit_NeoPixel.h>
int step = 0;
bool input[5] = {false};
int code[] = {3,1,0,2,4};
sodegaGame game_1("1_combinaison_boutons");
Adafruit_NeoPixel pixels(5, IO1, NEO_GRB + NEO_KHZ800);

void setup() {
  setCodeName("COMBINAISON_BOUTONS_V1.0");
  Serial.begin(115200);
  sodegaBegin();
  pinMode(IO1, OUTPUT);
  pinMode(IO2, INPUT_PULLUP);
  pinMode(IO3, INPUT_PULLUP);
  pinMode(IO4, INPUT_PULLUP);
  pinMode(IO5, INPUT_PULLUP);
  pinMode(IO6, INPUT_PULLUP);
  pinMode(RLY1, OUTPUT);
  pinMode(RLY2, OUTPUT);
  pixels.begin();
  pixels.setBrightness(255);
  input_address[0] = IO2;
  input_address[1] = IO3;
  input_address[2] = IO4;
  input_address[3] = IO5;
  input_address[4] = IO6;
}

void loop() {
  bool newButton = false;
  for (int i = 0; i < 5; i++) {
    if (input[i]) {
        newButton = true;
    }
  }
  if(newButton){
    if(step == 0){
      if(input[code[step]]){
        step++;
      } else {
        step = 0;
      }
    }
    else if (input[code[step-1]]){
      step = step;
    }
    else if (input[code[step]]){
      step++; 
    }
    else {
      step = 0;
    }
  }
  game_1.setGameSolved(step >= 5);
  if(game_1.getGameSolved()){
    digitalWrite(RLY1, HIGH);
  } else {
    digitalWrite(RLY1, LOW);
  }
  delay(10);
}