marcoscarpetta
Novello Novizio
Non Connesso
Sesso: 
Messaggi: 289
Media messaggi
I use python
|
 |
« 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
|
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
Sesso: 
Messaggi: 1.426
Media messaggi
|
 |
« Risposta #1 inserita: 01 Marzo, 2011, 18:49:06 » |
|
non è male, bravo  direi che dare un senso di profondità al mazzo non farebbe male, così come metterci qualche animazione l'immagine delle carte coperte è orribile però, cambiala  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!  (non ci capisco mai una mazza xD) Interessante, mi iscrivo =D
|
|
|
|
|
Registrato
|
|
|
|
marcoscarpetta
Novello Novizio
Non Connesso
Sesso: 
Messaggi: 289
Media messaggi
I use python
|
 |
« Risposta #3 inserita: 01 Marzo, 2011, 22:33:38 » |
|
non è male, bravo  direi che dare un senso di profondità al mazzo non farebbe male, così come metterci qualche animazione l'immagine delle carte coperte è orribile però, cambiala  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!  (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
|
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
Sesso: 
Messaggi: 289
Media messaggi
I use python
|
 |
« 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. 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
|
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
Messaggi: 1.430
Media messaggi
|
 |
« 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)  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
Sesso: 
Messaggi: 289
Media messaggi
I use python
|
 |
« 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)  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
|
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
Sesso: 
Messaggi: 6.944
Media messaggi
La vendetta è un piatto che va servito freddo
|
 |
« 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 
|
|
|
|
|
Registrato
|
|
|
|
marcoscarpetta
Novello Novizio
Non Connesso
Sesso: 
Messaggi: 289
Media messaggi
I use python
|
 |
« 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  
|
|
|
|
|
Registrato
|
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
Sesso: 
Messaggi: 289
Media messaggi
I use python
|
 |
« 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
|
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
Sesso: 
Messaggi: 1.215
Media messaggi
Linux User #481278
|
 |
« 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
|
|
|
|
|
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
Sesso: 
Messaggi: 289
Media messaggi
I use python
|
 |
« 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
|
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
Sesso: 
Messaggi: 1215
Media messaggi
Linux User #481278
|
 |
« Risposta #17 inserita: 02 Marzo, 2011, 19:54:48 » |
|
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. 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
|
|
|
|
|
The Wise Dj
Utente non iscritto
|
 |
« Risposta #18 inserita: 02 Marzo, 2011, 20:32:43 » |
|
Uhm! Allora, ori = denari = quadri  Se vuoi le carte posso cercarle anche io
|
|
|
|
|
Registrato
|
|
|
|
|
The Wise Dj
Utente non iscritto
|
 |
« Risposta #19 inserita: 03 Marzo, 2011, 00:01:59 » |
|
|
|
|
|
|
Registrato
|
|
|
|
|