当前位置: 首页 > article >正文

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;                              
            }
        }
}


http://www.kler.cn/a/539672.html

相关文章:

  • VSCode 下载与使用教程:附百度网盘地址
  • R语言LCMM多维度潜在类别模型流行病学研究:LCA、MM方法分析纵向数据
  • 什么是中间件中间件有哪些
  • 使用 Postman 进行 API 测试:从入门到精通
  • Kafka系列之:定位topic只能保存最新数据的原因
  • ESXi Host Client创建ubuntu虚拟机教程及NVIDIA显卡驱动安装
  • SpringBoot 01 简单介绍与应用
  • ZooKeeper 和 Dubbo 的关系:技术体系与实际应用
  • 如何在 Linux 上为 SSH 启用 MFA(Google Authenticator 方式)
  • C++ Primer sizeof运算符
  • 金字塔原理——阅读笔记
  • 微服务 day01 注册与发现 Nacos OpenFeign
  • Perl语言的云计算
  • idea启动报错# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffccf76e433
  • VueRouter 的路由匹配与组件渲染
  • JUnit 5 TestInstanceFactory 功能与使用详解
  • 第二十二章:游戏结缘与现实的相遇
  • SQL-leetcode—1327. 列出指定时间段内所有的下单产品
  • 使用JavaScript接入星火大模型:构建智能问答系统
  • 4.2 检查k8s集群准入配置和其他准备工作
  • 使用matlab 对传递函数分析bode图和阶跃函数
  • 【实战篇】DeepSeek + ElevenLabs:让人工智能“开口说话”,打造你的专属语音助手!
  • Vue.js 如何自定义主题和样式
  • openAI官方prompt技巧(一)
  • 【Java基础-44.2】Java中的LinkedList:特征与方法详解
  • 单例模式几种实现