• User Newbie

    Gioco a premi 50-50% probabilità

    Ciao a tutti,

    sto creando un semplice giochino a premi, in pratica ho uno script che in modo casuale decide se hai vinto o perso con 50% di probabilità. Tecnicamente restituisce in modo casuale un numero che può essere 0 oppure 1, se esce 1 hai vinto, se esce 0 hai perso, senza database ovviamente. Fin qui tutto bene.

    Il problema arriva ora:

    In pratica mi vengono chieste le seguenti condizioni:

    1. Feriale (dal lunedì al venerdì) ne deve vincere massimo 1 ogni ora
    2. Festivo (sabato e domenica) ne devono vincere 2 ogni ora

    Sto cercando altri pareri per vedere se ci sono modi meno macchinosi...
    Voi come fareste questo?

    Io stavo pensando di fare così: registrare ogni giocata in un db
    ID | giorno | ora | vinto/perso
    e poi fare dei controlli con degli if partendo dalla verifica sull'ora, se è feriale e uno ha già vinto, rimandarlo alla pagina PERDE, invece se è feriale e uno non ha ancora vinto, rimandarlo allo script 50-50.
    Lo script 50-50 poi deve rimandare a una pagina PERDE o VINCE che a sua volta scrive nel db ogni giocata e se uno ha vinto o se ha perso.
    Se poi verifico l'ora, se è festivo e uno ha già vinto rimandarlo allo script 50-50.
    Se è festivo e due hanno già vinto rimandarlo alla pagina PERDE.

    Spero di essere stato abbastanza chiaro, grazie a chi mi aiuta.

    buon lavoro a tutti


  • User Attivo

    Se ho capito bene la probabilità non è 50-50.
    O meglio, è 50-50 per il primo che gioca in quell'ora, poi per i successivi la probabilità di vincere è esponenzialmente crescente (in funzione di quanti prima di lui hanno giocato, perdendo). Appena uno vince poi, la probabilità di vincere per gli utenti successivi è 0.

    Quanti utenti prevedi che possano giocare in un'ora? Perché se sono due o tre può anche andare bene, ma se fossero 10 o più io ti suggerirei un cambio di approccio...

    Oltretutto credo che i giochi a premi siano normati da leggi dello stato e nel caso è meglio informarsi.


  • User Newbie

    Ciao Luca, grazie x la risposta.

    Gli utenti non saprei di preciso quanti saranno, credo parecchi, quindi penso anche più di 10, specialmente i festivi.

    Per quanto riguarda la parte legale è tutto a posto, c'è tanto di regolamento e autorizzazioni concesse.

    Il cliente vuole dare massimo 2 premi per ora e uno all'ora nei giorni feriali. Quindi farei andare al 50-50:
    -i giorni festivi solo quando non ci sono vincitori o c'è un solo vincitore. Se ci sono già 2 vincitori va automaticamente al PERDE.
    -i giorni feriali solo quando non ci sono vincitori. Se c'è già 1 vincitore va automaticamente al PERDE.

    grazie ancora, buon lavoro!


  • User Attivo

    Quindi avevo capito bene...
    Beh, immagina la scena:
    Sono le 15 di domenica, io entro sul sito, ho 50-50 di probabilità. Perdo.
    Alle 15.02 arrivi tu, hai 50-50 di probabilità (in realtà hai più del 50% di probabilità di vincita, per la legge dei grandi numeri), vinci.

    Dalle 15.02 in poi, per i successivi 58 minuti, chiunque potrà provare quante volte vuole, ma perderà sempre.

    Questo non è un gioco di probabilità, è un gioco a chi arriva prima. Poi non credi che io possa iscrivere mia mamma, mio papà e mio fratello e collegarmi alle 15 con tutti e 3 gli account? uno dei 3 quasi sicuramente vince... e ho bruciato a tutti gli utenti la possibilità di vincere qualcosa.

    Puoi fare un'altra prova:
    prendi 9 amici e mettetevi in cerchio. Uno alla volta lanciate una monetina, se esce testa si ricomincia. Poi dimmi quante volte sei riuscito a finire il giro. Potete anche fare la prova in 5, è sempre troppo per una probabilità dello 0,5.

    Questa è la dimostrazione del fatto che se in un'ora ti arrivano 5 persone, il gioco non sarà mai equo. Un gioco per essere equo deve avere la stessa probabilità per tutti (più caso mai l'aumento di probabilità dovuto all'abilità del giocatore, dove applicabile) e non è questo il caso, perché ogni esito dipende dalle giocate precedenti. Perché credi che il mazzo di carte venga mischiato prima di iniziare una mano?


  • User Newbie

    Già... però se il cliente come in questo caso decide di dare max 1 o 2 premi per ora, secondo te quali altre strade si possono percorrere?

    ciao, grazie ancora!


  • User Attivo

    Se sapessi quanti utenti giocheranno, potresti dare il premio con probabilità assegnata.
    Ad esempio se giocano in media 50 utenti in un giorno, una probabilità su 50 (tecnicamente un numero casuale da 0 a 49) significa che in media paghi un giocatore al giorno. Su un giorno rischieresti di pagare due premi, ma poi in media ci rientri.

    Mi viene in mente di estrarre random una volta al giorno un orario (ora, minuti e secondi) e premiare il primo che gioca dopo quell'ora...
    Non sarebbe comunque equo in senso assoluto, ma meglio che premiare chi arriva prima.

    Il tuo problema è che se anche il gioco è semplice, l'idea alla base del sistema non lo è e richiede un'ottima struttura per permettere a chiunque di vincere.

    Devi avere un'idea e poi domandarti "Io che conosco come ragiona il sistema, posso trovare il modo di vincere con più probabilità degli altri?" Se la risposta è si, allora il metodo va cambiato.