-
.
Qui potete seguire lo sviluppo dello script del torneo che sto facendo, per vedere a che punto sono (visto che molti non ne capiranno niente vi spiego a cosa servono le modifiche che faccio).
Se c'è qualcuno che ne capisce qualcosa può dare benissimo dei consigli, stessa cosa per chi non capisce alcune cose e vuole chiarimenti.
Evitate commenti inutili, grazie
Ecco proprio l'inizio dove prendo la data, il giorno, il mese e l'anno (alcuni tra questi dati raccolti non li uso subito ma serviranno successivamente) e decido quante partite andranno giocate in base al numero di giorni che ha il mese corrente.CODICE<?php
$data = date('d/m/Y');
$giorno = date('d');
$mese = date('m');
$anno = date('Y');
$numero_di_giorni_in_questo_mese = cal_days_in_month(CAL_GREGORIAN, $mese, $anno);
if ($numero_di_giorni_in_questo_mese == 31) {
$numero_partite = 10;
}
if ($numero_di_giorni_in_questo_mese == 30) {
$numero_partite = 10;
}
if ($numero_di_giorni_in_questo_mese == 29) {
$numero_partite = 9;
}
if ($numero_di_giorni_in_questo_mese == 28) {
$numero_partite = 9;
}
?>. -
HappySalesmanMask.
User deleted
solo una domanda: ma tu dove le hai imparate ste cose? . -
.
le ho imparate su php.net e con uno che conosco che mi ha aiutato all'inizio.
nuovo aggiornamento, ho eliminato la parte che controllava quanti giorni c'erano nel mese per decidere il numero di partite da disputare e ho messo un numero fisso di 7 e aumentati a 4 i giorni che avete a disposizione per ogni partita.
Poi ho creato la variabile che dice qual è l'ultimo giorno che hai a disposizione per dire chi ha vinto la partita e quella che dice qual'è l'ultimo giorno del torneoCODICE<?php
$data = date('d/m/Y');
$giorno = date('d');
$mese = date('m');
$anno = date('Y');
$numero_partite = 7;
$giorni_per_partita = 4;
$giorno_attivabile_inattivita = 4;
$ultimo_giorno_del_torneo = '28'.$mese.$anno;
if ($giorno <= 4 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '4'.$mese.$anno;
}
if ($giorno > 4 AND $giorno <= 8 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '8'.$mese.$anno;
}
if ($giorno > 8 AND $giorno <= 12 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '12'.$mese.$anno;
}
if ($giorno > 12 AND $giorno <= 16 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '16'.$mese.$anno;
}
if ($giorno > 16 AND $giorno <= 20 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '20'.$mese.$anno;
}
if ($giorno > 20 AND $giorno <= 24 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '24'.$mese.$anno;
}
if ($giorno > 24 AND $giorno <= 28 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '28'.$mese.$anno;
}
?>. -
.
ottimo progetto master
mi hai anche fatto tornare la voglia di mettermi a studiare il C++. -
.
ho corretto le dimenticanze e ho finito la parte facile, ora viene la parte molto più lunga dove devo usare il database.. in pratica dove immagazzino tutti i dati delle vostre partite.
ah quasi dimenticavo, ho aggiunto anche una parte di codice che vi permette di vedere il contenuto delle variabili che ho fatto click (non so per quanto lo lascerò.. pero è utile per vedere se funziona tutto).CODICE<?php
$data = date('d/m/Y');
$giorno = date('d');
$mese = date('m');
$anno = date('Y');
$modalita = '<span title="Chi colleziona più vittorie vince">Svizzera</span>';
$numero_partite = 7;
$giorni_per_partita = 4;
$giorno_attivabile_inattivita = 4;
$ultimo_giorno_del_torneo = '28'.'/'.$mese.'/'.$anno;
if ($giorno <= 4 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '4'.'/'.$mese.'/'.$anno;
}
if ($giorno > 4 AND $giorno <= 8 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '8'.'/'.$mese.'/'.$anno;
}
if ($giorno > 8 AND $giorno <= 12 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '12'.'/'.$mese.'/'.$anno;
}
if ($giorno > 12 AND $giorno <= 16 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '16'.'/'.$mese.'/'.$anno;
}
if ($giorno > 16 AND $giorno <= 20 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '20'.'/'.$mese.'/'.$anno;
}
if ($giorno > 20 AND $giorno <= 24 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '24'.'/'.$mese.'/'.$anno;
}
if ($giorno > 24 AND $giorno <= 28 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '28'.'/'.$mese.'/'.$anno;
}
?>
(qui ovviamente non è compreso il codice che vi mostra il contenuto delle variabili perchè non fa parte dello script che devo scrivere). -
¬Re dei Giochi.
User deleted
Beh, che dire, Thumbs up . -
.
inserito parte del codice che estrarrà le informazioni sull'utente che sta partecipando al torneo (manca ancora la funzione che fa sapere allo script quale utente ha caricato la pagina perchè sono in attesa dell'uscita del nuovo software del forum). CODICE<?php
$db = mysqli_connect('localhost', xxxxx', 'xxxxx', 'my_xxxxx');
$data = date('d/m/Y');
$giorno = date('d');
$mese = date('m');
$anno = date('Y');
$modalita = '<span title="Chi colleziona più vittorie vince">Svizzera</span>';
$numero_partite = 7;
$giorni_per_partita = 4;
$giorno_attivabile_inattivita = 4;
$ultimo_giorno_del_torneo = '28'.'/'.$mese.'/'.$anno;
if ($giorno <= 4 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '4'.'/'.$mese.'/'.$anno;
}
if ($giorno > 4 AND $giorno <= 8 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '8'.'/'.$mese.'/'.$anno;
}
if ($giorno > 8 AND $giorno <= 12 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '12'.'/'.$mese.'/'.$anno;
}
if ($giorno > 12 AND $giorno <= 16 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '16'.'/'.$mese.'/'.$anno;
}
if ($giorno > 16 AND $giorno <= 20 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '20'.'/'.$mese.'/'.$anno;
}
if ($giorno > 20 AND $giorno <= 24 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '24'.'/'.$mese.'/'.$anno;
}
if ($giorno > 24 AND $giorno <= 28 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '28'.'/'.$mese.'/'.$anno;
}
$results = $db->query("SELECT * FROM torneo_".$anno."_".$mese."WHERE ".$userid);
while($row = $results->fetch_array()) {
$partite_vinte = $row['partite_vinte'];
$partite_perse = $row['partite_perse'];
$avversario = $row['avversario']; //userid dell'avversario
$vincitore = $row['vincitore']; //0 se non ha vinto 1 se ha vinto
$conferma_fine_partita = $row['conferma_fine_partita']; //0 se non è finita 1 se è finita
$inattivo_io = $row['inattivo_io']; //0 se attivo 1 se inattivo
$inattivo_lui = $row['inattivo_lui']; //0 se attivo 1 se inattivo
}
?>. -
.
Ho ridotto le partite del torneo da 7 a 6 (sempre di 4 giorni l'una) perchè altrimenti avevo problemi con febbraio che ha 28 giorni e mi complicavo la vita per soltanto un mese.. e poi almeno avete quasi una settimana di pausa tra un torneo e l'altro.
ho scritto le condizioni per gestire i vari bottoni (vittoria, sconfitta, segnala per inattivita, segnala che sei attivo, rimuovi segnalazione per inattivita, contesta sconfitta, annulla vittoria).. anche se il codice aggiunto è poco mi è toccato ragionarci un bel po su come salvare i dati sul database (al momento nelle condizioni so gia che ci sono problemi dove uno se sa come farli riesce a creare i bottoni con degli editor di html anche se lo script non li fa vedere ma piu tardi quando lo script sara prossimo alla fine faro degli aggiornamenti alla sicurezza che risolve il problema).CODICE<?php
$db = mysqli_connect('localhost', 'xxxxx', 'xxxxx', 'my_xxxxx');
$data = date('d/m/Y');
$giorno = date('d');
$mese = date('m');
$anno = date('Y');
$modalita = '<span title="Chi colleziona più vittorie vince">Svizzera</span>';
$numero_partite = 6;
$giorni_per_partita = 4;
$giorno_attivabile_inattivita = 4;
$ultimo_giorno_del_torneo = '24'.'/'.$mese.'/'.$anno;
if ($giorno <= 4 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '4'.'/'.$mese.'/'.$anno;
}
if ($giorno > 4 AND $giorno <= 8 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '8'.'/'.$mese.'/'.$anno;
}
if ($giorno > 8 AND $giorno <= 12 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '12'.'/'.$mese.'/'.$anno;
}
if ($giorno > 12 AND $giorno <= 16 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '16'.'/'.$mese.'/'.$anno;
}
if ($giorno > 16 AND $giorno <= 20 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '20'.'/'.$mese.'/'.$anno;
}
if ($giorno > 20 AND $giorno <= 24 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '24'.'/'.$mese.'/'.$anno;
}
$results = $db->query("SELECT * FROM torneo_".$anno."_".$mese."_partite WHERE ".$userid);
while($row = $results->fetch_array()) {
$partite_vinte = $row['partite_vinte']; //di default è 0
$partite_perse = $row['partite_perse']; //di default è 0
$avversario = $row['avversario']; //userid dell'avversario
$vincitore = $row['vincitore']; //0 se ha perso 1 se ha vinto 2 se è ancora da giocare
$inattivo_io = $row['inattivo_io']; //0 se attivo 1 se inattivo
$inattivo_lui = $row['inattivo_lui']; //0 se attivo 1 se inattivo
}
$partite_giocate = $partite_vinte + $partite_perse;
if ($giorno < 4 AND $inattivo_lui == 0 AND $inattivo_io == 0 AND $vincitore == 2) {
//VITTORIA E SCONFITTA VISISIBILI, INATTIVITA VISIBILE NON FUNZIONANTE
}
if ($giorno <= 4 AND $inattivo_lui == 0 AND $inattivo_io == 0 AND $vincitore == 1) {
//MESSAGGIO ANNULLA VITTORIA, INATTIVITA NASCOSTA
}
if ($giorno <= 4 AND $inattivo_lui == 0 AND $inattivo_io == 0 AND $vincitore == 0) {
//MESSAGGIO CONTESTAZIONE SCONFITTA VISIBILE, INATTIVITA NASCOSTA
}
if ($giorno == 4 AND $inattivo_lui == 1 AND $inattivo_io == 0 AND $vincitore == 2) {
//VITTORIA E SCONFITTA NASCOSTI, RITIRA INATTIVITA
}
if ($giorno == 4 AND $inattivo_lui == 0 AND $inattivo_io == 1 AND $vincitore == 2) {
//VITTORIA E SCONFITTA NASCOSTA, CANCELLA SEGNALAZIONE INATTIVITA
}
?>. -
.
Forse ho trovato il modo di salvare tutti i dati anche quelli del pannello delle iscrizioni del torneo corrente, il rank degli avversari sconfitti da utilizzare in caso di pareggio e i vari abbinamenti di tutte le partite nella tabella mysql che ho usato fino ad ora
Se ho trovato un modo intelligiente per salvare i dati nei prossimi giorni è finito.. Manchera solo il collegamento con ip board. -
~Darkelont~.
User deleted
master una domanda ma i tornei saranno senza top eh? . -
.
esatto, i tornei fatti a svizzera non avranno la top perchè non è possibile organizzarla.
sicuramente potremo fare anche un altra modalita per il torneo ovvero l'eliminazione diretta come facevamo in passato.. pero al momento non sto prendendo nemmeno in considerazione una seconda modalita perchè in fase di sviluppo dello script mi creerebbe il doppio dei problemi e basta.
in futuro ci sara la modalita svizzera senza top (vince chi colleziona piu vittorie) e quella dell'eliminazione diretta. -
¬Re dei Giochi.
User deleted
Non riesci (poi con calma in futuro) a impostare una fase 1 e una fase 2 nello script? . -
.
non ci sarebbe il tempo materiale per fare una finale nel primo tipo di torneo.
ho fatto un esempio di tabella che usero per salvare i dati di ogni utente che vi spiega un po quali dati vengono salvati click
ho apportato delle piccole modifiche che andranno molto probabilmente sistemate a causa del nuovo metodo che ho pensato per salvare i datiCODICE<?php
$db = mysqli_connect('localhost', 'xxxxx', 'xxxxx', 'my_xxxxx');
$data = date('d/m/Y');
$giorno = date('d');
$mese = date('m');
$anno = date('Y');
$modalita = '<span title="Chi colleziona più vittorie vince">Svizzera</span>';
$numero_partite = 6;
$giorni_per_partita = 4;
$giorno_attivabile_inattivita = 4;
$ultimo_giorno_del_torneo = '24'.'/'.$mese.'/'.$anno;
if ($giorno <= 4 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '4'.'/'.$mese.'/'.$anno;
$partite_giocate = 0;
$numero_avversario = 1;
}
if ($giorno > 4 AND $giorno <= 8 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '8'.'/'.$mese.'/'.$anno;
$partite_giocate = 1;
$numero_avversario = 2;
}
if ($giorno > 8 AND $giorno <= 12 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '12'.'/'.$mese.'/'.$anno;
$partite_giocate = 2;
$numero_avversario = 3;
}
if ($giorno > 12 AND $giorno <= 16 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '16'.'/'.$mese.'/'.$anno;
$partite_giocate = 3;
$numero_avversario = 4;
}
if ($giorno > 16 AND $giorno <= 20 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '20'.'/'.$mese.'/'.$anno;
$partite_giocate = 4;
$numero_avversario = 5;
}
if ($giorno > 20 AND $giorno <= 24 ) {
$ultimo_giorno_per_segnalare_chi_ha_vinto = '24'.'/'.$mese.'/'.$anno;
$partite_giocate = 5;
$numero_avversario = 6;
}
$results = $db->query("SELECT * FROM torneo_".$anno."_".$mese."_partite WHERE ".$userid);
while($row = $results->fetch_array()) {
$partite_vinte = $row['partite_vinte']; //di default è 0
$vincitore = $row['vincitore']; //0 se ha perso 1 se ha vinto 2 se è ancora da giocare
$inattivo_io = $row['inattivo_io']; //0 se attivo 1 se inattivo
$inattivo_lui = $row['inattivo_lui']; //0 se attivo 1 se inattivo
$rank = $row['rank']; //di default è 0
$avversario = $row['avversario'.$numero_avversario]; //cambia avversario in base alla data
}
$partite_perse = $partite_giocate - $partite_vinte;
if ($giorno < 4 AND $inattivo_lui == 0 AND $inattivo_io == 0 AND $vincitore == 2) {
//VITTORIA E SCONFITTA VISISIBILI, INATTIVITA VISIBILE NON FUNZIONANTE
}
if ($giorno <= 4 AND $inattivo_lui == 0 AND $inattivo_io == 0 AND $vincitore == 1) {
//MESSAGGIO ANNULLA VITTORIA, INATTIVITA NASCOSTA
}
if ($giorno <= 4 AND $inattivo_lui == 0 AND $inattivo_io == 0 AND $vincitore == 0) {
//MESSAGGIO CONTESTAZIONE SCONFITTA VISIBILE, INATTIVITA NASCOSTA
}
if ($giorno == 4 AND $inattivo_lui == 1 AND $inattivo_io == 0 AND $vincitore == 2) {
//VITTORIA E SCONFITTA NASCOSTI, RITIRA INATTIVITA
}
if ($giorno == 4 AND $inattivo_lui == 0 AND $inattivo_io == 1 AND $vincitore == 2) {
//VITTORIA E SCONFITTA NASCOSTA, CANCELLA SEGNALAZIONE INATTIVITA
}
?>. -
~Darkelont~.
User deleted
master se non ci può essere una finale si fa il feature match? dato che non giochi, intendo che ad ogni turno ci stanno i player del "tavolo1" ( i 1° che vengono postati sul foro) che sono quelli che stanno andando meglio nel torneo (o a parità di punti/nel 1° turno, quelli che hanno più/meno fortuna, dipende da come loro vedono la cosa del feature ahah) . -
.
Se intendi che si possa avere una classifica aggiornata anche mentre si gioca.. Certamente, ci avevo pensato anche io .