Vai al contenuto principale

Equazioni condizionali

Le equazioni condizionali ti permettono di includere logica di confronto nelle formule delle colonne della classifica e delle statistiche dei giocatori. Invece di una pura espressione aritmetica, puoi scrivere una formula in cui una sotto-espression…

Aggiornato oggi

Equazioni condizionali

Le equazioni condizionali ti permettono di includere logica di confronto nelle formule delle colonne della classifica e delle statistiche dei giocatori. Invece di una pura espressione aritmetica, puoi scrivere una formula in cui una sotto-espressione valuta a 1 (vero) o 0 (falso) in base a un confronto, e poi moltiplicare quel risultato in un calcolo più grande.

Questa funzionalità è fornita dal modulo Equazioni condizionali, incluso nel plugin core SportsPress in includes/sportspress/modules/sportspress-conditional-equations.php.

Operatori di confronto

Quando il modulo Equazioni condizionali è attivo, i seguenti operatori vengono aggiunti alla palette del costruttore di equazioni sotto Operatori:

Pulsante

Significato

>

Maggiore di

<

Minore di

(salvato come ==)

Uguale a

(salvato come !=)

Diverso da

(salvato come >=)

Maggiore o uguale a

(salvato come <=)

Minore o uguale a

Questi operatori sono disponibili nel costruttore di equazioni per Colonne della classifica e Statistiche giocatore.

Come funziona la valutazione

Una sotto-espressione condizionale tra parentesi valuta a 1 (la condizione è vera) o 0 (la condizione è falsa).

Il pattern generale è:

( operando_sinistro operatore operando_destro ) * valore_se_vero

Poiché una condizione vera restituisce 1 e una condizione falsa restituisce 0, moltiplicare per la condizione agisce come un gate if/then: il valore viene incluso quando la condizione è vera e azzerato quando è falsa.

Per esprimere una struttura if/then/else, combina due espressioni condizionali:

( condizione ) * valore_se_vero + ( condizione_negata ) * valore_se_falso

O più semplicemente, poiché i due rami si escludono a vicenda:

( condizione ) * valore_se_vero + ( 1 - ( condizione ) ) * valore_se_falso

Esempi

Limitare un valore a un massimo

Per assegnare al massimo 3 punti per una vittoria ma limitarlo in modo che una differenza reti superiore a 10 non aggiunga extra:

$win * 3 + ( ($goalsfor - $goalsagainst) > 10 ) * 0

Un esempio di limite più semplice — limitare la differenza reti a un massimo di 10:

( ($goalsfor - $goalsagainst) > 10 ) * 10 + ( ($goalsfor - $goalsagainst) <= 10 ) * ($goalsfor - $goalsagainst)

Quando $goalsfor - $goalsagainst è maggiore di 10, il primo ramo restituisce 10. Quando è 10 o meno, il secondo ramo restituisce la differenza effettiva.

Punteggio con handicap

Per aggiungere un punto bonus quando i gol fatti superano i gol subiti di più di 2:

$win * 3 + ( ($goalsfor - $goalsagainst) > 2 ) * 1

La sotto-espressione ( ($goalsfor - $goalsagainst) > 2 ) valuta a 1 quando la condizione è soddisfatta e 0 altrimenti. Moltiplicare per 1 aggiunge un punto bonus solo in quel caso.

Azzerare un valore condizionalmente

Per mostrare la differenza reti solo quando è positiva (altrimenti mostrare 0):

( ($goalsfor - $goalsagainst) > 0 ) * ($goalsfor - $goalsagainst)

Condizioni annidate

Le condizioni possono essere annidate all'interno di espressioni più grandi. Il motore delle equazioni valuta prima le parentesi più interne. Puoi racchiudere un'espressione condizionale in parentesi esterne e combinarla con altri operatori.

Ad esempio:

( ( $goalsfor > $goalsagainst ) * 3 ) + ( ( $goalsfor == $goalsagainst ) * 1 )

Questo assegna 3 punti se i gol fatti superano i gol subiti, 1 punto se sono uguali, e 0 altrimenti.

Quando usare le equazioni condizionali rispetto alle equazioni normali

Usa un'equazione aritmetica normale quando il calcolo è sempre la stessa formula indipendentemente dai valori — ad esempio, $win * 3 + $draw * 1.

Usa un'equazione condizionale quando il risultato dipende dall'intervallo in cui cade un valore, quando devi limitare o pianare un valore, o quando vuoi includere un bonus o una penalità che si applica solo in determinate condizioni.

Non usare equazioni condizionali per semplici assegnazioni di punti vittoria/sconfitta/pareggio. L'approccio standard è usare $win * 3 + $draw * 1 senza condizioni. Riserva le espressioni condizionali per i casi in cui il valore dei punti o il valore visualizzato cambia in base alla grandezza di un risultato.

Costruzione di equazioni condizionali nel costruttore

  1. Apri la schermata di modifica per una Colonna della classifica o una Statistica giocatore.

  2. Nel meta box Equazione, usa la riga Operatori nella palette per fare clic su ( per aprire un gruppo di parentesi.

  3. Aggiungi la variabile dell'operando sinistro (ad esempio, fai clic su un token Risultato come Gol fatti).

  4. Fai clic sull'operatore - e un'altra variabile per formare una differenza.

  5. Fai clic sull'operatore di confronto (ad esempio > per maggiore di).

  6. Fai clic su una costante (ad esempio 10).

  7. Fai clic su ) per chiudere il gruppo di parentesi.

  8. Fai clic su * e poi sul valore per cui moltiplicare quando la condizione è vera.

  9. Aggiungi + e l'espressione di fallback per il caso falso se necessario.

  10. Fai clic su Pubblica o Aggiorna per salvare.

L'equazione memorizzata è una stringa separata da spazi come ( $goalsfor - $goalsagainst > 10 ) * 10. Puoi ispezionare o modificare questa stringa direttamente se necessario leggendo il valore meta post sp_equation.

Hai ricevuto la risposta alla tua domanda?