![Image](/images/2024/07/11/dalle-2024-07-11-10.17.17---an-illustration-for-a-tutorial-section-on-a-website-dedicated-to-learning-how-to-code-and-use-tools-for-escape-game-creation.-the-scene-includes-a-com.webp)
Les tutos pourtoutcomprendre
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).
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.
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.
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);
}