Bootstrap

51单片机俄罗斯方块计分函数

/**************************************************************************************************************
* 名称:scoring
* 功能:计分
* 参数:NULL
* 返回:NULL
* 备注:采用非阻塞延时
**************************************************************************************************************/
void scoring(void)

    if(state && (node != 2))
        {                    
          switch(Tbase % 20)
            {
                case 18: if(flag_c == 0 )
                           {
                               u8 i;                                                                                    
                               if(led[15])
                               {
                                   node = 2;
                                                       
                                   row = mark;    
                                   flag_c = 0;
                                   return;                                                 
                               }    
                
                               for(i = 0; i < 16; i++)
                               {
                                   if(led[i] == 0xff)
                                   {
                                       score++;    
                                       cnt = i;
                                       node = 1;
                                       flag1 = 1;    
                                                               flag_c++;
                                       return;                                                         
                                   }                              
                               }                                                                                                                          
                           }
                           break;    
                             
                case  19: if((flag_c == 2) && flag2)
                           {                                                                                                         
                               u8 i;
                               for(i = cnt; i < 16; i++)
                               {
                                   led[i] = led[i + 1];
                               }
                        
                               led[16] = 0x00;
                               led[17] = 0x00;
                               cnt     = 0;    
                               flag2   = 0;                                                                                                    
                               flag_c  = 0;         
                           }
                           break;
                             
                default: break;                              
            }
        }
}

;