[Progetto] ScoPy: il gioco della scopa

Iniziative e progetti della comunità legati a Ubuntu.
Regole della sezione
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 da 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 gli utenti proporre lo sviluppo di nuovi software e in questo caso la discussione di richiesta avrà la funzione di generare un requisito funzionale del prodotto da sviluppare.

Sezione I - Iniziative
  • Fanno parte di iniziative, ad esempio, le seguenti categorie: corsi, progetti editoriali, libri.
  • La segnalazione di un'iniziativa avviene creando una discussione con l'annuncio.
  • Una volta effettuata la segnalazione, la discussione viene chiusa dal Gruppo Forum.
  • 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.
Sezione 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 FOSS, tale da garantire agli utenti l'utilizzo del prodotto senza restrizioni e agli sviluppatori la proprietà intellettuale del codice prodotto.
  • Nell'oggetto della discussione dovrà essere riportata la categoria (es. [Iniziativa], [Progetto] o [Proposta]) e una semplice descrizione del progetto.
  • Se il progetto ha già un sito che lo ospita sarà a discrezione del Gruppo Forum 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 128 kB, per prodotti che non hanno un sito che li ospita, sarà possibile allegarlo alla discussione.
Sezione III - Proposte
  • Una proposta deve essere eseguita e si svilupperà all'interno di una singola discussione.
  • Le proposte dovranno essere inserite direttamente nella sezione "Progetti della Comunità".
  • 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 segnalata la discussione resterà aperta per consentire uno scambio di idee su come sviluppare il codice o finché gli sviluppatori non forniranno una soluzione (da pubblicizzare poi, come visto prima, nella sezione Progetti) che ne soddisfi il requisito.
Per quanto non esposto sopra, si fa comunque riferimento al Regolamento del forum ed al Codice di Condotta della Comunità.
marcoscarpetta
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 303
Iscrizione: mercoledì 19 agosto 2009, 18:05
Desktop: KDE Plasma
Distribuzione: Arch Linux
Sesso: Maschile
Località: Italia

[Progetto] ScoPy: il gioco della scopa

Messaggio da marcoscarpetta »

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

Qui potete trovare tutte le informazioni sul programma.
Ultima modifica di marcoscarpetta il martedì 5 giugno 2012, 8:20, modificato 2 volte in totale.
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.
Avatar utente
Mefrio
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1426
Iscrizione: martedì 12 gennaio 2010, 20:30
Desktop: Pantheon
Distribuzione: elementary OS

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da Mefrio »

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 :P 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.)
Want some projects to join in? Help me and community: Scratch, AppCenter, Snap, and many others...
Wiki?
The Wise Dj

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da The Wise Dj »

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

Interessante, mi iscrivo =D
marcoscarpetta
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 303
Iscrizione: mercoledì 19 agosto 2009, 18:05
Desktop: KDE Plasma
Distribuzione: Arch Linux
Sesso: Maschile
Località: Italia

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da marcoscarpetta »

Mefrio ha scritto: 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 :P 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.
Scio Nescire ha scritto: Nooo le carte napoletane!  ;D (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 di marcoscarpetta il martedì 1 marzo 2011, 22:36, modificato 1 volta in totale.
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.
The Wise Dj

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da The Wise Dj »

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?
marcoscarpetta
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 303
Iscrizione: mercoledì 19 agosto 2009, 18:05
Desktop: KDE Plasma
Distribuzione: Arch Linux
Sesso: Maschile
Località: Italia

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da marcoscarpetta »

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: Seleziona tutto

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 di marcoscarpetta il martedì 1 marzo 2011, 23:04, modificato 1 volta in totale.
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.
Avatar utente
sbubba
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3336
Iscrizione: giovedì 24 maggio 2007, 23:55
Desktop: Gnome
Distribuzione: Ubuntu 16.04.1 LTS 64bit

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da sbubba »

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.
DON'T FEED THE TROLL . Non sprecare fiato, hanno le orecchie foderate di prosciutto
Non c'è peggior sordo di chi non vuol sentire, ma intanto il wiki leggilo che male non fa.
The Wise Dj

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da The Wise Dj »

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

Ora vedo il codice =P
The Wise Dj

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da The Wise Dj »

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.
marcoscarpetta
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 303
Iscrizione: mercoledì 19 agosto 2009, 18:05
Desktop: KDE Plasma
Distribuzione: Arch Linux
Sesso: Maschile
Località: Italia

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da marcoscarpetta »

sbubba ha scritto: 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
Scio Nescire ha scritto: 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?
Scio Nescire ha scritto: 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)
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.
Avatar utente
vaillant
Rampante Reduce
Rampante Reduce
Messaggi: 8319
Iscrizione: domenica 15 marzo 2009, 9:54
Distribuzione: Ubuntu 16.04
Sesso: Maschile
Località: Modica

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da vaillant »

Complimenti per l'iniziativa. Benchè non possa essere di grande aiuto per lo sviluppo, mi diletto a provarlo per suggerire modifiche o malfunzionamenti ;)
marcoscarpetta
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 303
Iscrizione: mercoledì 19 agosto 2009, 18:05
Desktop: KDE Plasma
Distribuzione: Arch Linux
Sesso: Maschile
Località: Italia

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da marcoscarpetta »

vaillant ha scritto: Complimenti per l'iniziativa. Benchè non possa essere di grande aiuto per lo sviluppo, mi diletto a provarlo per suggerire modifiche o malfunzionamenti ;)
(b2b)
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.
The Wise Dj

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da The Wise Dj »

marcoscarpetta ha scritto: 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)
marcoscarpetta ha scritto: 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.
marcoscarpetta
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 303
Iscrizione: mercoledì 19 agosto 2009, 18:05
Desktop: KDE Plasma
Distribuzione: Arch Linux
Sesso: Maschile
Località: Italia

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da marcoscarpetta »

Scio Nescire ha scritto:
marcoscarpetta ha scritto: 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
Scio Nescire ha scritto:
marcoscarpetta ha scritto: 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
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.
Avatar utente
crx
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1341
Iscrizione: martedì 2 settembre 2008, 18:31
Desktop: Cinnamon
Distribuzione: ArchLinux 64bit
Località: Piombino

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da crx »

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.
Allegati
Schermata.png
S = k ln W
Il mio nome è Bond. Valence Bond. - Se non fai parte della soluzione, fai parte del precipitato.
Non c'è peggior sordo di chi non sente.
The Wise Dj

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da The Wise Dj »

Che sarebbero i settanta? o.O
marcoscarpetta
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 303
Iscrizione: mercoledì 19 agosto 2009, 18:05
Desktop: KDE Plasma
Distribuzione: Arch Linux
Sesso: Maschile
Località: Italia

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da marcoscarpetta »

crx ha scritto: 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?
crx ha scritto: 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.
crx ha scritto: 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
Scio Nescire ha scritto: 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 di marcoscarpetta il mercoledì 2 marzo 2011, 17:58, modificato 1 volta in totale.
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.
Avatar utente
crx
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1341
Iscrizione: martedì 2 settembre 2008, 18:31
Desktop: Cinnamon
Distribuzione: ArchLinux 64bit
Località: Piombino

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da crx »

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?
S = k ln W
Il mio nome è Bond. Valence Bond. - Se non fai parte della soluzione, fai parte del precipitato.
Non c'è peggior sordo di chi non sente.
The Wise Dj

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da The Wise Dj »

Uhm!

Allora, ori = denari = quadri ;)

Se vuoi le carte posso cercarle anche io
The Wise Dj

Re: [Progetto] ScoPy: il gioco della scopa

Messaggio da The Wise Dj »

Scrivi risposta

Ritorna a “Progetti della Comunità”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti