2015年12月28日 星期一

02160190_關榮楷,Week16

我們做了按鈕反應遊戲
在藍色燈泡亮時 誰先按下按鈕 誰就是贏家

int gametime=0, s=0, limit=random(500,10000), n=0, m=54, down1=0, down2=0, GG=0, player1=0, player2=0;

void setup() {
  for(int i=31;i<36;i++)        //31 to 35 open
  pinMode(i, OUTPUT);           //the green light 
  for(int i=49;i<54;i++)        //49 to 53 open
  pinMode(i, OUTPUT);           //the red light
  pinMode(20,INPUT_PULLUP);     //the green bottom
  pinMode(21,INPUT_PULLUP);     //the red bottom 
  pinMode(40,OUTPUT);           //the blue light
}

void loop() {
  winner();
  gametime=millis();
    if(digitalRead(20)==LOW&&down1==0)
    {n++;down1=1;}              //turn on the green light from 31 to 35
    if(digitalRead(20)==HIGH&&down1==1)
    {down1=0;}
    
    if(digitalRead(21)==LOW&&down2==0)
    {m--;down2=1;}              //turn on the green light from 53 to 49
    if(digitalRead(21)==HIGH&&down2==1) 
    {down2=0;}
    blue();
    lightG(); 
    lightR(); 
     
}

void blue()
{
  if(gametime-limit>0)digitalWrite(40,HIGH);
  if(gametime-limit>0&&digitalRead(20)==LOW){if(GG==0&&n<=5){GG=1;player1=1;}}
  if(gametime-limit>0&&digitalRead(21)==LOW){if(GG==0&&m>=49){GG=1;player2=1;}}
  }
  
void lightG()
{
  for(int i=1;i<=n; i++)if(GG==0)digitalWrite(30+i, HIGH); 
  }

void lightR()
{
  for(int i=53;i>=m; i--)if(GG==0)digitalWrite(i, HIGH); 
  }

void winner()
{
  if(player1==1){digitalWrite(random(31,36),HIGH);digitalWrite(random(31,36),LOW);delay(100);}
  if(player2==1){digitalWrite(random(49,54),HIGH);digitalWrite(random(49,54),LOW);delay(100);}
  }

沒有留言:

張貼留言