标题: 关于单片机C语言记分器平分算法 [打印本页]

作者: 腹黑的钢笔    时间: 2024-3-23 17:10
标题: 关于单片机C语言记分器平分算法
人正在想着把篮球记分器改成羽毛球记分器。
可是羽毛球记分器最后是有这个平分追分条件的。
在不追分的情况下,只需要任意一个计分为十位数为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;
                        }  
                }

作者: 腹黑的钢笔    时间: 2024-3-23 17:15

个人参考和实际。另外的12分钟和24秒是扒了篮球记分器的。之前做好后改成羽毛球记分器的还没删。这个条件做完之后我可能还要考虑先后手问题。不过单打的话好像是赢了的继续发球。不过我得思考一些怎么写条件。但这个实在是想不出来怎么搞了

作者: 腹黑的钢笔    时间: 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)))
把条件设置成这个就行
作者: 腹黑的钢笔    时间: 2024-3-23 18:04
现在的问题换成了发球问题了,我再想想




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1