game help simon says

Hello
I need your help.

not experienced in arduino, i'm trying to make Simon Says game which i already work but i can't at the end of the game make a servo motor drive (SG90)

Can you help with the layout and programming?

below is the schedule I have

/*
18 - Game Simon Says

LED akan berkedip dengan dengan pola dan urutan tertentu, kemudian kita menekan push button
dengan cara mengikuti pola dan urutan led tersebut.
*/

//set pin yang digunakan untuk menghubungkan dengan push button, LED dan buzzer
int button[] = {2,4,6,8}; //push button merah adalah button[0], hijau adalah button[1], biru adalah button[2], kuning adalah button[3]
int led[] = {3,5,7,9}; //LED merah adalah led[0], hijau adalah led[1], biru adalah led[2], kuning adalah led[3]
int tones[] = {262, 330, 392, 494}; //nada-nada yang digunakan untuk tiap push button (c, e, g, b)

int roundsToWin = 10; //jumlah ronde yang harus dimainkan sebelum memenangkan permainan
int buttonSequence[16]; //membuat array yang akan menjadi urutan yang perlu diingat oleh pemain

int buzzerPin = 10; //pin yang terhubung dengan buzzer

int pressedButton = 4; //variabel untuk mengingat push button mana yang ditekan. 4 adalah nilai jika tidak ada push button yang ditekan.
int roundCounter = 1; //melacak apa yang sedang dimainkan pemain

long startTime = 0; //variabel pengatur waktu untuk batas waktu saat push button ditekan
long timeLimit = 2000; //batas waktu untuk menekan push button

boolean gameStarted = false; //variabel untuk memberitahu game apakah memainkan atau tidak

void setup(){

//mengatur semua pin untuk push button sehingga input_pullup (digunakan sehingga tidak perlu memakai eksternal resistor)
pinMode(button[0], INPUT_PULLUP);
pinMode(button[1], INPUT_PULLUP);
pinMode(button[2], INPUT_PULLUP);
pinMode(button[3], INPUT_PULLUP);

//mengatur semua pin LED sebagai output
pinMode(led[0], OUTPUT);
pinMode(led[1], OUTPUT);
pinMode(led[2], OUTPUT);
pinMode(led[3], OUTPUT);

pinMode(buzzerPin, OUTPUT); //mengatur pin buzzer sebagai output
}

void loop(){

if (gameStarted == false){ //jika game belum dimulai
startSequence(); //jalankan SQUENCE AWAL
roundCounter = 0; //reset penghitung ronde
delay(1500); //jeda 1,5 detik
gameStarted = true; //atur gameStarted ke kondisi true sehingga urutan ini tidak dimuat kembali
}

//setiap ronde, akan dimualai dengan start kedipan urutan LED dan diulang
for(int i=0; i <= roundCounter; i++){ //go through the array up to the current round number
flashLED(buttonSequence*); //nyalakan LED untuk posisi array yang sesuai dan mainkan lagu*

  • delay(200); //tunggu*

  • allLEDoff(); //matikan semua LED*

  • delay(200);*
    }
    //kemudian mulai dengan urutan satu persatu dan memeriksa jika pemain menekan push button yang benar
    for(int i=0; i <= roundCounter; i++){ //untuk setiap push button yang akan ditekan dalam sequence

  • startTime = millis(); //catat waktu awal mulai*

  • while(true){ //terus jalankan loop sampai pemain menekan push button atau batas waktu habis (batas waktu bisa cek didalam statement if)*

  • pressedButton = buttonCheck(); //setiap loop memeriksa push button mana yang ditekan*

  • if (pressedButton < 4){ //jika sebuah push button ditekan... (angka 4 maksudnya adalah tidak ada push button yang ditekan)*

  • flashLED(pressedButton); //kedip/flash LED untuk push button yang sudah ditekan*

_ if(pressedButton == buttonSequence*){ //if the button matches the button in the sequence*_
* delay(250); //biarkan LED menyalauntuk sesaat*
* allLEDoff(); //kemudian matikan semua LED dan*
* break; //akhiri loop while (ini akan membuat melanjutkan ke nomor selanjutnya didalam loop for)*

* } else{ //jika push button yang ditekan tidak sama dengan dengan urutan nyala LED*
* loseSequence(); //jalankan SEQUENCE KALAH*
* break; //setelah selesai menjalankan SEQUENCE KALAH, break dari loop while sehingga game dapat dimulai kembali*
* }*

* } else { //jika tidak ada push button yang ditekan*
* allLEDoff(); //tmatikan semua LED*
* }*
* //memeriksa apakah waktu sudah habis*
* if(millis() - startTime > timeLimit){ //jika batas waktu habis*
* loseSequence(); //jalankan SEQUENCE KALAH*
* break; //setelah selesai menjalankan SEQUENCE KALAH, break dari loop while sehingga game dapat dimulai kembali*
* }*
* } *
}
* roundCounter = roundCounter + 1; //tambahkan jumlah ronde dengan 1*

* if (roundCounter >= roundsToWin){ //jika pemain menyelesaikan ke 16 ronde*
* winSequence(); //mainkan lagu kemenangan*
* }*

* delay(500); //tunggu 0.5 detik antara setiap ronde*
}
//----------FUNCTIONS------------
//KEDIPKAN LED DAN BUNYIKAN BUZZER
void flashLED (int ledNumber){
* digitalWrite(led[ledNumber], HIGH);*
* tone(buzzerPin, tones[ledNumber]);*
}
//MATIKAN SEMUA LED
void allLEDoff (){
* //matikan semua LED*
* digitalWrite(led[0],LOW);*
* digitalWrite(led[1],LOW);*
* digitalWrite(led[2],LOW);*
* digitalWrite(led[3],LOW);*
* //matikan suara buzzer*
* noTone(buzzerPin);*
}
//PERIKSA push button YANG DITEKAN
int buttonCheck(){
* //periksa jika ada push button yang ditekan*
* if(digitalRead(button[0]) == LOW){*
* return 0;*
* }else if(digitalRead(button[1]) == LOW){*
* return 1;*
* }else if(digitalRead(button[2]) == LOW){*
* return 2;*
* }else if(digitalRead(button[3]) == LOW){*
* return 3;*
* }else{*
* return 4; //ini akan menjadi nilai untuk tidak ada push button yang ditekan*
* }*
}
//SEQUENCE AWAL
void startSequence(){
* randomSeed(analogRead(A0)); //membuat nomor acak benar-benar acak*
* //mengisi array buttonSequence dengan angka acak dari 0 hingga 3*
* for (int i=0;i<=roundsToWin;i++){*
_ buttonSequence = round(random(0,4));
* }
//kedip/flash semua LED ketika game dimulai*
* for(int i=0; i<=3; i++){*_

_ tone(buzzerPin, tones*, 200); //memainkan salah satu dari 4 nada*_

* //turn all of the leds on*
* digitalWrite(led[0],HIGH);*
* digitalWrite(led[1],HIGH);*
* digitalWrite(led[2],HIGH);*
* digitalWrite(led[3],HIGH);*

* delay(100); //tunggu sesaat*

* //turn all of the leds off*
* digitalWrite(led[0],LOW);*
* digitalWrite(led[1],LOW);*
* digitalWrite(led[2],LOW);*
* digitalWrite(led[3],LOW);*

* delay(100); //tunggu sesaat*

* } //ini akan diulang sebanyak 4 kali*
}
//SEQUENCE MENANG
void winSequence(){
* //nyalakan semua LED*
* for(int j=0; j<=3; j++){*
* digitalWrite(led[j], HIGH);*
* }*
* //mainkan lagu 1Up*
* tone(buzzerPin, 1318, 150); //E6*
* delay(175);*
* tone(buzzerPin, 1567, 150); //G6*
* delay(175);*
* tone(buzzerPin, 2637, 150); //E7*
* delay(175);*
* tone(buzzerPin, 2093, 150); //C7*
* delay(175);*
* tone(buzzerPin, 2349, 150); //D7*
* delay(175);*
* tone(buzzerPin, 3135, 500); //G7*
* delay(500); *
* //tunggu sampai sebuah push button ditekan*
* do { *
* pressedButton = buttonCheck();*
* } while(pressedButton > 3);*
* delay(100);*
* gameStarted = false; //reset game sehingga sequence awal dimainkan kembali.*

}
//SEQUENCE KALAH
void loseSequence(){
* //turn all the LEDs on*
* for(int j=0; j<=3; j++){*
* digitalWrite(led[j], HIGH);*
* }*
* //play the 1Up noise*
* tone(buzzerPin, 130, 250); //E6*
* delay(275);*
* tone(buzzerPin, 73, 250); //G6*
* delay(275);*
* tone(buzzerPin, 65, 150); //E7*
* delay(175);*
* tone(buzzerPin, 98, 500); //C7*
* delay(500);*

* //tunggu sampai sebuah push button ditekan*
* do { *
* pressedButton = buttonCheck();*
* } while(pressedButton > 3);*
* delay(200);*

* gameStarted = false; //reset game sehingga sequence awal dimainkan kembali.*
}

Use code tags (the </> button) when posting code. the forum is interpreting parts of your code as formatting tags.

Also, post in the appropriate section, this is for trpubleshooting the ide itself, not for problems with your project (says so right at the top of the section). Don't make a new thread - I've asked the mods to move this to project guidance.

You should also explain what the problem you are having is, and post how you have it wired (clear photo of hand drawn schematic is fine)

Installation & Troubleshooting

For problems with Arduino itself, NOT your project