Porting di jRisk in Python

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
`Alessio`
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3048
Iscrizione: martedì 19 dicembre 2006, 11:16
Località: Aprilia
Contatti:

Porting di jRisk in Python

Messaggio da `Alessio` »

Non aggiorno più il progetto da molto tempo, è presente a questo indirizzo http://savannah.nongnu.org/projects/jrisk, è possibile inoltre sfogliare il repository dei sorgenti

Avevo in mente di:
  • fare un porting in Python
  • ristrutturare il progetto (partendo da una nuova fase di analisi dei requisiti)
  • fornire un'interfaccia grafica da sviluppare con le GTK+
Se qualcuno ha delle idee, dei consigli o vuole contribuire alla fase di ristrutturazione del gioco ne sarei felicissimo, mandatemi una mail oppure iscrivetevi a savannah e contattami da lì

;)
everybody lies
Non usate i PM per contattarmi, non li leggo!
gennaro
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 303
Iscrizione: domenica 16 luglio 2006, 11:13

Re: Porting di jRisk in Python

Messaggio da gennaro »

Ciao! Sono queste le regole del gioco? Io ho una buona esperienza col python ed ho programmato un pò con le gtk... il java non lo conosco ma non sembra così complicato... la sintassi somiglia vagamente al C... posso aiutare in qualche modo?  :-[
Avatar utente
`Alessio`
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3048
Iscrizione: martedì 19 dicembre 2006, 11:16
Località: Aprilia
Contatti:

Re: Porting di jRisk in Python

Messaggio da `Alessio` »

ecco le regole


certo che puoi aiutare!  (good)


intanto comincia a scaricare i sorgenti e dimmi cosa ne pensi, dimmi se ci sono punti poco comprensibili


poi si potrebbe procedere con una nuova fase di analisi dei casi d'uso ;)
everybody lies
Non usate i PM per contattarmi, non li leggo!
gennaro
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 303
Iscrizione: domenica 16 luglio 2006, 11:13

Re: Porting di jRisk in Python

Messaggio da gennaro »

Ok, ho appena finito di leggere le regole!  ::) Ho anche scaricato i sorgenti del tuo programma... ma dovresti spiegarmi come si compilano... io ho provato con javac Gioco.java ma mi da errore!  :-\  Perdona la mia incompetenza!  :-[  Ho qualche altra domanda:

1) Cosa intendi per casi d'uso ?  :D
2) L'interfaccia che intendi realizzare con le GTK in pratica consisterà nel tabellone con i continenti giusto?

Ciao.  :)
Avatar utente
`Alessio`
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3048
Iscrizione: martedì 19 dicembre 2006, 11:16
Località: Aprilia
Contatti:

Re: Porting di jRisk in Python

Messaggio da `Alessio` »

che errori di compilazione ti vengono restituiti?
gennaro ha scritto: 1) Cosa intendi per casi d'uso ?  :D
ecco un piccolo tutorial teorico
2) L'interfaccia che intendi realizzare con le GTK in pratica consisterà nel tabellone con i continenti giusto?
certo, adattabile alle mappe

qui è un prova di porting della classe Tabellone: http://pastebin.ubuntu-nl.org/26576/
sono un neofita in python, quindi correggimi se sbaglio  :-[
everybody lies
Non usate i PM per contattarmi, non li leggo!
gennaro
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 303
Iscrizione: domenica 16 luglio 2006, 11:13

Re: Porting di jRisk in Python

Messaggio da gennaro »

Gli errori sono questi:

Codice: Seleziona tutto

gennaro@gennaro-desktop:~/jrisk/src$ javac Gioco.java
----------
1. WARNING in Gioco.java (at line 209)
        Iterator it;
                 ^^
The local variable it is never read
----------
----------
2. ERROR in /home/gennaro/jrisk/src/./Giocatore.java (at line 182)
        int occorrenzeValore = Collections.frequency(this.carte, valore);
                                           ^^^^^^^^^
The method frequency(List, String) is undefined for the type Collections
----------
2 problems (1 error, 1 warning)
Darò un occhiata al tutorial e alla classe Tabellone... ti faccio sapere! 
sospiro
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 521
Iscrizione: lunedì 24 aprile 2006, 21:57
Contatti:

Re: Porting di jRisk in Python

Messaggio da sospiro »

Ciao a tutti....e buon giorno gennaro....quanto tempo:P !!

cmq....
ho dato una occhiata al jar dei sorgenti...la versione finale è la 1.0.1??
scusate la domanda stupida...ma perchè volete fare un porting a python?

una altra cosa...ho dato una guarda veloce veloce hai sorgenti...come è strutturato il progetto? secondo me potrebbe essere una buona idea usare un pattern simile a mvc ( o come si chiama... :D )....

se mi fate sapere qualcosa giuro che provo ad aiutarvi.....
sempre tempo permettendo:P

ciao e buon lavoro!
[url=http://"spidblog.altervista.org"]Il mio blog[/url]
Avatar utente
`Alessio`
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3048
Iscrizione: martedì 19 dicembre 2006, 11:16
Località: Aprilia
Contatti:

Re: Porting di jRisk in Python

Messaggio da `Alessio` »

sospiro ha scritto: ho dato una occhiata al jar dei sorgenti...la versione finale è la 1.0.1??
sì, lo abbandonai presto  ;D
scusate la domanda stupida...ma perchè volete fare un porting a python?
perchè è il linguaggio di scripting ufficiale di Ubuntu, inoltre si interfaccia alla grande con le GTK+
come è strutturato il progetto?
non benissimo, lo sviluppai in fretta e furia
secondo me potrebbe essere una buona idea usare un pattern simile a mvc ( o come si chiama... :D )....
perchè no? ;)
se mi fate sapere qualcosa giuro che provo ad aiutarvi.....
ne sarei felicissimo  :D
everybody lies
Non usate i PM per contattarmi, non li leggo!
sospiro
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 521
Iscrizione: lunedì 24 aprile 2006, 21:57
Contatti:

Re: Porting di jRisk in Python

Messaggio da sospiro »

ok ok !! ;D  ;D

guarda...di python so ben poco, però ti assicuro che java + swing per un progetto del genere sono una manna dal cielo...più che altro sarebbe molto versatile (sarebbe un nulla realizzare una versione per internet)...

cmq se python è il linguaggio i scripting ufficile...bhe non c'è da discutere allora :P :P ...

per sentito dire e letto in giro su internet, so che le gtk hanno prestazioni minori rispetto alle qt...voi siete più informati?
comunque se si realizzasse il gioco in modo da lasciare ben separate ed indipendenti l'interfaccia utente e la logica potremmo provarle tranquillamente entrambe....
[url=http://"spidblog.altervista.org"]Il mio blog[/url]
Avatar utente
`Alessio`
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3048
Iscrizione: martedì 19 dicembre 2006, 11:16
Località: Aprilia
Contatti:

Re: Porting di jRisk in Python

Messaggio da `Alessio` »

sospiro ha scritto: comunque se si realizzasse il gioco in modo da lasciare ben separate ed indipendenti l'interfaccia utente e la logica potremmo provarle tranquillamente entrambe....
questo è l'obiettivo n. 1  ;D


cmq nel caso vuoi dare una risistemata al progetto in Java ti basta iscriverti a savannah e mandare la richiesta di join al progetto, ti addo subito!  ;)

ah, c'è anche una mailing list, sta tutto sul sito cmq
everybody lies
Non usate i PM per contattarmi, non li leggo!
sospiro
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 521
Iscrizione: lunedì 24 aprile 2006, 21:57
Contatti:

Re: Porting di jRisk in Python

Messaggio da sospiro »

`Alessio` ha scritto:
questo è l'obiettivo n. 1  ;D
bene bene :P :P !!!

dai ora vado a scuola, stase quando torno mi iscrivo e provo a vedere un po meglio il codice scritto in java...
sarebbe anche una buona idea cominciare a fare il progetto, magari in uml, prima di scrivere il codice....no??

una sola cosa....
in che versione di java lo hai scritto???
[url=http://"spidblog.altervista.org"]Il mio blog[/url]
sospiro
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 521
Iscrizione: lunedì 24 aprile 2006, 21:57
Contatti:

Re: Porting di jRisk in Python

Messaggio da sospiro »

@ gennaro: ciao io non ho ancora provato a compilarlo...per il warning non ci sono problemi, per l'errore non so... in effetti manco nelle api di java ho trovato un riferimento al metodo frequency di collections...
alessio sai spiegarci meglio??
[url=http://"spidblog.altervista.org"]Il mio blog[/url]
Avatar utente
`Alessio`
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3048
Iscrizione: martedì 19 dicembre 2006, 11:16
Località: Aprilia
Contatti:

Re: Porting di jRisk in Python

Messaggio da `Alessio` »

allora:
sospiro ha scritto: in effetti manco nelle api di java ho trovato un riferimento al metodo frequency di collections...
alessio sai spiegarci meglio??
allora: la versione era se la 1.5, il metodo fa parte della classe Collections, qui c'è il link ai docs della 1.5 (suddetto metodo è presente anche nella 1.6)

va bene per l'UML, però non sarebbe meglio partire con una nuova fase di analisi dei requisiti?

appena ho un po' di tempo comincio a postare qualche caso d'uso, giusto per rendere l'idea e magari per cominciare a buttare giù qualche riga di codice ;)
everybody lies
Non usate i PM per contattarmi, non li leggo!
gennaro
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 303
Iscrizione: domenica 16 luglio 2006, 11:13

Re: Porting di jRisk in Python

Messaggio da gennaro »

sospiro ha scritto: Ciao a tutti....e buon giorno gennaro....quanto tempo:P !!
Holà Pietro, mi fa piacere che ti unisci al gruppo!
per sentito dire e letto in giro su internet, so che le gtk hanno prestazioni minori rispetto alle qt...voi siete più informati?
Considerato che le qt sono scritte in C++ e le gtk in C pensavo dovesse essere il contrario... mmm... in ogni caso ognuna delle due è di sicuro più veloce di swing (o come si chiama l'interfaccia di java!)
sospiro ha scritto: guarda...di python so ben poco
Che problema c'è? Io ti do una mano con python e tu mi aiuti con java, si può fare?

@Alessio:
Ho dato una rapida occhiata alla guida sui casi d'uso... se ho capito bene quello che vuoi fare dobbiamo prima definire come il programma interagirà con l'utente e poi in base alle funzionalità che dovrà offrire progettarne la struttura interna, giusto?
Avatar utente
`Alessio`
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3048
Iscrizione: martedì 19 dicembre 2006, 11:16
Località: Aprilia
Contatti:

Re: Porting di jRisk in Python

Messaggio da `Alessio` »

Ecco un caso d'uso, riguarda l'aspetto più complesso del progetto:
  • 1. Il Giocatore corrente avvia una nuova Battaglia
  • 2. Il Sistema visualizza la lista dei Territori controllati dal Giocatore e il numero di armate presenti su ognuno di essi.
  • 3. Il Giocatore sceglie il Territorio di partenza dell'attacco
  • 4. Il Sistema controlla che sul Territorio scelto ci sia un numero sufficiente di Armate per iniziare un attacco (min 2), dunque mostra la lista dei Territori confinanti controllati dagli altri Giocatori avversari e il numero delle Armate presenti su ognuno di essi.
  • 5. Il Giocatore inserisce il nome del Territorio avversario da attaccare e il numero di Armate da impegnare nell'attacco (min 2 max 3).
  • 6. Il Sistema chiede al Giocatore avversario di inserire il numero di Armate da utilizzare in difesa (min 1 max 3)
  • 7. Ognuno dei due Giocatori impegnati nell'attacco lancia un numero di Dadi pari al numero di armate impegnate nella Battaglia
  • 8. Il Sistema confronta i Dadi e sottrae il numero delle Armate perse dai rispettivi Territori dei Giocatori: se uno dei due Territori ha 0 armate esegue uno Spostamento(n. armate utilizzate nell'attacco, se il territorio dell'attaccante è rimasto con 2 armate ne va spostata solo 1) dal territorio del vincitore e informa il Giocatore che alla fine del turno può ritirare una Carta
Il passo 1. è da ripetere fino a che non si verifichi una delle seguenti condizioni:
  • il Giocatore passa il turno (obbligato se I Territori del Giocatore corrente sono rimasti tutti con una sola Armata)
  • il Giocatore ha vinto:

Codice: Seleziona tutto

 for each territorio in Mappa -> territorio.getOccupante ==  Giocatore corrente
  • il Giocatore ha perso:

Codice: Seleziona tutto

 for each territorio in Mappa -> territorio.getOccupante !=  Giocatore corrente
everybody lies
Non usate i PM per contattarmi, non li leggo!
sospiro
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 521
Iscrizione: lunedì 24 aprile 2006, 21:57
Contatti:

Re: Porting di jRisk in Python

Messaggio da sospiro »

Che problema c'è? Io ti do una mano con python e tu mi aiuti con java, si può fare?
no ci vedo nulla di male...anzi,a me va più che bene :D

per l'iterfaccia swing non è un bolide, ovvio è pur sempre java, però ha il vantaggio di essere parecchio versatile e molto molto ben documentata...riguarda a gtk e qt parlavo solo per "sentito dire", ora non so essere preciso....

ho letto il caso d'uso: ne deduco che tu voglia impostare la partita in modo che ci sia un giocatore umano e gli altri gestiti dalla cpu giusto? e che la partita sia con un solo obbiettivo, conquistare tutto? potremmo magari pensare di suddividere bene il tutto in modo da avere la possibilità di aggiungere funzioni in futuro...(giocatori online, carte obbiettivo...)..
[url=http://"spidblog.altervista.org"]Il mio blog[/url]
gennaro
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 303
Iscrizione: domenica 16 luglio 2006, 11:13

Re: Porting di jRisk in Python

Messaggio da gennaro »

Servirebbe un modello client-server... il server una volta avviato attende finchè i giocatori non si connettono e poi fornisce lo scenario (il planisfero, le armate etc...) per iniziare la partita (ha senso quello che dico? :-\ )... ora devo scappare... ciao!  :D
sospiro
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 521
Iscrizione: lunedì 24 aprile 2006, 21:57
Contatti:

Re: Porting di jRisk in Python

Messaggio da sospiro »

gennaro ha scritto: Servirebbe un modello client-server... il server una volta avviato attende finchè i giocatori non si connettono e poi fornisce lo scenario (il planisfero, le armate etc...) per iniziare la partita (ha senso quello che dico? :-\ )... ora devo scappare... ciao!  :D
scusa non ho capito...intendi fare una cosa del genere sul pc o creare in questa maniera un sistema distribuito?

cmq è fattibile bisogna definire cosa gestisce il server e cosa gestisce il client...il fatto è che se lo si vede come un gioco online è impensabile supporre che uno degli utenti svolga il ruolo di server... ci sarebbero troppi problemi (nat, firewall, router...)

penso che dovremmo prima davvero decidere bene cosa vogliamo fare....poi farlo sarà un attimo!! piùo meno :P
[url=http://"spidblog.altervista.org"]Il mio blog[/url]
gennaro
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 303
Iscrizione: domenica 16 luglio 2006, 11:13

Re: Porting di jRisk in Python

Messaggio da gennaro »

sospiro ha scritto: scusa non ho capito...intendi fare una cosa del genere sul pc o creare in questa maniera un sistema distribuito?
A scelta dell'utente... server e client sono due processi... o li si avvia sulla stessa macchina o su macchine diverse in una stessa rete... pensavo di dare all'utente la possibilità di specificare l'ip della macchina sulla quale gira il server (esempio jrisk 127.0.0.1) è possibile quello che dico? Pensavo che un'impostazione del genere potesse servire dato che hai menzionato la possibilità di avere giocatori online...  :D
Avatar utente
`Alessio`
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3048
Iscrizione: martedì 19 dicembre 2006, 11:16
Località: Aprilia
Contatti:

Re: Porting di jRisk in Python

Messaggio da `Alessio` »

allego due casi d'uso, fra i più semplici ;)
Allegati
UC2_iterazione_01.txt
(697 Byte) Scaricato 46 volte
UC1_irerazione_01.txt
(1.15 KiB) Scaricato 49 volte
everybody lies
Non usate i PM per contattarmi, non li leggo!
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti