找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 559|回复: 3
收起左侧

关于单片机C语言记分器平分算法

[复制链接]
ID:1107719 发表于 2024-3-23 17:10 | 显示全部楼层 |阅读模式
人正在想着把篮球记分器改成羽毛球记分器。
可是羽毛球记分器最后是有这个平分追分条件的。
在不追分的情况下,只需要任意一个计分为十位数为2个位数为1即可。
但实际比赛则是当双方均为 20 分时,领先对方 2 分的一方赢得该局
比赛当双方均为 29 分时,先取得 30 分的一方赢得该局比赛
那这if条件我都不知道怎么写好
下图的是我的相关代码和图片。论坛内我搜过大部分都是篮球记分器,而且没有一个提及追分的。求大佬给个思路。条件想了半天也不知道怎么写

单片机C语言源程序如下:
                        if(A==1)
                {
                        Display_ASCII(1,0,4,time,B);
                        Display_ASCII(1,0,5,time,C);//bifen
                        Display_ASCII(1,2,4,time,E);
                        Display_ASCII(1,2,5,time,F);
                        if((B==2&&C==1)||(E==2&&F==1))
                        {
                                A=2;      
                                heat=0;spurs=0;
                                B=0;C=0;E=0;F=0;
                        }
                }
                if(A==2)
                {
                        Display_ASCII(1,0,7,time,B);
                        Display_ASCII(2,0,0,time,C);//bifen
                        Display_ASCII(1,2,7,time,E);
                        Display_ASCII(2,2,0,time,F);
                        if((B==2&&C==1)||(E==2&&F==1))
                        {
                                A=3;      
                                heat=0;spurs=0;
                                B=0;C=0;E=0;F=0;
                        }
                }
                if(A==3)
                {
                                Display_ASCII(2,0,2,time,B);
                                Display_ASCII(2,0,3,time,C);//bifen
                                Display_ASCII(2,2,2,time,E);
                                Display_ASCII(2,2,3,time,F);
                                if((B==2&&C==1)||(E==2&&F==1))
                        {
                                A=4;      
                                heat=0;spurs=0;
                                B=0;C=0;E=0;F=0;
                        }  
                }
回复

使用道具 举报

ID:1107719 发表于 2024-3-23 17:15 | 显示全部楼层
屏幕截图 2024-03-23 171236.png 51hei图片_20240323171211.png
个人参考和实际。另外的12分钟和24秒是扒了篮球记分器的。之前做好后改成羽毛球记分器的还没删。这个条件做完之后我可能还要考虑先后手问题。不过单打的话好像是赢了的继续发球。不过我得思考一些怎么写条件。但这个实在是想不出来怎么搞了
回复

使用道具 举报

ID:1107719 发表于 2024-3-23 17:49 | 显示全部楼层
破案了,出来了。忘了自己之前设置的是uint的heat和spurs导致一直出错
if(((heat>=21)&&(heat-spurs>1))||((spurs>=21)&&(spurs-heat>1))||((spurs==29)&&(heat==30))||((heat==29)&&(spurs==30)))
把条件设置成这个就行
回复

使用道具 举报

ID:1107719 发表于 2024-3-23 18:04 | 显示全部楼层
现在的问题换成了发球问题了,我再想想
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表