Variable para mostrar puntuacion

hola, necesito ayuda con la siguiente cuestión. Aclaro antes de empezar, que no estudio programación ni nada similar, sólo lo que aprendo de ver videos y con prueba y error..

necesito hacer que mi variable "score" que se muestra en el LCD pueda reflejar la suma constante al activarse los botones de los pines 7, 8 y 9 (supongamos que sume de a 10 puntos) y que al activarse el 6, reste 100.

en el siguiente ejemplo, de la forma que lo hice, funciona bien el tema de sumar

#include <Adafruit_NeoPixel.h>
#include <Adafruit_LiquidCrystal.h>

#define PIN 2	 // input pin Neopixel is attached to

#define NUMPIXELS      12 // number of neopixels in strip
Adafruit_LiquidCrystal lcd(0);
Adafruit_NeoPixel ti = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
long color = ti.Color(255, 0, 0);
int score = 0;

void setup() {
  lcd.begin(16, 2);
  pinMode(4,INPUT);
  ti.begin();

}

void loop()
{
         lcd.setCursor (8,1); 
    lcd.print(score);
  if (digitalRead(4) ==HIGH){{
  score = score + 10;

       ti.fill(color);
    ti.show();
    delay(100);
    ti.clear();
    ti.show();
    
    
        }
  }}

ahora cuando quiero volcar esto en el proyecto, ya no se si es por exceso de codigo o que pero no va...
por otro lado, cuando logre que el display la refleje sumando, es como que no se adapta a la pantalla y se va a cualquier lado...

cualquier ayuda, me sirve para seguir aprendiendo.
muchas gracias!!

dejo el codigo del proyecto principal

#include <Adafruit_NeoPixel.h>

#include <Adafruit_LiquidCrystal.h>
#include <Servo.h>
#define PIN 10
#define PIN2 11
#define PIN3 12
#define NUMPIXELS 12

Adafruit_LiquidCrystal lcd(0);
Adafruit_NeoPixel ti = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel me = Adafruit_NeoPixel(NUMPIXELS, PIN2, NEO_GRB + NEO_KHZ800);  
Adafruit_NeoPixel de = Adafruit_NeoPixel(NUMPIXELS, PIN3, NEO_GRB + NEO_KHZ800);  
int pos=0, pos1=45, pos2=180, pos3=0, score;
Servo palizq;
Servo palder;
long color = ti.Color(200,100,80);
long color1 = me.Color(80,100,200);
long color2 = de.Color(20,50,20);
long color3 = ti.Color(255,0,0) & me.Color(255,0,0) & de.Color(255,0,0);

void setup()
{
  palizq.attach(5);
  palder.attach(4);
  pinMode(2,INPUT);
  pinMode(3,INPUT);
  pinMode(6,INPUT);
  pinMode(A0,OUTPUT);
  pinMode(A1,OUTPUT);
  pinMode(7,INPUT);
  pinMode(8,INPUT);
  pinMode(9,INPUT);
  pinMode(10,OUTPUT);
  palizq.write(pos);
  palder.write(pos2);
  lcd.begin(16,2);
  lcd.setBacklight(1);
  lcd.setCursor(3,0);
  lcd.print("BIENVENIDO");
  lcd.setCursor(3,1);
  delay(10);
  lcd.print("JUGADOR 1!");
  delay(1500);
  lcd.setBacklight(0);
  lcd.clear();
  delay(50);
  lcd.setCursor(2,0);
  lcd.setBacklight(1);
  lcd.print("ESTAS LISTO?");
  delay(1000);
  lcd.clear();
  lcd.setCursor(3,0);
  lcd.print("COMENCEMOS");
  delay(200.);
  tone (A1,440,2000);
   lcd.setBacklight(0);
  delay(1000);
  tone (A1,494,2000);
   lcd.setBacklight(1);
  delay(1000);
  tone (A1,440,2000);
  lcd.setBacklight(0);
  delay(1000);
  lcd.setBacklight(1);
  delay(1000);
  lcd.clear();
  lcd.setCursor(3,0);
  lcd.print("JUGADOR  1");
  lcd.setCursor(1,1);
  lcd.print("Puntos");
  lcd.setCursor(12,1);
  lcd.print(score);
  ti.begin();
  me.begin();
  de.begin();
}
void loop ()
  
{
 
  
  if (digitalRead(2) ==HIGH){
    palizq.write(pos1);
  delay(1);}
    if (digitalRead(2) ==LOW){
    palizq.write(pos);
    delay(1);}
  
  if (digitalRead(3) ==HIGH){
    palder.write(pos3);
  delay(1);}
    if (digitalRead(3) ==LOW){
    palder.write(pos2);
      delay(1);}
  {
    if (digitalRead(6) ==HIGH){
    digitalWrite(A0,HIGH);
    tone (A1, 261 , 100);
    delay(1);}
   if (digitalRead(6) ==LOW){
   digitalWrite(A0,LOW);
     delay(1);}
    
    if (digitalRead(7) ==HIGH){
     
      ti.fill(color);     
      ti.show();
      delay(150);
      ti.clear();
      ti.show();
      
    }

    if (digitalRead(8) ==HIGH){
      me.fill(color1);     
      me.show();
      delay(150);
      me.clear();
      me.show();
    }
    if (digitalRead(9) ==HIGH){
      de.fill(color2);     
      de.show();
      delay(150);
      de.clear();
      de.show();
    }
    if (digitalRead(6) ==HIGH){
      
      de.fill(color3);
      ti.fill(color3);
      me.fill(color3);
      de.show();
      ti.show();
      me.show();
      delay(150);
      de.clear();
      ti.clear();
      me.clear();
      de.show();
      ti.show();
      me.show();
      delay(150);
      de.fill(color3);
      ti.fill(color3);
      me.fill(color3);
      de.show();
      ti.show();
      me.show();
      delay(150);
      de.clear();
      ti.clear();
      me.clear();
      de.show();
      ti.show();
      me.show();}
    
  }}

Moderador:
Por favor, lee las Normas del foro y edita tu título de acuerdo al punto 5 de las normas.
Retira la palabra ayuda considerada como título inútil.

Tu códigog es muy secuencial. Solo funciona si se dan determinados pasos porque al ser nuevo, no has podido visualizar como se entremezclan las cosas.
Cuando un código como el tuyo no funciona. Olvida lo que molesta, lo no importante y concéntrate solo en el LCD.
No veo que los botones te sumen o resten nada a score.

Gracias por la respuesta. Es verdad, en ese codigo no subi mi intento de suma en los botones... voy a ver si encuentro algun tutorial para mejorar el codigo.

No. Deja los tutoriales.
Pensemos como sería y aprendes en el proceso.
Define los botones y que deben hacer.
Otro error es que no usas etiquetas para los botones o salidas. Es dificil para cualquiera seguir el programa.
Ahora que lo haces tendras idea de que es 2 3 4 pero dentro de 2 meses te aseguro que no.
Tampoco le has puesto comentarios, lo que TE ayudaría y NOS ayudaría.
Son cosas menores pero te aseguro que cambia mucho como encaras el programa.

Define asi por ejemplo, no tienes porque hacer lo que yo te digo:
botonSuma1
botonSuma10
botonSuma100
botonResta100
son etiqueas posibles y que te cambian el enfoque.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.