#include <Servo.h> 

int servoPin = 3; 
Servo Servo1; 

const int buttonPin1 = 9;    
const int buttonPin2 = 8;    
const int buttonPin3 = 7;    
const int buttonPin4 = 6;   
const int buttonPin5 = 5;   
const int buttonPin6 = 4;   

const int led1 =  15; 
const int led2 = 14;
const int led3 =  A0; 
const int led4 = A1;
const int led5 =  A2; 
const int led6 = A3;

int buttonState1 = 0;        
int buttonState2 = 0;
int buttonState3 = 0;        
int buttonState4 = 0;
int buttonState5 = 0;        
int buttonState6 = 0;

int K1 = 1;        
int K2 = 1;
int K3 = 1;        
int K4 = 1;
int K5 = 1;        
int K6 = 1;
int KG = 1;

int KEY_NUM=0;

void blinkroutine(void);


void setup() {
     Servo1.attach(servoPin); 
 Serial.begin(9600);
   Servo1.write(45);  
  pinMode(led1, OUTPUT);  
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);  
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);

  //
  pinMode(buttonPin1, INPUT);    
  pinMode(buttonPin2, INPUT);    
  pinMode(buttonPin3, INPUT);    
  pinMode(buttonPin4, INPUT);    
  pinMode(buttonPin5, INPUT);    
  pinMode(buttonPin6, INPUT);    
}

void loop(){
  
  buttonState1 = digitalRead(buttonPin1);
  buttonState2 = digitalRead(buttonPin2);
  buttonState3 = digitalRead(buttonPin3);
  buttonState4 = digitalRead(buttonPin4);
  buttonState5 = digitalRead(buttonPin5);
  buttonState6 = digitalRead(buttonPin6);

   digitalWrite(led1, LOW);
   digitalWrite(led2, LOW);  
   digitalWrite(led3, LOW);
   digitalWrite(led4, LOW);  
   digitalWrite(led5, LOW);
   digitalWrite(led6, LOW);  



  if (buttonState1 == HIGH) {
   KG=random(2,7);
   Serial.println(KG); // show the value in Serial Monitor   
   KEY_NUM=0;
   set_zero();
   delay(1000);
   K2=1;
   K3=1;
   K4=1;
   K5=1;
   K6=1;
   
  }

   ScanKey();  
   if (KEY_NUM ==KG) {
    blink();
    move1();
    }

  if (buttonState2 == HIGH) {
   K2=0; 
  }
  if (buttonState3 == HIGH) {
   K3=0; 
  }    
  if (buttonState4 == HIGH) {
   K4=0; 
  }
  if (buttonState5 == HIGH) {
   K5=0; 
  }
  if (buttonState6 == HIGH) {
   K6=0; 
  }  



 
   if (K2 == 1) {
       digitalWrite(led2, HIGH);
    }   
   if (K3 == 1) {
       digitalWrite(led3, HIGH);
    }   
   if (K4 == 1) {
       digitalWrite(led4, HIGH);
    }   
   if (K5 == 1) {
       digitalWrite(led5, HIGH);
    }   
   if (K6 == 1) {
       digitalWrite(led6, HIGH);
    }     


    
  
}


void blink()            //ɨ
{


  digitalWrite(led1, LOW);
  delay(100);
  digitalWrite(led1, HIGH);
  delay(100);

  
}


void ScanKey()          
{
    
  if(buttonState2 == HIGH) {
    KEY_NUM=2;
    }    
  if(buttonState3 == HIGH) {
    KEY_NUM=3;
    }    
  if(buttonState4 == HIGH) {
    KEY_NUM=4;
    }  
  if(buttonState5 == HIGH) {
    KEY_NUM=5;
    }  
  if(buttonState6 == HIGH) {
    KEY_NUM=6;
    }  
}


void move1(){ 
   // Make servo go to 0 degrees 
   Servo1.write(0); 
   delay(200); 
}

void set_zero(){ 
   // Make servo go to 0 degrees 
   Servo1.write(45); 
   delay(200); 
}

   