#include "C:\picMicro\C\test.h"

#define Button_1 PIN_B0
#define Button_2 PIN_B1
#define Button_3 PIN_B2
#define Button_4 PIN_B3
#define Button_5 PIN_B4
#define Button_6 PIN_B5
#define Button_7 PIN_B6

#define Button_R PIN_B7

      static int butNo = 0 ;
      static int ArrPos = 0 ;
      static int queue[6];


void LightLED(short isReset){
   int i =0;
   if(isReset){
      for(i=0;i<6;i++){
         if(i==5){queue[i]=0;}
         else if(queue[i] == queue[i+1]){
         }
      }

   switch (queue[0]) {
      case 0:
        output_low(PIN_A0);
        output_low(PIN_A1);
        output_low(PIN_A2);
        output_low(PIN_A3);
        break;

      case 1:
        output_high(PIN_A0);
        output_low(PIN_A1);
        output_low(PIN_A2);
        output_low(PIN_A3);
        break;

      case 2:
        output_low(PIN_A0);
        output_high(PIN_A1);
        output_low(PIN_A2);
        output_low(PIN_A3);
        break;

      case 3:
        output_high(PIN_A0);
        output_high(PIN_A1);
        output_low(PIN_A2);
        output_low(PIN_A3);
        break;

      case 4:
        output_low(PIN_A0);
        output_low(PIN_A1);
        output_high(PIN_A2);
        output_low(PIN_A3);
        break;

      case 5:
        output_high(PIN_A0);
        output_low(PIN_A1);
        output_high(PIN_A2);
        output_low(PIN_A3);
        break;

      case 6:
        output_low(PIN_A0);
        output_high(PIN_A1);
        output_high(PIN_A2);
        output_low(PIN_A3);
        break;

      default:
         break;
   }




   }
}

void main()
{
   int i =0;
   short isDup =0;
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   SET_TRIS_A( 0x00 );   //set port A as output
   SET_TRIS_B( 0xFF );   //set port B as input

	output_high(PIN_A0);
	Delay_ms(1500);
    output_low(PIN_A0);
	Delay_ms(1500);
	output_high(PIN_A0);
	Delay_ms(1500);
    output_low(PIN_A0);
	Delay_ms(1500);

   for(;;){
      butNo = 0;
      if(INPUT(Button_1) | INPUT(Button_2) | INPUT(Button_3) | INPUT(Button_4) | INPUT(Button_5) | INPUT(Button_6)){

         if(INPUT(Button_1)){ butNo =1; }
         else if(INPUT(Button_2)){butNo=2;}
         else if(INPUT(Button_3)){butNo=3;}
         else if(INPUT(Button_4)){butNo=4;}
         else if(INPUT(Button_5)){butNo=5;}
         else if(INPUT(Button_6)){butNo=6;}

         for(i=0;i<=ArrPos;i++){
            if(queue[i] == butNo){
               isDup =1;
            }
         }

         if(isDup == 0 && butNo != 0){
            for(i=0;i<6;i++){
               if(queue[i] == 0){
                  queue[i]=butNo;
                  ArrPos =i;
                  if(i==0){LightLED(0);}
                  break;
                  }
            }
         }
      } //endof Input_Button_Click
      else if(INPUT(Button_R)){
         LightLED(1);
      }


   } //end For loop
} //end of Main


