Équations conditionnelles
Les équations conditionnelles vous permettent d'inclure une logique de comparaison dans les formules de colonnes de tableau de ligue et de statistiques de joueurs. Au lieu d'une expression purement arithmétique, vous pouvez écrire une formule où une sous-expression s'évalue à 1 (vrai) ou 0 (faux) en fonction d'une comparaison, puis multiplier ce résultat dans un calcul plus grand.
Cette fonctionnalité est fournie par le module d'équations conditionnelles, inclus dans l'extension principale SportsPress dans includes/sportspress/modules/sportspress-conditional-equations.php.
Opérateurs de comparaison
Lorsque le module d'équations conditionnelles est actif, les opérateurs suivants sont ajoutés à la palette du générateur d'équations sous Opérateurs :
Bouton | Signification |
| Supérieur à |
| Inférieur à |
| Égal à |
| Différent de |
| Supérieur ou égal à |
| Inférieur ou égal à |
Ces opérateurs sont disponibles dans le générateur d'équations pour les Colonnes de tableau et les Statistiques des joueurs.
Comment l'évaluation fonctionne
Une sous-expression conditionnelle entre parenthèses s'évalue à 1 (la condition est vraie) ou 0 (la condition est fausse).
Le schéma général est :
( opérande_gauche opérateur opérande_droit ) * valeur_si_vrai
Étant donné qu'une condition vraie retourne 1 et qu'une condition fausse retourne 0, multiplier par la condition agit comme une porte si/alors : la valeur est incluse lorsque la condition est vraie et mise à zéro lorsqu'elle est fausse.
Pour exprimer une structure si/alors/sinon, combinez deux expressions conditionnelles :
( condition ) * valeur_si_vrai + ( condition_niée ) * valeur_si_faux
Ou plus simplement, puisque les deux branches sont mutuellement exclusives :
( condition ) * valeur_si_vrai + ( 1 - ( condition ) ) * valeur_si_faux
Exemples
Plafonner une valeur à un maximum
Pour donner au maximum 3 points pour une victoire mais plafonner pour que la différence de buts supérieure à 10 n'ajoute pas de supplément :
$win * 3 + ( ($goalsfor - $goalsagainst) > 10 ) * 0
Un exemple de plafonnement plus simple — limiter la différence de buts à un maximum de 10 :
( ($goalsfor - $goalsagainst) > 10 ) * 10 + ( ($goalsfor - $goalsagainst) <= 10 ) * ($goalsfor - $goalsagainst)
Lorsque $goalsfor - $goalsagainst est supérieur à 10, la première branche retourne 10. Lorsqu'elle est égale ou inférieure à 10, la deuxième branche retourne la différence réelle.
Score avec handicap
Pour ajouter un point bonus lorsque les buts pour dépassent les buts contre de plus de 2 :
$win * 3 + ( ($goalsfor - $goalsagainst) > 2 ) * 1
La sous-expression ( ($goalsfor - $goalsagainst) > 2 ) s'évalue à 1 lorsque la condition est satisfaite et à 0 autrement. Multiplier par 1 ajoute un point bonus uniquement dans ce cas.
Mettre une valeur à zéro conditionnellement
Pour afficher la différence de buts uniquement lorsqu'elle est positive (sinon afficher 0) :
( ($goalsfor - $goalsagainst) > 0 ) * ($goalsfor - $goalsagainst)
Conditions imbriquées
Les conditions peuvent être imbriquées dans des expressions plus larges. Le moteur d'équations évalue d'abord les parenthèses les plus internes. Vous pouvez envelopper une expression conditionnelle dans des parenthèses externes et la combiner avec d'autres opérateurs.
Par exemple :
( ( $goalsfor > $goalsagainst ) * 3 ) + ( ( $goalsfor == $goalsagainst ) * 1 )
Cela accorde 3 points si les buts pour dépassent les buts contre, 1 point si égaux, et 0 sinon.
Quand utiliser des équations conditionnelles vs des équations régulières
Utilisez une équation arithmétique ordinaire lorsque le calcul est toujours la même formule quel que soit les valeurs — par exemple, $win * 3 + $draw * 1.
Utilisez une équation conditionnelle lorsque le résultat dépend de la plage dans laquelle une valeur tombe, lorsque vous devez plafonner ou établir un minimum pour une valeur, ou lorsque vous souhaitez inclure un bonus ou une pénalité qui ne s'applique que sous certaines conditions.
N'utilisez pas d'équations conditionnelles pour les attributions de points simples victoire/défaite/nul. L'approche standard est d'utiliser $win * 3 + $draw * 1 sans conditions. Réservez les expressions conditionnelles aux cas où la valeur de points ou la valeur affichée change en fonction de l'ampleur d'un résultat.
Construire des équations conditionnelles dans le générateur
Ouvrez l'écran de modification d'une Colonne de tableau ou d'une Statistique de joueur.
Dans la boîte de méta Équation, utilisez la ligne Opérateurs dans la palette pour cliquer sur
(pour ouvrir un groupe de parenthèses.Ajoutez la variable de l'opérande gauche (par exemple, cliquez sur un jeton de Résultat comme Buts pour).
Cliquez sur l'opérateur
-et une autre variable pour former une différence.Cliquez sur l'opérateur de comparaison (par exemple
>pour supérieur à).Cliquez sur une constante (par exemple
10).Cliquez sur
)pour fermer le groupe de parenthèses.Cliquez sur
*puis la valeur à multiplier lorsque la condition est vraie.Ajoutez
+et l'expression de repli pour le cas faux si nécessaire.Cliquez sur Publier ou Mettre à jour pour enregistrer.
L'équation stockée est une chaîne séparée par des espaces telle que ( $goalsfor - $goalsagainst > 10 ) * 10. Vous pouvez inspecter ou modifier cette chaîne directement si nécessaire en lisant la valeur de méta de publication sp_equation.
