Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi A - F > Basi di dati ~ informatica triennale
Pages: [1] 2 
Dubbio progetto Basi
Clicca QUI per vedere il messaggio nel forum
delleroby
Ciao ragazzi,
non ho ancora iniziato a fare il progetto ma ancora prima di iniziare non capisco come si possa gestire la turnazione dei giocatori...
Cioè la domanda è: quale può essere l'evento che passi la "mano" al giocatore successivo?

lordghost
non hai mai visto un gioco a turni?
un bottone "termina turno" mi sembra la soluzione più immediata, se non l'unica :D

antares85
veramente se leggete bene il testo dice che il turno viene AUTOMATICAMENTE passato al giocatore successivo allo dopo un certo tempo, quindi il giocatore non decide quando smettere di giocare

Amorphis
Mi sa che un bottone termina turno puo andar bene ,pero secondo e ci serve qualche timer per non blockare il gioco .
cmq il testo e :
Azioni di gioco. Dopo l’autenticazione, il giocatore pu`o operare le proprie azioni di gioco.
In particolare, l’applicazione permette di creare nuovi elementi di gioco (i.e., citt`a, strade
e eserciti) e di gestire gli esistenti (i.e., citt`a, eserciti e spostamenti). Tali funzionalit`a sono
disponibili solo quando il giocatore `e di turno. Si predisponga un’opportuna funzionalit`a
per consentire al giocatore di terminare il proprio turno di gioco.

antares85
già, penso che il turno passi automaticamente al prossimo giocatore allo scadere del tempo, salvo interruzione manuale del proprio turno da parte dell'utente. Per quello che riguarda il 3d "concetto strade" mi sapete dire qualcosa?

Grazie

nitsu69
Per quanto riguarda le strade ancora non ci ho pensato.
Ma tornando sui turni, come faccio a segnalare al giocatore successivo che è il suo turno? L'unica cosa che mi è venuta in mente è un refresh automatico della pagina, ma mi sembra una soluzione poco efficiente.

Amorphis
siamo nel mondo WEB , l'efficienza non conta tanto :)

valeriam.
so che c'è un modo per far refreshare la pagina in automatico dopo tot secondi dalla sua visualizzazione, oppure che dopo tot secondi ti manda a un'altra pagina...potrebbe essere una soluzione?
Anche così non mi sembra il massimo, ma meglio che farlo da soli :D

Ora non mi chiedete come si fa perchè non me lo ricordo, però avevo trovato in internet un modo per farlo

lordghost
dico solo Ajax, se siete un po smanettoni non sarà difficile implementare uno stupido querier al server gestore dei turni. sempre con js+timer=countdown. Ma io ho preferito introdurre un timeout oltre al quale si viene disconnessi ed il turno passa automaticamente, altrimenti c'è tutto il tempo per giocare. E dato che non è un vero gioco online non credo sia importante questo aspetto, a fronte del fatto che il tutto funzioni bene, cioè un gameplay coerente.

yeats84
Scusate io son all'inizio, ma ho un dubbio riguardo le città, il testo dice che alla città iniziale vengono dati 200PI in aggiunta ai 500 iniziali della nazione (per un totale di 700 giusto?).
Nella creazione di una nuova città invece dice che il giocatore stanzia un minimo di 200PI che vengono assegnati alla città come valore di VI.
Volevo quindi capire se questi 200PI stanziati dal giocatore vengono levati dai 700 iniziali e inseriti nel campo VI della nuova città?! è giusto?

credo di non aver ben capito la differenza tra VI e PI :-S

lordghost
vi credo sia il valore in pi (moneta). ovviamente se crei una citta con 200 pi, non devono certo restare disponibili alla nazione, che gioco sarebbe? in pratica potresti costruire infinite città.
i 700 pi sono il valore della nazione (hai sicuramente un valore positivo, anche se sei magari in rosso)

yeats84
eh ok, ma quindi in pratica sarebbero la stessa cosa, solo che per la nazione si chiamano PI e per le cettà VI, giusto?

mala72
Per me sono la stessa cosa.

Originally posted by yeats84
eh ok, ma quindi in pratica sarebbero la stessa cosa, solo che per la nazione si chiamano PI e per le cettà VI, giusto?

lordghost
esatto io li ho interpretati come la stessa cosa, secondo me li ha voluti differenziare perchè sono un investimento dato che quei soldi non ci sono più. VI è il valore relativo, in PI.

yeats84
altra piccola info.."gioca sempre il primo che si è registrato"..io ho impostato il tipo DATE nel campo data della mia tabella..però ho difficoltà nel far salvare la data in quel campo al momento della registrazione, anche perchè mysql usa il formato mese/giorno/anno
..qualcuno sa dirmi come devo fare?

lordghost
usa la comoda funzione mysql NOW() :D
insert into players (nome, data) values ($nome, now())
easy ;)

antares85
io invece ho un problema con lo schema ER per quel che riguarda il concetto di STRADE. Non so se farla ricorsiva su Città oppure come attributo opzionale di Città con campo chiave esterna sempre su Città (a rappresentare l'altra città che collega)...
Qualcuno mi può dire se sono ipotesi completamente errate o come l'ha pensata lui?
grazie mille!

morte2097
scusate ho una domanda sulla gestione dei VI, come aumento i RA e RN? solo in base all'aument della popolazione?

antares85
Oltre a sollecitare una risposta alla mia richiesta precedente vorrei porre un altro quesito: il testo del progetto dice che un esercito può spostarsi fra le città del giocatore; non sarebbe meglio fra tutte le città? se no come fa ad attaccare una città di un altra nazione e a depredarla? a distanza ?
Grazie mille

mala72
Io mi sono limitato a tentare di fare quello che chiedevano nelle specifiche del progetto, che almeno in questo caso sono chiare (poi, se abbiano senso o no non e' affar mio), per cui gli eserciti possono spostarsi solo nelle citta' del giocatore, e possono attaccare una qualsiasi citta' straniera provvista di esercito (oltre tutto a ben vedere neanche questo ha molto senso nella realta': se dovessi attaccare una citta', se questa fosse priva di un esercito per me sarebbe moooolto meglio)

antares85
e direi che la strada di attenersi alle specifiche per le cose ambigue (o quanto meno non andarsi a complicare la vita) è la scelta migliore.
Mi rimane solo un dubbio (per ora): l'implementazione nello schema ER della possibilità di spostamento di un esercito; ho pensato alla formula ESERCITO-va-CITTA'. La cardinalità fra ESERCITO e 'va' è possibile che sia (0,1) ?

Tks

antares85
PS: penso che sia (0,N) ma non ne sono sicurissimo...

ma721737
ciao a tutti!
ho due dubbi..
uno si ricollega al dubbio di antares, ovvero lo spostamento dell'esercito. L'esercito si sposta tra città per mezzo delle strade. Io inizialmente ho creato un'entità strada inserendo tra gli attributi le due città collegate da quella strada. Ma non credo che sia la via giusta.. Mi date un consiglio?

Il secondo dubbio riguarda invece la nazione, ovvero: all'inizio del gioco la nazione ha una città di default (mettiamo che sia la sua capitale). Come faccio a far si che quella città (già esistente) vada ad inserirsi automaticamente come tupla nell'entità città?
spero di essere stata chiara..grazie =)

antares85
penso che nel momento in cui un giocatore stabilisce nome e bandiera della nazione da controllare possa stabilire anche nome e altri dati della città "capitale".

a proposito, per la bandiera come pensate di fare? un upload di un'immagine o cos'altro???

ma721737
si certo che l'utente può stabilire i vari campi ma la capitale come fa a rientrare nelle tuple dell'entità città?

per quanto riguarda la bandiera pensavamo di inserire il path dell'immagine.

antares85
con la stessa procedura con la quale si inseriscono le città successivamente, con una insert. Il giocatore dopo aver scelto la nazione sarà obbligato a inserire anche una città

ma721737
aaah capito =) grazie mille!! per lo spostamento dell'esercito hai risolto qualcosa?

Gimmy
ragazzi ma secondo voi implementare la gestione dei turni e dello spostamento degli eserciti tramite trigger è fondamentale o si puo fare anche in php?
Perchè in php saprei come gestire il problema, ma tramite trigger no... (piu che altro mi servirebbe una sorta di array per confrontare i risultati di una select uno ad uno, e non so come fare...)
:?

antares85
il testo però dice che l'esercitò PUO' muoversi fra le città del giocatore, non che DEVE muoversi SOLO fra le città del giocatore...e in più dice che una strada può collegare 2 città di due nazioni diverse.
Quindi mi viene il dubbio che n esercito possa andare un pò dove cacchio vuole.
Voi che scelta avete fatto a riguardo? movimento solo nella propria nazione o ovunque?

antares85
ps: anche perchè se no non avrebbe senso dire: "Le città collegate possono appartenere a nazioni diverse. Una volta costruita, la strada può essere utilizzata da tutti i giocatori."

per essere utilizzata da tutti i giocatori una strada che collega due città, sia internamente a una nazione che non, significa che i giocatori possono andare ovunque...

Gimmy
scusate se ripeto la domanda, ma voi la gestione degli spostamenti degli eserciti e delle battaglie l'avete implementata tramite php o trigger/procedure/funzioni?

morte2097
tramite php

ste182
z

Gimmy
Originally posted by morte2097
tramite php

ma si puo cmq fare?? perche la gestione degli spostamenti è sotto la sezione dove dice che le seguenti funzioni vanno eseguite tramite trigger e funzioni sql, quindi non vorrei che facciano storie perche sono fatti in php e non in sql visto che è esplicitamente scritto...

Counter65
Originally posted by Gimmy
ma si puo cmq fare?? perche la gestione degli spostamenti è sotto la sezione dove dice che le seguenti funzioni vanno eseguite tramite trigger e funzioni sql, quindi non vorrei che facciano storie perche sono fatti in php e non in sql visto che è esplicitamente scritto...


io l'ho fatta sotto DB, credo sia sott'inteso.

Ho un dubbio stupido sulla misurazione di ricchezza:oops::

Ammettiamo, inizialmente ho 500 PI della nazione e 200 PI della capitale(citta iniziale) quindi ho una ricchezza di 700.

Se poi creo altre 4 citta (che mi costano 800 PI in totale) la mia ricchezza sara 400 a questo punto(700-(800-500)), è giusto cosi?:?

Gimmy
mmm... io ho fatto un trigger che calcola la somma di vi citta + pi nazione + pi esercito, quindi se hai 200 pi nella capitale, 4 citta da 200 pi l'una, -300 pi rimanenti nella nazione e 0 pi nell'esercito, in totale avrai 200+4*(200)-300+0= 700, cioè se i pi li distribuisci e basta la ricchezza dovrebbe rimanere la stessa...
almeno io ho capito cosi...

Counter65
Originally posted by Gimmy
mmm... io ho fatto un trigger che calcola la somma di vi citta + pi nazione + pi esercito, quindi se hai 200 pi nella capitale, 4 citta da 200 pi l'una, -300 pi rimanenti nella nazione e 0 pi nell'esercito, in totale avrai 200+4*(200)-300+0= 700, cioè se i pi li distribuisci e basta la ricchezza dovrebbe rimanere la stessa...
almeno io ho capito cosi...


mi sa che hai ragione, mi sembrava troppo un casino infatti come pensavo io...

aspetta, ma la richezza potrebbe non andare mai sotto -2000 in questo caso o sbaglio? era questo il motivo per cui stavo calacolando in quel modo...

morte2097
io volevo kiedervi una cosa sui turni di gioco, nel caso ke qualkuno smetti di giocare e arrivasse il suo turno come faccio a farlo passare di turno dopo un tot di tempo?

ste182
scusate, ma che senso ha il fatto che il turno passa automaticamente in base alla data di registrazione?
tanto quando i giocatori si registrano, vengono comunque memorizzati in ordine cronologico sul DB, quindi nel primo record avrò il primo registrato, nel secondo il secondo ecc... o no?

Counter65
Originally posted by ste182
scusate, ma che senso ha il fatto che il turno passa automaticamente in base alla data di registrazione?
tanto quando i giocatori si registrano, vengono comunque memorizzati in ordine cronologico sul DB, quindi nel primo record avrò il primo registrato, nel secondo il secondo ecc... o no?


perche è molto meglio del solo ordinamento dei record, se dovessi fare un merge ad esempio di due tabelle utenti di database diversi...

Originally posted by morte2097
io volevo kiedervi una cosa sui turni di gioco, nel caso ke qualkuno smetti di giocare e arrivasse il suo turno come faccio a farlo passare di turno dopo un tot di tempo?


ci sono degli eventi che puoi sfruttare, almeno in asp e asp.net ci sono, non ne ho idea in php ma penso ci siano anche li:

http://asp.html.it/articoli/leggi/6...file-globalasa/

percio puoi rilevare quando qualcuno non è piu attivo in qualche modo...





Come avete calcolato voi la ricchezza? :?

antares85
ciao a tutti!
volevo solo chiedere voi come avete interpretato la "sospensione del giocatore dal gioco" se la ricchezza della sua nazione va sotto i -2000;
lo eliminate definitivamente dal gioco e si deve riregistrare da capo se vuole rigiocare, gli eliminate solo la nazione e per ricominciare non deve registrarsi da capo ma solo creare una nuova nazione o cos'altro?

Grazie

antares85
QUESTO THREAD FA KAKARE!!!

NEL THREAD DEL PROGETTO DI 2 ANNI FA CI SONO 33 PAGINE DI DOMANDE E SOPRATTUTTO RISPOSTE, IN TUTTI QUELLI RELATIVI A QUESTO PROGETTO 2 DOMANDE SU 3 RIMANGONO SENZA RISPOSTA, TANT'è CHE QUESTO THREAD HA SOLO 3 PAGINE...CHE UTILZZATE A FARE ALLORA IL DSY ??? NON SI CHIEDE DI POSTARE L'INTERO PROGETTO MA DI CHIARIRE DEI DUBBI, NON ABBIATE PAURA CHE ALL'ESAME IL PROF DICA CHE SI HA COPIATO, SE NO QUAL è L'UTILITà DEL FORUM SE NESSUNO RISPONDE? TANTO VALE FARE DA SOLI...
CIAO

ideafix
Hai ragione! c'è sempre meno partecipazione ai forum. :(

Cmq tornando alla tua domanda io pensavo di eliminare la Nazione dal gioco , ilgiocatore invece rimane attivo e può crearsi una nuova nazione

Ciao

antares85
si alla fine avevo optato anch'io per questa opzione, eliminare i suoi dati di gioco facendolo ricominciare da capo, senza dover però reinserire i suoi dati personali; oppure può scegliere di eliminarsi definitivamente se non vuole ricominciare da capo

antares85
anche se pensandoci, visto che è interpretabile a proprio modo, se non ci si vuole complicare la vita lo si elimina definitivamente e amen, se vuole rigiocare si deve riregistrare da capo...

ideafix
ma secondo me non è un complicarsi la vita.

Io cancello semplicemente un record dalla tabella nazioni.

Quando lo user riaccede avevo già implementato un controllo -> se non ha una nazione collegata va alla pagina di creazione nuova nazione.


Comunque su questi punti secondo me ogni possibile scelta è sensata.

Ciao!

antares85
e per la gestione dei turni tu come l'hai pensata?passi il turno all'utente successivo in qualunque caso o solo se è connesso, altrimenti passi al prossimo e così via? io pensavo di implementarlo nel secondo modo

ideafix
Io per i turni considero solo i giocatori connessi.
Ho solo qualche problema a gestire la cosa nel caso in cui un utente non si sconnetta facendo il log-out ma chiudendo brutalmente il browser.

Ma credo che è una pecca che lascerò , perchè sono ancora troppo indietro per cercare di risolvere queste finezze.

antares85
esatto, inizialmente meglio considerare l'utilizzo "regolare" dell'applicazine, se c'è tempo penserò ai casi particolari...

lordghost
ma credo che sia abbastanza banale il tracciamento dell'attività. basta tenere un last_update come data e farne la differenza con now, se supera i 10 min si slogga dal db l'utente. il controllo viene effettuato ad ogni refresh di qualsiasi utente (tanto se non ci sono utenti, non importa se viene lasciato loggato). poi ogni utente al refresh (perchè se un utente è connesso cambierà sicuramente pagine, interagendo con il db) aggiorna il last_update nel db.

Parere: io ho fatto un log di gioco, dal momento che non c'è interfaccia grafica, per conoscere lo stato del gioco ho creato un log che è praticamente l'epicentro delle strategie di gioco. Una cosa del tipo: "giocatore costruisce città", "giocatore sposta esercito A in citta2", "giocatore si connette/disconnette" e così via. Secondo me è una buona idea di gestione del gioco. Viene fatto tutto dal db ed è connesso alle procedure richiamate, che vengono loggate, in alcuni casi anche dai trigger.

lordghost
dubbio: ma per il progetto è importante la sicurezza? è un fattore che viene analizzato?

edit: in effetti era meglio se facevo un edit prima di ripostare :D

antares85
mah, direi che se ne tieni conto lo apprezza ma non penso sia fondamentale...

io invece ho il seguente dubbio:
quando devo spostare un esercito, perchè percorrere tutte le n strade che collegano la città di partenza con la destinazione anzichè costruirne una diretta? l'unica è mettere la condizione che se ho già una strada percorribile per arrivare a destinazione bisogna usare per forza quella, ma se la città è isolata si può fare il collegamento diretto...

es:
ho 3 città: B collegata con C e A collegata con nessuno;
se devo muovere un esercito dalla città A alla C posso fare un collegamento diretto A-C;
se invece ho A collegata a B e B collegata a C, per andare da A a C devo passare obbligatoriamente da B.

sbaglio? voi come avete fatto?

ciao!

ideafix
buona domanda!

Non lo so è sarei interessato a capirlo anche io!

antares85
io farei come ho scritto, rimane l'inconveniene che se devo andare da A a Z e disgraziatamente esiste già un percorso devo avere tanti PM.
in poche parole non c'è un discorso di percorso ottimo ma semplicemente di percorso esistente o no :p

lordghost
ma io sinceramente ho pensato a fare un sistema di routing per l'instradamento.. bla bla bla... ma sinceramente non credo che ne valga tanto la spesa per 3 punti. quindi lascio all'utente la facoltà di fare A-B e poi B-C, invece di trovare il percorso, anche perchè se ci fosse anche unl'alternativa la cosa si complica, per andare da A ad F:
percorso 1: A-B-F
percorso 2: A-B-C-D-E-F
quale scelgo? quante alternative ho? insomma, diventa un progetto di algoritmi.

ideafix
Voi come avete gestito la scadenza temporizzata dei turni?

lordghost
no per me nessuna scadenza temporizzata, solo un timer di inattività, se dopo 10min un giocatore non reagisce (non resetta il timer) viene deloggato dal gioco, ovviamente il turno passa di mano). il minimo indispensabile per non bloccare il gioco.

ideafix
Dal testo del progetto:
L'esercito può muoversi fra le città del giocatore utilizzando le strade esistenti. Lo sposta- mento fra due città è possibile solo se il numero di strade da percorrere è inferiore al numero di punti movimento dell'esercito. Inoltre, un esercito può attaccare una qualsiasi città di un altro giocatore



ho un paio di dubbi che il testo non riesce a chiarirmi:

1)Un esercito può attaccare un altra città solo se questa è collegata (e quindi raggiungibile) mediante una strada?

2) Se così non fosse (cioè l'esercitò può attaccare una città qualsiasi) a cosa servono le strade fra le città di 2 giocatori diversi?

antares85
esatto, io pensavo di far attaccare una città nemica se questa è raggiungibile tramite strade (fattore imprescindibile) e l'esercito ha abbastanza pm per andarci in un colpo solo (l'esercito non lo faccio permanere in città straniere). se durante l'implementazione mi accorgo che diventa impossibie raggiungere in un colpo città troppo lontane consentirò l'attacco indipendentemente dai pm, nel testo dice che può attaccare 'qualsiasi città di un'altra nazione'...è un pò vago a riguardo

antares85
anzi, rileggendolo vi dirò, per me l'obbligo di tener conto dei pm si ha solo quando dice "l'esercito può muoversi fra le città del giocatore";per attaccare altre città basta che ci sia una strada disponibile...

ideafix
dici?

secondo me non ha molto senso
se usa PM dovrebbe usarli anche per muoversi verso città del nemico

lordghost
Il maestro Anukai disse "non cercare il senso laddove non c'è", e in questo progetto c'è poco di sensato. l'unico modo per uscirne è fare un'applicazione che non crashi, tanto non deve mica divertire nessuno. Secondo me l'imperativo è esaudire le richieste senza porsi troppi perchè, e laddove c'è un dubbio, significa che c'è arbitrio.
Altrimenti mi sa che ce lo portiamo in tomba sto progetto.

ideafix
:D ehehh

antares85
daccordissimo con lordghost :P

cmq penso che farò così, è troppo ambiguo...
"l'utente può muoversi SOLO fra le città del giocatore"..."una strada PUO' (non DEVE) collegare due città di nazioni diverse"..."un esercito può attaccare QUALSIASI città di un altro giocatore"

quindi: l'utente si muove e si stabilisce presso le città della propria nazione e può attaccare città straniere se ha abbastanza pm per andarci in un colpo, stop.

e poi nella tomba non penso che arrivi internet, quindi meglio finirlo prima! ;)

ideafix
si sono della stessa idea :D

Ma nessuno del serale mi sa dire a chi/quando/come bisogna consegnare il progetto?

Le info postate nell'area filez sono per il primo turno , anche se immagino cambi poco le persone di riferimento dovrebbero essere differenti!

Gracias

ma721737
ciao a tutti! vi chiedo un grosso aiuto.
sono ancora nella fase "iniziale" del progetto.
Sto utilizzando easyphp e ho già creato un po' di trigger che funzionano.
Il problema che ho è l'utilizzo di variabili. Ovvero sto provando a creare una procedura che poi verrà richiamata nel trigger ed ho bisogno di dichiarare ed utilizzare delle variabili necessariamente.
Ma nel momento in cui scrivo per esempio DECLARE $d INT mi da un errore di sintassi. Le ho provate tutte ma non riesco ad uscirne.
Sicuramente è un piccolo dettaglio che sfugge alle mie poche conoscenze. Sapete aiutarmi?
grazie!
marta

lordghost
non so se sia colpa del $, ma io faccio semplicemente declare pinco integer/varchar(45), però devi essere sicura di dichiararli prima di ogni altra istruzione, prima di tutto il declare (ovviemente dentro i corpo del trigger :D)

ma721737
ho provato anche senza $, ma nulla!
per esempio:

CREATE PROCEDURE prova
DECLARE p INT
SET p = 30

non funziona ed è banalissima

lordghost
direi che a occhio ti sei dimenticata il begin/end

PHP:

delimiter $$

# crea un nuovo giocatore
drop procedure if exists createPlayer $$
create procedure createPlayer (plogin varchar(45)...)
begin
  declare pid integer;
  # inserisci nuovo record
  insert into players...
  # ricerca l'id del record
  select id_player into pid from players where login = plogin;
end $$


lordghost
consiglio http://www.nektra.com/oss/firefox/extensions/cookiepie/
una comoda estensione per firefox per avere su diverse tab, diverse sessioni di gioco, creando appositamente diversi spazi cookie separati

ste182
ciao a tutti; ho un dubbio sul progetto:
"il numero di abitanti AB aumenta al crescere di VI, Se vi è stabile o decrescente, il valore di ab rimane inalterato"
la frase è chiara ma:
supponiamo di avere 100 abitanti, 200pi investiti e 500pi nazione; modifico il Vi portandolo da 200 a 250(decido che per 10vi creo 5 ab, quindi in questo caso creo 25 ab)
nuovo valore di ab= 125
nuovo valore di vi= 250
pi della nazione= 500-50(250-200)

se successivamente rimetto il valore di Vi a 200, il valore dei pi nazione ritorna al valore inziale 500(450+50); però dal testo del progetto, il vaore di ab deve rimanere inalterato se il Vi è stabile o decrescente; non è molto logico no? posso aumentare in modo esponenziale il numero di abitanti, senza perdere in Pi.... voi come avete fatto?

inoltre gli abitanti, quando diminuiscono??

ideafix
Se ho capito gli abitanti possono diminuire solo creando un esercito (che sottrae gente alla città)


Ma nessuno sa rispondermi su le modalità di consegna per il serale :(

antares85
per ste182: direi che è come dici tu, ovvero è illogico ma il testo è così...quando sono andato a colloquio col prof mi ha detto che non gli interessa più di tanto che il gioco sia sensato, lo scopo non è quello ma è quello di implementare come si deve, sulla base delle richieste, la base di dati e le varie funzioni e trigger.

per ideafix: sorry sono del diurno :P provato a scrivere al prof?

antares85
dubbio probabilmente stupido:

nella tabella Giocatore ho il campo Nazione chiave esterna sulla chiave primaria della tabella Nazioni che ho chiamato nomeN:

Giocatore(user, ..., ..., Nazione)
. . . . . . . . . . . . . . . . . . |
. . . . . . . .----------------
. . . . . . . |
Nazioni(nomeN, ..., ..., ...)

dubbio1: quando creo la tabella Giocatore in sql, devo mettere che Nazione oltre ad essere chiave esterna è NOT NULL o essendo chiave esterna è implicito?

dubbio2: in fase di inserimento dati da form, l'utente inserisce prima tutti i dati personali (si popola la tab Giocatore tranne la chiave esterna Nazione che per ora resta vuota), poi crea la sua nazione e solo a questo punto viene valorizzata la chiave esterna nella tab Giocatore? quindi la chiave esterna può rimanere non valorizzata finchè non creo la nazione?

helplease

edit:
oppure potrei mettere la chiave esterna in Nazioni che fa rferimento alla chiave primaria di Giocatore ?

Sacratix
Originally posted by antares85
io invece ho il seguente dubbio:
quando devo spostare un esercito, perchè percorrere tutte le n strade che collegano la città di partenza con la destinazione anzichè costruirne una diretta?


perchè costriure una strada ha un costo >_>

Sacratix
io ho intenzione di risolverla semplicemente chiedendo, assieme ai dati untente [nome e password] anche il nome della nazione e della città "capitale"

poi da qui ti regoli tu sull'ordine con cui impostare le tre query in php
oppure puoi anche scrivere una query sola e tradurla nelle tre che ti servono con una RULE

antares85
ragazzi ma voi state usando postgresql o MySQL?
la maggiorparte degli esempi in rete è su mysql, su postgres davvero poca roba...

ideafix
Io ho usato Mysql

antares85
si installa easy?mi sai dare un link da dove scaricarlo e installarlo tramite installer? così lo provo concorrenzialmente a postgresql...

Sacratix
postgres perchè phpPgAdmin lo trovo molto più comdo di phpMyAdmin

per mysql c'è easyphp -> http://www.easyphp.org/

poi per postgres io ho trovato questo e mi trovo bene -> http://bitnami.org/stack/wappstack

antares85
grazie Sacratix, lo proverò...

un'ultima cosa (per ora :p ): voi nella tabella del giocatore avete inserito il campo Data_di_Nascita? se si, come si fa dal form php ad inserirla in un determinato formato dato che non esiste il tipo date, del genere:

<input name="data" type="date">

ma esiste solo il tipo testo..?l'alternativa è fare 3 menu a tendina con giorno mese ed anno selezionabili, ma come si fa poi a dire che andranno a comporre nel database il tipo date?

spero di essere stato comprensibile...

ideafix
Ciao Antares,

Lo puoi scaricare da qui:
http://dev.mysql.com/downloads/mysql/5.1.html#downloads

Io non ho inserito la data di nascita

antares85
GRAZIE!

alla fine la data o non la inserisco neanche io, oppure la inserisco nel formato "date" previsto da dbms senza fare controlli...più che altro la usavo insieme a nome e cognome per controllare che la stessa persona non si registrasse due volte (considerando ovviamente che a questo gioco ci giochino solo le persone 'oneste' che non inseriscono dati falsi per registrarsi più volte :P )
potrei usare un campo codicefiscale, ma anche lì, senza controlli di correttezza del codice inserito è inutile...

antares85
per chi utilizza postgres, ho trovato questo:

http://www.lulu.com/content/1076107

Sacratix
ma... mi viene un dubbio, non è che da php posso richiamare delle funzione interne al database?

antares85
DEL TIPO?

Sacratix
tipo una funzione che scrivo io

è più una curiosità che altro

lordghost
puoi richiamare procedure e funzioni se è questo che intendi:
"call procedura1(24, 'ciccio');"
oppure una funzione
"select Prossimo(3) as turno;"

carla86
Premetto ke sto iniziando ora x consegnarlo a giugno e ke io uso mysql.
voi come vi siete regolati x la memorizzazione della bandiera e della data_registrazione??

antares85
io per la prima provo memorizzando la directory del file jpg, per la seconda è un tipo di dato standard di sql, tipo int, guarda un attimo il manuale e vedi che lo trovi.

invece io volevo chiedere: al momento in cui un nuovo giocatore si registra e vengono memorizzati i dati nella bd, devo anche far partire il comando CREATE USER (per la gestione delle grant)?
o per voi non serve creare un nuovo utente del db per ogni giocatore?

grazie miiiiiiiiille!

lordghost
ma direi che al massimo basta un solo utente di tipo utente che ha i diritti necessari per giocare, dal momento che tutti accederanno al db nello stesso modo, da php. Poi magari una parte di admin con diritti più estesi magari quello di resettare il gioco. E magari anche un terzo che sarebbe l'admin del db, giusto per non essere il root del dbms.

antares85
ma se metti un solo utente a chi concedi i permessi per giocare o solo consultare visto che non ci sono altri utenti?

delleroby
ma tu vorresti cambiare i permessi a ogni passaggio turno??
A me sembra troppo incasinato sinceramente,io aggiungerei solo qualche tupla nella tabella utente per sapere di chi è il turno e fare controlli su qualle quando ce n'è bisogno...

antares85
volevi dire "aggiungere qualche colonna" o proprio aggiungere qualche tupla? nel senso che metti un campo DI_TURNO (si/no) per ogni giocatore, o ho capito male?

lordghost
no ma io dicevo più fisicamente nel dbms, quando il php esegue il mysql_connect sicuramente non mi connetterò come root, ma come player oppure come admin, per questioni di sicurezza. non ha niente a che fare con la gestione dei turni o del gioco in se.

delleroby
si ma così i permessi cambiano ad ogni turno.
Io a dir la verità per comodità nel ciclo dei turni di colonne ne ho aggiunte 2.
1 per sapere di chi è il turno in corso
1 per sapere nel giro dei turni correnti chi non ha ancora utilizzato il proprio turno.
Cambiare le autorizzazioni in base ai turni mi sembra una pesantezza eccessiva,poi può sicuramente essere che mi sbagli..

antares85
l'idea del campo nella tabella dei giocatori che mi dicesse chi è di turno mi era balenata per la mente all'inizio, poi l'avevo accantonata...
facendo in questo modo usi ancora la grant per i permessi? se si, che utente metti nella grant? la username del giocatore o appunto il nome dell'utente creato con create user al momento della sua registrazione (che è poi il mio dubbio)?

spero di essere stato comprensibile

delleroby
io i grant non li ho proprio utilizzati perchè altrimenti secondo il mio ragionamento sono da cambiare a gioco in corso e ho preferito evitarli.i permessi si rifanno tutti alla tabella contenente il l'informazione del turno in corso.

carla86
scusate l'ignoranza ma nn ho mai usato ne mysql ne php, è la prima volta. Ho provato a fare la connessione al database d prova ke ho fatto.
Premetto ke la password sono sicura sia giusta, quindi qui la ometto. Il database si chiama prova; quello d cui nn sono sicura è il nome dell'utente xke ho usato quello principale di mysql.
Potete dirmi se questo codice è corretto??

<?php
/*prova connesione database*/
$db_host = "localhost";
$db_user = "root";
$db_password = "******";
$db_name = "prova";
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri.");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri.");
?>

Mi da errore apache, nn mi da gli errori ke ho scritto io ma nn carica proprio. GRAZIE!!

lordghost
se scrivi l'errore può essere d'aiuto. ma secondo me non hai installato/configurato mysql correttamente

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate