/*
SNAKE et SPACEINVADERMatriceLed
created 02/02/2024
by Romain Chambard for NOVAMAKE
This code is in the private domain.
*/
/*----------------COMMUN AUX DEUX JEUX--------------*/
#include "LedControl.h"
int DIN = 11; int CS = 7;int CLK = 13;
LedControl lc=LedControl(DIN, CLK, CS,1);
// Configuration du joystick
const int joystickXPin = A1; // Broche analogique pour l'axe X du joystick
const int joystickYPin = A0; // Broche analogique pour l'axe Y du joystick
const int boutonPin = 2; // Broche pour le bouton du joystick
/*------------LIBRAIRIES POUR CHAQUE JEU---------------*/
#include "prototypesFonctionsSpaceInvader.h"
#include "prototypesFonctionsSnake.h"
#include "prototypesFonctionsCourse.h"
#include "fonctionsSpaceInvader.h"
#include "fonctionsSnake.h"
#include "fonctionsCourse.h"
/*------------CHOIX DU JEU A LANCER------------------*/
#include "classCOMMUN.h"
#include "dessinCOMMUN.h"
int choixUtilisateur = 1; //par défaut
void setup() {
Serial.begin(9600);
displayImage(SPACE[0]);//par défaut
bool choixFait=false;
while (!choixFait) {
int valeurMedJoy = analogRead(A1);
if (valeurMedJoy < 300) {delay(200);
choixUtilisateur+=1;
}
else if (valeurMedJoy > 700) {delay(200);
choixUtilisateur-=1;
if (choixUtilisateur <=0){choixUtilisateur=1;}
}
switch(choixUtilisateur%4){
case 1:
displayImage(SPACE[0]);
break;
case 2:
displayImage(SNAKE[0]);
break;
case 3:
displayImage(COURSE[0]);
break;
}
if (digitalRead(2)){
Serial.println("choix effectué :" + String(choixUtilisateur%4));
choixFait=1;}
}
// Exécute le programme en fonction du choix
switch (choixUtilisateur%4) {
case 1:
program1.setup();
break;
case 2:
program2.setup();
break;
case 3:
program3.setup();
break;
default:
// Gérer un choix invalide
break;
}
}
void loop() {
// Appelle la boucle principale du programme choisi
switch (choixUtilisateur%4) {
case 1:
program1.loop();
break;
case 2:
program2.loop();
break;
case 3:
program3.loop();
break;
default:
// Gére un choix invalide si nécessaire
break;
}
}