From 05469e9b816fb6e075f9849d6fc73b459d005a3c Mon Sep 17 00:00:00 2001 From: Pyramond Date: Tue, 17 Jun 2025 10:20:32 +0200 Subject: [PATCH 1/2] Fix display error --- web.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/web.cpp b/web.cpp index 25dff81..c6dfdb8 100644 --- a/web.cpp +++ b/web.cpp @@ -3,6 +3,8 @@ #include #include +extern Adafruit_SH1107 display; + // Utilisateurs du réseau const char *ssid = "morpion-SAE"; const char *password = "12345678"; From 16d812f924c2851a65b6dc93404b831bd520eab8 Mon Sep 17 00:00:00 2001 From: Pyramond Date: Tue, 17 Jun 2025 10:20:44 +0200 Subject: [PATCH 2/2] add reset btn --- gra_21_morpion_lumineux_code.ino | 1 + localMode.cpp | 22 ++++++++++++++++++---- localMode.h | 2 ++ 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/gra_21_morpion_lumineux_code.ino b/gra_21_morpion_lumineux_code.ino index 3ee0fcf..607bbda 100644 --- a/gra_21_morpion_lumineux_code.ino +++ b/gra_21_morpion_lumineux_code.ino @@ -17,6 +17,7 @@ uint16_t currtouched = 0; void setup() { Serial.begin(115200); randomSeed(analogRead(0)); + pinMode(A2, INPUT); if (!cap.begin(0x5B)) { diff --git a/localMode.cpp b/localMode.cpp index e664ee9..f1917b9 100644 --- a/localMode.cpp +++ b/localMode.cpp @@ -1,8 +1,6 @@ #include "localMode.h" #include -uint8_t color_pos = 16; - MechKey keys[] = { {0, A0, false, Adafruit_NeoPixel(1, A0, NEO_GRB + NEO_KHZ800)}, {1, 25, false, Adafruit_NeoPixel(1, 25, NEO_GRB + NEO_KHZ800)}, @@ -74,13 +72,28 @@ void afficheGrille() { } } +void reset() { + if(digitalRead(A2) == HIGH) { + Serial.println("Reset"); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + grille[i][j] = 0; + } + } + + joueur1 = true; + + afficheGrille(); + } +} + void localModeDuo(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtouched) { currtouched = cap.touched(); + reset(); for (int i = 0; i < numKeys; i++) { uint8_t t = keys[i].touchID; - keys[i].led.setPixelColor(0, 255); // Bleu - keys[i].led.show(); if ((currtouched & _BV(t)) && !(lasttouched & _BV(t))) { Serial.print("Touch "); Serial.print(t); Serial.println(" pressed"); @@ -112,6 +125,7 @@ void localModeDuo(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtou void localModeSolo(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtouched) { currtouched = cap.touched(); + reset(); for (int i = 0; i < numKeys; i++) { uint8_t t = keys[i].touchID; diff --git a/localMode.h b/localMode.h index 5c929ef..675f210 100644 --- a/localMode.h +++ b/localMode.h @@ -3,6 +3,7 @@ #include #include +#include "pin.h" #ifndef _BV #define _BV(bit) (1 << (bit)) @@ -31,6 +32,7 @@ Coord getCo(int key); bool victoire(int grille[3][3], int joueur); bool allInit(); void afficheGrille(); +void reset(); void localModeDuo(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtouched); void localModeSolo(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtouched);