22 Febbraio, 2012, 19:26:08 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia: È uscito il numero 55 di Full Circle Magazine in italiano! Lo trovate a questo indirizzo.
 
   Indice   FAQ Aiuto Regolamento Ricerca Accedi Registrati  
3rd Party Projects

Questa sezione ha lo scopo di raccogliere le iniziative/progetti della nostra comunità legati ad Ubuntu.
I progetti ospitati nascono da iniziative degli utenti o gruppi di utenti.
In futuro i progetti potrebbero rimanere iniziative "personali" o essere integrate nella distribuzione, sponsorizzate da Ubuntu o dalla Canonical a discrezione dei responsabili.
All'interno di essa, sarà possibile inserire delle discussioni che hanno la funzione di pubblicizzare avvenimenti, iniziative e progetti software su Ubuntu e GNU/Linux in generale
Sarà inoltre possibile, per un utente proporre lo sviluppo di nuovi software, in questo caso la discussione di richiesta avrà la funzione di generare un requisito funzionale del prodotto da sviluppare
  • Sez. I - Iniziative
    • Fanno parte di "iniziative", ad esempio, le seguenti categorie: corsi, progetti editoriali, libri.
    • La segnalazione di una iniziativa avviene creando una discussione con l'annuncio.
    • Una volta effettuata la segnalazione, la discussione viene chiusa dal Gruppo Staff o moderatore della sezione.
    • Se l'iniziativa esposta, comporta un costo di adesione o fruizione, questo deve essere esplicitamente riportato all'interno della discussione.
    • È obbligatorio, segnalare all'interno della discussione i riferimenti per poter contattare/partecipare all'iniziativa.
  • Sez. II - Progetti
    • La segnalazione di un progetto software, come per le iniziative, avviene e si sviluppa all'interno di una singola discussione.
    • Sarà consentito l'inserimento di software solo se rilasciati sotto licenza GPL (in tutte le sue versioni) o equivalente, tale da garantire all'utente l'utilizzo del prodotto senza restrizioni e allo sviluppatore la proprietà intellettuale del codice prodotto.
    • Nell'oggetto della discussione, dovrà essere riportata la categoria ed una semplice descrizione del tool.
    • Se il progetto ha già un sito che lo ospita, sarà a discrezione del Gruppo Staff o del moderatore della sezione chiuderla come segnalazione o lasciarla aperta.
    • Se il progetto non ha un sito che lo ospita, si potranno aprire due discussioni, una per proporre modifiche/implementazioni (dove nel titolo occorre specificare [sviluppo]) ed una per segnalare problemi (e nel titolo dovrà comparire [supporto])
    • Non è consentita l'apertura di nuove discussioni in riferimento a versioni superiori o modificate di un prodotto già riportato in precedenza.
    • Se il software, oggetto del progetto, ha una dimensione non superiore ai 200Kb, per prodotti che non hanno un sito che li ospita, sarà possibile allegarlo alla discussione.
  • Sez. III - Proposte
    • Una proposta deve essere eseguita e si svilupperà all'interno di una singola discussione.
    • Le proposte dovranno essere inserite direttamente nella sezione "3rd Party Projects".
    • Dovranno essere specificate le funzionalità che devono essere sviluppate.
    • Non dovranno essere riportate diciture tipo "...deve fare come questo software...", ma indicare nel miglior modo possibile i requisiti.
    • Una volta segnalato, la discussione resterà aperta per consentire uno scambio di idee su come sviluppare il codice o finché uno sviluppatore non fornirà una soluzione (da pubblicizzare poi, come visto prima, nella sezione Progetti) che ne soddisfi il requisito.
Per consentire una più semplice consultazione della sezione, nel titolo dovrà essere specificata la categoria di appartenenza, ad esempio:
  • [Iniziativa]
  • [Progetto]
  • [Proposta]
Per quanto non esposto sopra, si fa comunque riferimento al Regolamento del forum ed al Codice di Condotta della Community.
Pagine: [1] 2 3 ... 25   Vai giù
  Stampa  
Autore Discussione: [Progetto] ScoPy: il gioco della scopa  (Letto 21682 volte)
0 Utenti e 2 Utenti non registrati stanno visualizzando questa discussione.
marcoscarpetta
Novello Novizio

Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 289

Media messaggi

I use python


Mostra profilo
« inserita: 01 Marzo, 2011, 13:48:45 »

Vi presento un piccolo programma che sto scrivendo.
Si tratta del gioco della scopa.
Il programma è scritto in Python e usa le GTK come librerie grafiche.

Qui potete trovare tutte le informazioni sul programma.
« Ultima modifica: 18 Dicembre, 2011, 18:48:34 da marcoscarpetta » Registrato

Citazione
Linux è un piano segreto del KGB, dei comunisti e soprattutto di Pingu (contemplato nel simbolo del sistema operativo) per distruggere l'America, conquistare il mondo e poter quindi iniziare una nuova partita a Risiko.
Diaspora*
Mefrio
Entusiasta Emergente
**
Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 1.426

Media messaggi



Mostra profilo
« Risposta #1 inserita: 01 Marzo, 2011, 18:49:06 »

non è male, bravo Wink

direi che dare un senso di profondità al mazzo non farebbe male, così come metterci qualche animazione Smiley

l'immagine delle carte coperte è orribile però, cambiala Tongue potresti cercare di dare una forma più "tridimensionale" al tappetino di gioco disegnandoci sopra delle piegature per farlo sembrare più realistico. Un altra cosa che potresti fare è mettere la scelta del mazzo di carte (napoletane, piacentine ecc.)
Registrato

The Wise Dj
Utente non iscritto
« Risposta #2 inserita: 01 Marzo, 2011, 18:49:59 »

Nooo le carte napoletane!  Grin (non ci capisco mai una mazza xD)

Interessante, mi iscrivo =D
Registrato
marcoscarpetta
Novello Novizio

Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 289

Media messaggi

I use python


Mostra profilo
« Risposta #3 inserita: 01 Marzo, 2011, 22:33:38 »

non è male, bravo Wink

direi che dare un senso di profondità al mazzo non farebbe male, così come metterci qualche animazione Smiley

l'immagine delle carte coperte è orribile però, cambiala Tongue potresti cercare di dare una forma più "tridimensionale" al tappetino di gioco disegnandoci sopra delle piegature per farlo sembrare più realistico. Un altra cosa che potresti fare è mettere la scelta del mazzo di carte (napoletane, piacentine ecc.)
La profondità al mazzo si può fare subito(cambiando l'immagine con una con effetto tridimensionale), aggiungere i mazzi mi sembra una buona idea, l'unica cosa è che ci vorra un po' a ritagliare le 40 carte dall'immagine di Wikipedia.

Per fare le animazioni bisognerebbe rifare l'interfaccia grafica, in quanto ora è una gtk table che contiene immagini e bottoni. Si potrebbe fare con pygame credo.

In ogni caso prima della grafica volevo pensare a migliorare l'algoritmo del computer, non avendo ancora trovato qualcosa di decente.

Nooo le carte napoletane!  Grin (non ci capisco mai una mazza xD)

Interessante, mi iscrivo =D

Che carte vorresti? Se vuoi anche tu quelle piacentine le aggiungo(anche se mi sembrano una brutta copia di quelle napoletane)
« Ultima modifica: 01 Marzo, 2011, 22:36:38 da marcoscarpetta » Registrato

Citazione
Linux è un piano segreto del KGB, dei comunisti e soprattutto di Pingu (contemplato nel simbolo del sistema operativo) per distruggere l'America, conquistare il mondo e poter quindi iniziare una nuova partita a Risiko.
Diaspora*
The Wise Dj
Utente non iscritto
« Risposta #4 inserita: 01 Marzo, 2011, 22:48:20 »

Quelle classiche da scala 40 o poker, diciamo quelle con i numeri ben impressi =D

Che algoritmo usa il computer?

Riesci a isolarlo e postarlo separatamente?
Registrato
marcoscarpetta
Novello Novizio

Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 289

Media messaggi

I use python


Mostra profilo
« Risposta #5 inserita: 01 Marzo, 2011, 22:54:19 »

Le carte da poker sono 52, queste sono 40.
Comunque la scala dei valori è abbastanza comprensibile, dall'1 al 7 si capiscono credo, poi c'è la donna, il cavallo e il re.

Il codice è questo ma non so se lo capirai:
Praticamente prima calcola le prese possibili per ogni carta.
Poi ci sono due casi, quello in cui si può prendere qualcosa e quello in cui no.
poi in entrambi i casi calcola il valore di ogni giocata considerando le carte da prendere e quelle da lasciare a terra(questa è la parte da migliorare) e sceglie la migliore.
Codice:
def gioca_computer(self):
carte_mano = self.giocatore[1].mano.carte
carte_terra = self.carte_terra.carte
giocate = []
no_prese = 1
n = 0
i = 0
while n < len(carte_mano):
prese_possibili = prese(carte_mano[n], carte_terra)
if prese_possibili != [[]]:
no_prese = 0
for presa in prese_possibili:
giocate.append([n, presa])
n = n+1
if len(giocate) == 1:
return giocate[0]
elif no_prese == 1:
ide_carte = range(len(carte_mano))
migliore = [0,[],0]
for ide_carta in ide_carte:
valore = 0
n = 0
for carta in carte_mano:
if carta.valore == carte_mano[ide_carta].valore:
n = n + 1
if n >= 2:
valore = valore + 1
if carte_mano[ide_carta].palo != 0:
valore = valore + 1
if carte_mano[ide_carta].valore == 7:
valore = valore - 1
if valore > migliore[2]:
migliore[0], migliore[2] = ide_carta, valore
n = 0
for carta in carte_mano:
if carta.valore > carte_mano[ide_carta].valore:
n = n + 1
valore = valore + n
return migliore[0:2]
else:
migliore = [0,[],-20]
for giocata in giocate:
valore = 0
if len(giocata[1]) == len(carte_terra):
valore = valore + 20
valore_terra = 0
for ide_carta in range(len(carte_terra)):
if not ide_carta in giocata[1]:
valore_terra = valore_terra + carte_terra[ide_carta].valore
if valore_terra <= 10:
valore = valore - 6
carte = []
for ide_carta in giocata[1]:
carte.append(carte_terra[ide_carta])
carte.append(carte_mano[giocata[0]])
valore = valore + len(carte)
for carta in carte:
if carta.palo == 0:
valore = valore + 3
if carta.valore == 7:
valore = valore + 4
if carta.palo == 0:
valore = valore + 20
if carta.valore == 6:
valore = valore + 2
if carta.valore == 1:
valore = valore + 1
if valore > migliore[2]:
migliore[0], migliore[1], migliore[2] = giocata[0], giocata[1], valore
return migliore[0:2]
Ma sai giocare a scopa?
perchè più che un aiuto informatico mi servirebbe avere una scala delle prese migliori
« Ultima modifica: 01 Marzo, 2011, 23:04:26 da marcoscarpetta » Registrato

Citazione
Linux è un piano segreto del KGB, dei comunisti e soprattutto di Pingu (contemplato nel simbolo del sistema operativo) per distruggere l'America, conquistare il mondo e poter quindi iniziare una nuova partita a Risiko.
Diaspora*
sbubba
Entusiasta Emergente
**
Non Connesso Non Connesso

Messaggi: 1.430

Media messaggi


Mostra profilo
« Risposta #6 inserita: 01 Marzo, 2011, 23:21:16 »

molto carino!!
a me il dorso delle carte piace. se aggiungi le piacentine non sarebbe male!
sarebbe carino anche visualizzare il numero di carte o mani rimanenti, per rendersi conto meglio della partita.
Registrato
The Wise Dj
Utente non iscritto
« Risposta #7 inserita: 01 Marzo, 2011, 23:37:47 »

Intendevo il tipo delle carte da poker, non il numero (52) Wink

Ora vedo il codice =P
Registrato
The Wise Dj
Utente non iscritto
« Risposta #8 inserita: 01 Marzo, 2011, 23:43:54 »

Allora, per un attimo avevo pensato alla cirulla (prendi 15) che è comunque più complessa sotto certi aspetti =D

Direi che come prima cosa si punta al sette bello (sia a prenderlo giù sia a preferire di prenderlo perdendo una scopa (se hai il sette bello e un asso in mano, un sette e un due per terra, ad esempio)), poi agli ori, poi alla primiera, poi alle scope.

Parere personale, evitare di lasciare sul tavolo combinazioni del sette.

Se vuoi implementare anche la difficoltà per il giocatore puoi mettere che per qualche valore random lui lasci perdere l'azione giusta e ne faccia una sciocca. Diminuendo la difficoltà il valore random generato sarà più propenso all'errore del computer.
Registrato
marcoscarpetta
Novello Novizio

Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 289

Media messaggi

I use python


Mostra profilo
« Risposta #9 inserita: 02 Marzo, 2011, 12:35:20 »

molto carino!!
a me il dorso delle carte piace. se aggiungi le piacentine non sarebbe male!
sarebbe carino anche visualizzare il numero di carte o mani rimanenti, per rendersi conto meglio della partita.

Si anche questa è una buona idea, appena ho tempo faccio queste modifiche

Intendevo il tipo delle carte da poker, non il numero (52) Wink

Ora vedo il codice =P

Ma qundi dovrei mattere dall'1 al 10 o dall'1 al 7 e J, Q e K?

Allora, per un attimo avevo pensato alla cirulla (prendi 15) che è comunque più complessa sotto certi aspetti =D

Direi che come prima cosa si punta al sette bello (sia a prenderlo giù sia a preferire di prenderlo perdendo una scopa (se hai il sette bello e un asso in mano, un sette e un due per terra, ad esempio)), poi agli ori, poi alla primiera, poi alle scope.

Parere personale, evitare di lasciare sul tavolo combinazioni del sette.

Se vuoi implementare anche la difficoltà per il giocatore puoi mettere che per qualche valore random lui lasci perdere l'azione giusta e ne faccia una sciocca. Diminuendo la difficoltà il valore random generato sarà più propenso all'errore del computer.

Più o meno adesso è già così, a parte gli errori (non sono necessari tanto si vince sempre lo stesso)
Registrato

Citazione
Linux è un piano segreto del KGB, dei comunisti e soprattutto di Pingu (contemplato nel simbolo del sistema operativo) per distruggere l'America, conquistare il mondo e poter quindi iniziare una nuova partita a Risiko.
Diaspora*
vaillant
Redattore Wiki
Pimpante Precettore
***
Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 6.944

Media messaggi


La vendetta è un piatto che va servito freddo


Mostra profilo
« Risposta #10 inserita: 02 Marzo, 2011, 12:37:38 »

Complimenti per l'iniziativa. Benchè non possa essere di grande aiuto per lo sviluppo, mi diletto a provarlo per suggerire modifiche o malfunzionamenti Wink

Registrato

marcoscarpetta
Novello Novizio

Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 289

Media messaggi

I use python


Mostra profilo
« Risposta #11 inserita: 02 Marzo, 2011, 12:48:49 »

Complimenti per l'iniziativa. Benchè non possa essere di grande aiuto per lo sviluppo, mi diletto a provarlo per suggerire modifiche o malfunzionamenti Wink

 Beer to beer
Registrato

Citazione
Linux è un piano segreto del KGB, dei comunisti e soprattutto di Pingu (contemplato nel simbolo del sistema operativo) per distruggere l'America, conquistare il mondo e poter quindi iniziare una nuova partita a Risiko.
Diaspora*
The Wise Dj
Utente non iscritto
« Risposta #12 inserita: 02 Marzo, 2011, 12:51:22 »

Ma qundi dovrei mattere dall'1 al 10 o dall'1 al 7 e J, Q e K?

1 - 7 + le figure (J,Q, K)

Più o meno adesso è già così, a parte gli errori (non sono necessari tanto si vince sempre lo stesso)

Ma allora non ha senso giocare se vinci sempre =P
CI vorrebbe un livello di difficoltà vario IMHO.
Registrato
marcoscarpetta
Novello Novizio

Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 289

Media messaggi

I use python


Mostra profilo
« Risposta #13 inserita: 02 Marzo, 2011, 12:56:16 »

Ma qundi dovrei mattere dall'1 al 10 o dall'1 al 7 e J, Q e K?

1 - 7 + le figure (J,Q, K)

Ok, magari ora lo predispongo ad avere più mazzi poi si aggiungono

Più o meno adesso è già così, a parte gli errori (non sono necessari tanto si vince sempre lo stesso)

Ma allora non ha senso giocare se vinci sempre =P
CI vorrebbe un livello di difficoltà vario IMHO.

Non è che si vince sempre, è che le mosse del computer non sono molto giuste e allora è facile vincere

Magari adesso metto una lista delle cose da fare e di quelle fatte nel 1° post
Registrato

Citazione
Linux è un piano segreto del KGB, dei comunisti e soprattutto di Pingu (contemplato nel simbolo del sistema operativo) per distruggere l'America, conquistare il mondo e poter quindi iniziare una nuova partita a Risiko.
Diaspora*
crx
Entusiasta Emergente
**
Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 1.215

Media messaggi


Linux User #481278


Mostra profilo WWW
« Risposta #14 inserita: 02 Marzo, 2011, 13:22:38 »

Carino!
Qualche appunto.
Non mi sono messo a leggere il codice, però sono d'accordo con Scio Nescire: il computer non fa "più o meno" quello che ha suggerito: ad esempio tra due carte uguali, tra cui una di denari, dovrebbe scegliere i denari. Inoltre, se può fare diverse combinazioni, dovrebbe puntare a prendere i sette (ad esempio, se ci sono sul tavolo 1, 5, 7, 3 e lui ha un 6 e un 10, dovrebbe puntare al 7+3, non al 5+1).
La finestra con i risultati della partita appare sempre sopra tutte le altre (anche quella su cui sto scrivendo ora...) e sempre al centro dello schermo anziché al centro della finestra del gioco.
Ultima cosa: forse sono io che non capisco bene (ora vado un po' di corsa), ma guarda la finestra che ho postato: come faccio io ad avere 4 punti e il computer 2?

Comunque bravo.
Registrato

S = k ln W
Come iniziare a diventare un hacker - Come risolvere quasi tutti i problemi
Windows: 9 Anni, 4 Mesi; GNU/Linux: 3 Anni, 9 Mesi.
The Wise Dj
Utente non iscritto
« Risposta #15 inserita: 02 Marzo, 2011, 13:29:59 »

Che sarebbero i settanta? o.O
Registrato
marcoscarpetta
Novello Novizio

Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 289

Media messaggi

I use python


Mostra profilo
« Risposta #16 inserita: 02 Marzo, 2011, 13:43:08 »

Carino!
Qualche appunto.
Non mi sono messo a leggere il codice, però sono d'accordo con Scio Nescire: il computer non fa "più o meno" quello che ha suggerito: ad esempio tra due carte uguali, tra cui una di denari, dovrebbe scegliere i denari. Inoltre, se può fare diverse combinazioni, dovrebbe puntare a prendere i sette (ad esempio, se ci sono sul tavolo 1, 5, 7, 3 e lui ha un 6 e un 10, dovrebbe puntare al 7+3, non al 5+1).

queste cose le dovrebbe veramente già fare, ti sono capitati proprio quei casi?

La finestra con i risultati della partita appare sempre sopra tutte le altre (anche quella su cui sto scrivendo ora...) e sempre al centro dello schermo anziché al centro della finestra del gioco.

Ok, cambiato, ora va sotto ma è sempre al centro dello schermo.

Ultima cosa: forse sono io che non capisco bene (ora vado un po' di corsa), ma guarda la finestra che ho postato: come faccio io ad avere 4 punti e il computer 2?

I punti che mostra sono quelli totali, spero che che stessi giocando la seconda partita

Che sarebbero i settanta? o.O

Quella che tu chiami primiera. Qui si chiama settanta
Per quanto riguarda le carte da poker, i denari quali sono poi? i cuori?

Grazie a tutti per i consigli
« Ultima modifica: 02 Marzo, 2011, 17:58:56 da marcoscarpetta » Registrato

Citazione
Linux è un piano segreto del KGB, dei comunisti e soprattutto di Pingu (contemplato nel simbolo del sistema operativo) per distruggere l'America, conquistare il mondo e poter quindi iniziare una nuova partita a Risiko.
Diaspora*
crx
Entusiasta Emergente
**
Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 1215

Media messaggi


Linux User #481278


Mostra profilo WWW
« Risposta #17 inserita: 02 Marzo, 2011, 19:54:48 »

Citazione
queste cose le dovrebbe veramente già fare, ti sono capitati proprio quei casi?
Si. Oggi non ho potuto fare altre prove, ma appena posso ci riprovo e vedo.

Citazione
I punti che mostra sono quelli totali, spero che che stessi giocando la seconda partita
Capito: si, stavo giocando la seconda partita.
Ma allora non è meglio un risultato "doppio": risultati della partita e risultati totali della giocata?
Registrato

S = k ln W
Come iniziare a diventare un hacker - Come risolvere quasi tutti i problemi
Windows: 9 Anni, 4 Mesi; GNU/Linux: 3 Anni, 9 Mesi.
The Wise Dj
Utente non iscritto
« Risposta #18 inserita: 02 Marzo, 2011, 20:32:43 »

Uhm!

Allora, ori = denari = quadri Wink

Se vuoi le carte posso cercarle anche io
Registrato
The Wise Dj
Utente non iscritto
« Risposta #19 inserita: 03 Marzo, 2011, 00:01:59 »

Carte da poker in vettoriale:

http://www.markdvl.com/2682/carte-da-poker-in-vettoriale.html
Registrato
Pagine: [1] 2 3 ... 25   Vai su
  Stampa  
 
Vai a: