Hi, Just signed up cus i am in need of some help.
Im very new to Arduino and C/C++ but i have used other programming languages.
I'm trying t create a game where you press a button when a purple light is on and m trying to save the high score and the name of the person who got it to eeprom. i've searched around for ages and have seen many ways but never been able to understand them enough to apply them to my code. Could someone help me?
Here's the code i have written. It currently does not compile:
int TurnCounter;
int WinCounter = 0;
int TotalTurns = 0;
int HighScore;
#include <EEPROM.h>
String Name;
void setup() {
// put your setup code here, to run once:
pinMode(13, OUTPUT); //RED LED
pinMode(12, OUTPUT); //BLUE LED
pinMode(11, OUTPUT); //YELLOW LED 4
pinMode(10, OUTPUT); // RED LED 3
pinMode(9, OUTPUT); // YELLOW LED 3
pinMode(8, OUTPUT); // RED LED 2
pinMode(7, OUTPUT); // YELLOW LED 2
pinMode(6, OUTPUT); // RED LED 1
pinMode(5, OUTPUT); // YELLOW LED 1
pinMode(4, INPUT); //THIS THE PIN FOR THE BUSH BUTTON
HighScore = EEPROM.read(0);
Serial.begin(9600);
Serial.println("Can you please enter your name in the box above and press enter");
delay(7000);
if (Serial.available() > 0) {
Name = Serial.readString();
}
Serial.print("Your name is ");
Serial.println(Name);
Serial.println("THERE ARE 7 ROUNDS TO THIS GAME. ALL YOU HAVE TO DO IS PRESS THE BUTTON WHEN THE PURPLE LIGHT IS ON.");
Serial.print("THE BEST SCORE IS ");
Serial.print(HighScore);
Serial.print(" AND THIS WAS COMPLETED BY ");
int i = 0;
int value = 0;
for (int i = 1; i = 15; i++) {
value = EEPROM.read(i);
char MyCharacter = char(value);
Serial.print(MyCharacter);
}
}
void loop() {
LEDs_1(); //THIS RUNS THE PROCEDURE STARTS THE LED FLASHING SEQUENCE
STOP();
LEDs_2();
STOP();
LEDs_3();
STOP();
LEDs_4();
STOP();
LEDs_5();
STOP();
LEDs_6();
STOP();
LEDs_7();
STOP();
LEDs_8();
STOP_1();
}
void STOP() {
int buttonState; //THIS CREATES A INTEGER VARIABLE FOR THE STATE OF THE BUTTON
buttonState = digitalRead(4); //THIS LINE STORES THE STATE OF THE BUTTON IN THE VARIABLE
if (buttonState == LOW) {
Serial.println("UNLUCKY");
TurnCounter += 1;
Serial.print("That was attempt ");
Serial.println(TurnCounter);
delay(2500);;
buttonState = digitalRead(4);
}
}
void STOP_1() {
int buttonState; //THIS CREATES A INTEGER VARIABLE FOR THE STATE OF THE BUTTON
buttonState = digitalRead(4); //THIS LINE STORES THE STATE OF THE BUTTON IN THE VARIABLE
if (buttonState == LOW) {
TurnCounter += 1;
TotalTurns += TurnCounter;
Serial.println("YOU'VE WON");
Serial.print("YOU BEAT THIS ROUND ON ATTEMPT ");
Serial.println(TurnCounter);
TurnCounter = 0;
WinCounter += 1;
if (WinCounter == 7) {
Serial.print("CONGRATUALTIONS, YOU HAVE BEATEN THE GAME. IT TOOK YOU ");
Serial.print(TotalTurns);
Serial.print(" ATTEMPTS. THE HIGH SCORE IS ");
Serial.println(HighScore);
if (HighScore > TotalTurns) {
EEPROM.write(0, TotalTurns);
int letterNO;
int address = 1;
int from = 0;
int to = 1;
char letter;
for (letterNO = 0; letterNO = Name.length(); ++letterNO) {
letter = Name.substring(from, to));
from += 1;
to += 1;
address += 1;
}
for (letterNO = 0; letterNO = Name.length(); ++letterNO) {
EEPROM.write(address, letter);
from += 1;
to += 1;
address += 1;
}
Serial.println("CONGRATULATIONS, YOU HAVE BEATEN THE HIGH SCORE");
int x;
for (x = 0; x = 5; ++x) {
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
delay(1000);
}
}
else
{
Serial.println("UNLUCKY, YOU DID NOT BEAT THE HIGH SCORE. BETTER LUCK NEXT TIME.");
}
}
delay(7500);
buttonState = digitalRead(4);
}
else
{
delay(0);
}
}
void LEDs_1() {
digitalWrite(5, HIGH); //Turns on YELLOW LED 1
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW); //THESE LINES TURN OFF ALL THE OTHER LEDs
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
Delay();
STOP();
Delay();
}
void LEDs_2() {
digitalWrite(5, LOW); //Turns off YELLOW LED 1
digitalWrite(6, HIGH); //Turns on REd LED 1
Delay();
STOP();
Delay();
}
void LEDs_3() {
digitalWrite(6, LOW); //Turns off REd LED 1
digitalWrite(7, HIGH); //Turns on YELLOW LED 2
Delay();
STOP();
Delay();
}
void LEDs_4() {
digitalWrite(7, LOW); //Turns off YELLOW LED 2
digitalWrite(8, HIGH); //Turns on REd LED 2
Delay();
STOP();
Delay();
}
void LEDs_5() {
digitalWrite(8, LOW); //Turns off RED LED 2
digitalWrite(9, HIGH); //Turns on YELLOW LED 3
Delay();
STOP();
Delay();
}
void LEDs_6() {
digitalWrite(9, LOW); //Turns off YELLOW LED 3
digitalWrite(10, HIGH); //Turns on RED LED 3
Delay();
STOP();
Delay();
}
void LEDs_7() {
digitalWrite(10, LOW); //Turns off RED LED 3
digitalWrite(11, HIGH); //Turns on YELLOW LED 4
Delay();
STOP();
Delay();
}
void LEDs_8() {
digitalWrite(11, LOW); //Turns off YELLOW LED 4
digitalWrite(12, HIGH); //TUrns on the BLUE LED.
digitalWrite(13, HIGH); //Turns on the RED LED. THIS WITH THE BLUE CREATES PURPLE
Delay();
STOP_1();
Delay();
}
void Delay() {
if (WinCounter == 0) {
delay(100);
}
else if (WinCounter == 1) {
delay(75);
}
else if (WinCounter == 2) {
delay(62.5);
}
else if (WinCounter == 3) {
delay(50);
}
else if (WinCounter == 4) {
delay(37.5);
}
else if (WinCounter == 5) {
delay(15);
}
else if (WinCounter == 6) {
delay(5);
}
}