C 网球得分跟踪器

C++ Tennis Score Tracker

本文关键字:跟踪      更新时间:2023-10-16

参加大学中C 课程的简介,我们将这个项目'模型'网球游戏。

用户首先需要输入玩家赢得的概率。然后生成1到100之间的数字,直到玩家获得超过4分,并且比其他玩家多2分。

我的问题是,有时在50%的获胜率区域中,输出的输出为4-4。

我想知道为什么会发生这种情况?任何帮助将不胜感激!

    int prob; 
    int scoreA = 0; 
    int scoreB = 0; 
    int randNB = 0; 
srand(time(NULL)); 
cout <<"---------------n"
        "FAKE TENNIS!n"
        "---------------" <<endl;
cout <<"What is the chance that player 'A' will win a point?(Enter whole #between 1 - 100): " ;
    cin >> prob;
do{
if((scoreA >= 4 || scoreB >= 4) && ((scoreA - scoreB) >= 2 || (scoreB - scoreA) >= 2)) break; 
randNB = rand()%100+1;
    if (randNB <= prob){
        cout<<"A";
        scoreA++;
    }
    else if(randNB > prob){
        cout<<"B";
        scoreB++;
    }

}        
while((scoreA <= 3|| scoreB <= 3) && ((scoreA - scoreB) !=2 || (scoreB - scoreA) !=2 ));
cout<<"The final score is " <<scoreA <<" (A) - " << scoreB <<" (B)" <<endl;
if(scoreA > scoreB){
    cout <<"A is the winner!!!";
}
else{
    cout <<"B is the winner!!!";
}
return 0;
}

您已经写了两次终结测试。

曾经作为循环内部的正(正确),并且在循环末端为负。

1)仅写一次。("断裂"将结束循环。)也就

2)如果要写两次,请在第二个测试中检查<2而不是!= 2。x> = 2的否定不是x!= 2