【发布时间】:2019-03-02 06:58:41
【问题描述】:
所以我想根据比赛的得分进行一些计算。我的代码做了我想做的事,但感觉不对,感觉应该有更好的方法来做到这一点。
数组键中的分数已经是我对 ^ 有疑问的东西,然后我将每个可能的分数硬编码到 10-10,这看起来也不是很有效和快速。
$score['0-0'] = someFunction($homeExp,0) * someFunction($awayExp,0) / 100; //10%
$score['0-1'] = someFunction($homeExp,0) * someFunction($awayExp,1) / 100; //10%
$score['0-2'] = someFunction($homeExp,0) * someFunction($awayExp,2) / 100; //etc..
$score['0-3'] = someFunction($homeExp,0) * someFunction($awayExp,3) / 100; //etc..
$score['0-4'] = someFunction($homeExp,0) * someFunction($awayExp,4) / 100;
$score['1-0'] = someFunction($homeExp,1) * someFunction($awayExp,0) / 100; //10%
$score['1-1'] = someFunction($homeExp,1) * someFunction($awayExp,1) / 100;
$score['1-2'] = someFunction($homeExp,1) * someFunction($awayExp,2) / 100;
$score['1-3'] = someFunction($homeExp,1) * someFunction($awayExp,3) / 100;
$score['1-4'] = someFunction($homeExp,1) * someFunction($awayExp,4) / 100;
$score['2-0'] = someFunction($homeExp,2) * someFunction($awayExp,0) / 100;
$score['2-1'] = someFunction($homeExp,2) * someFunction($awayExp,1) / 100;
$score['2-2'] = someFunction($homeExp,2) * someFunction($awayExp,2) / 100;
$score['2-3'] = someFunction($homeExp,2) * someFunction($awayExp,3) / 100;
$score['2-4'] = someFunction($homeExp,2) * someFunction($awayExp,4) / 100;
$score['3-0'] = someFunction($homeExp,3) * someFunction($awayExp,0) / 100;
$score['3-1'] = someFunction($homeExp,3) * someFunction($awayExp,1) / 100;
$score['3-2'] = someFunction($homeExp,3) * someFunction($awayExp,2) / 100;
$score['3-3'] = someFunction($homeExp,3) * someFunction($awayExp,3) / 100;
$score['3-4'] = someFunction($homeExp,3) * someFunction($awayExp,4) / 100;
$score['4-0'] = someFunction($homeExp,4) * someFunction($awayExp,0) / 100;
$score['4-1'] = someFunction($homeExp,4) * someFunction($awayExp,1) / 100;
$score['4-2'] = someFunction($homeExp,4) * someFunction($awayExp,2) / 100;
$score['4-3'] = someFunction($homeExp,4) * someFunction($awayExp,3) / 100;
$score['4-4'] = someFunction($homeExp,4) * someFunction($awayExp,4) / 100;
//up till about 10-10
//all scores under 2 goals
$value = $score['0-0'] + $score['0-1'] + $score['1-0']; //30%
//all scores under 3 goals
$value = $score['0-0'] + $score['0-1'] + $score['0-2'] + $score['1-0'] + $score['1-1'] + $score['2-0']; //xx%
//all scores where home wins
$value = $score['1-0'] + $score['2-0'] ... etc etc ;
这是要走的路吗?还是我应该研究一种不同的方法?
【问题讨论】:
-
如果您的代码有效,但您希望对其进行审查/优化,那么 CodeReview 是发布的好地方。
-
将结果拆分为两个变量(主场和客场)并参数化您的函数。您将避免所有那些糟糕的代码
-
@mickmackusa 他可能不知道,所以这里是codereview.stackexchange.com的链接
-
请用您在每个代码块中执行的任务注释您的代码
-
坦率地说,这看起来很可怕。为什么不直接将两个分数作为参数传递给
someFunction()?另外,最好有一些exception handling,因为一个团队的得分可以超过 10 个目标,并且您的数组下标将变成烟花表演。