Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/09/2010, à 19:45

Professeur Burp

GNUPoly

Bonsoir à tous,

J'ouvre ce petit fil afin de vous faire part de ma très modeste contribution au monde libre.

En effet, je met à la disposition de la communauté ma première application :

GNUPoly

Un clone du célèbre jeu de société Monopoly.

C'est mon premier programme, et je me suis remis à la programmation il y a peu de temps alors je vous demanderai d'être indulgents, svp.

Pour l'instant, le jeu est seulement jouable à plusieurs sur une même machine, ce qui limite son intérêt. Je vais essayer à terme de le doter d'une intelligence artificielle afin de pouvoir jouer contre la machine. J'aimerais plus tard pouvoir y ajouter le jeu en réseau, mais n'y connaissant pas grand chose dans ce domaine, cela risque de prendre du temps.

Je mettrais ce fil à jour afin d'informer les personnes intéressées  des évolutions du jeu.

En vous remerciant par avance de vos éventuelles remarques constructives, ou propositions d'améliorations.

MAJ du 28/09/2010 : Une nouvelle version est disponible : correction de bugs et nettoyage du code au programme.

Dernière modification par Professeur Burp (Le 28/09/2010, à 18:15)

Hors ligne

#2 Le 13/09/2010, à 19:48

helly

Re : GNUPoly

Question toute simple pour un logiciel libre : Où sont les sources ?!


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#3 Le 13/09/2010, à 19:55

Professeur Burp

Re : GNUPoly

Ah ben tiens, il me semblais bien que j'oubliais quelques chose lol

Je les mets sur le site dans la foulée.

Merci.

Hors ligne

#4 Le 13/09/2010, à 19:59

helly

Re : GNUPoly

Dis moi quand elles sont mises smile.
C'est codé en quoi ?


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#5 Le 13/09/2010, à 20:05

Professeur Burp

Re : GNUPoly

Ca y est elles y sont.

C'est codé en Python+GTK. C'est ma première application alors désolé par avance pour la propreté du code. En plus je ne connais pas encore la POO, donc ça risque d'en dérouter certains.

Hors ligne

#6 Le 13/09/2010, à 20:57

jacobus77

Re : GNUPoly

C'est une contrefaçon de monopoly ?

Hors ligne

#7 Le 14/09/2010, à 09:29

Professeur Burp

Re : GNUPoly

Bonjour,

Je ne crois pas que ce soit de la contrefacon.

A priori, sauf erreur de ma part, les brevets du jeu Monopoly sont expirés, et seul le nom, les graphismes et le texte de la rêgle du jeu sont soumis à Copyright. Cf Wikipedia.

On en a parlé aussi ici.

D'ailleurs d'autres jeux du même style sont disponibles depuis longtemps et je ne crois pas qu'il y ait eu un quelconque problème.

Gtkatlantic
Kapitalist

Cela dit, je ne suis pas juriste alors peut-être que je me trompe.

Si quelqu'un s'y connaissant pouvait éclairer ma lanterne, et me dire si je peux effectivement mettre mon application à disposition, ou si je dois d'abord y apporter des modifications (changement des règles, des noms de rues, ou autres...).

Merci par avance.

Hors ligne

#8 Le 14/09/2010, à 11:12

crypto178

Re : GNUPoly

Chouette projet, plutôt bien foutu!
J'ai fait quelques tours, et sans rencontrer de bug smile

Hors ligne

#9 Le 14/09/2010, à 22:13

jacobus77

Re : GNUPoly

Trés chouette projet en effet, difficle de croire que c'est ton premier programme.;)

Hors ligne

#10 Le 15/09/2010, à 06:42

Professeur Burp

Re : GNUPoly

Bon d'accord, j'ai oublié de préciser : c'est mon premier programme sur ordinateur.:P

Au bahut, j'ai longtemps créé des programmes sur calculatrice HP48GX avec laquelle je m'amusais comme un petit fou (au détriment de mes études:/)

Quand j'ai découvert Python il y a quelque mois, j'ai découvert un langage qui m'a, du coup paru très familier et avec lequel j'ai progressé très vite. Ce qui m'a permis d'attaquer rapidement des programmes assez évolués. Ceci explique cela.

En tout cas, merci pour vos appréciations. Je compte m'attaquer à l'IA bientôt afin de rendre le jeu plus attractif. Pour l'instant, je nettoie un peu le code car je me rend compte qu'a force de rajouter de fonctions, j'ai quelques redondances.

Hors ligne

#11 Le 15/09/2010, à 06:47

helly

Re : GNUPoly

Au bahut, j'ai longtemps créé des programmes sur calculatrice HP48GX avec laquelle je m'amusais comme un petit fou (au détriment de mes études:/)

Haaa, la prog sur caltos big_smile


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#12 Le 15/09/2010, à 08:18

alex2423

Re : GNUPoly

helly a écrit :

Dis moi quand elles sont mises smile.
C'est codé en quoi ?

Ahhh sympa ca. Lorsqu'il y a un projet pas trop gros qui t'interesse, tu regarde par curiosité le code.

Cela peut etre pas mal en effet. Cela permet de pogresser et de comprendre certains aspect de programmation auquel tu n'avais pas pensé

Hors ligne

#13 Le 15/09/2010, à 08:19

helly

Re : GNUPoly

Surtout que étudier un code « simple » mais complet, c'est pas mal pour apprendre smile.


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#14 Le 16/09/2010, à 00:14

Кຼزດ

Re : GNUPoly

Ça a l'air cool smile (je viens de tester vite fait)
J'en ai profité pour faire un paquet archlinux vite fait : http://aur.archlinux.org/packages.php?ID=40844

Et j'ai une ou deux suggestions, sinon :
- ce serait bien que la sortie son n'ait pas besoin d'être libérée obligatoirement au lancement de l'appli (un warning dans la console suffirait)
- l'utilisation d'un forge (comme codingteam.net, par exemple, ou launchpad), ou autre site permettant une gestion du projet fine et offrant un gestionnaire de version pourrait être intéressant, je pense


dou

Hors ligne

#15 Le 16/09/2010, à 00:34

bloublou

Re : GNUPoly

Bon, t'as dû y passer beaucoup de temps, et le jeu est peut-être très bien, et sans bug.

Mais, désolé de te le dire, le code est juste super laid.
T'as appris sur calculette et tout, c'est cool, mais à mon avis t'aurais pas dû appliquer ce que tu savais de la programmation calculette à la programmation Python…

Quelques exemples :

labelchance1,labelchance2,labelchance3,labelchance4,labelcaisse1,labelcaisse2,labelcaisse3,labelcaisse4="","","","","","","",""
global defcase,finjeu,xdeplac,nomjoueurs,comptjoueurs,pionjoueurs,couljoueurs,posjoueurs,prisjoueurs,cartprischancjoueurs,cartpriscaissjoueurs,nbjoueurs,achatjoueurs,acccomptjoueurs,plateau,tour,nomcases,nomcases2,listhypo,prixhypo,coulcases,typcases,prixcases,loyer0,loyer1,loyer2,loyer3,loyer4,loyer5,nbmaisons,prixmaison,listprop,double,de1,de2,de,achat,propgroup,listhypo,prixhypo,labelchance1,labelchance2,labelchance3,labelchance4,applychance,labelcaisse1,labelcaisse2,labelcaisse3,labelcaisse4,applycaisse,tirechance,sortprison,finjeu,xpospions,ypospions,totalmaisons,totalhotels
  if (comptjoueurs[tour]>0)&(finjeu==0)&(sortprison[tour]>0)&(de==0)&(posjoueurs[tour]!=30):
    fen1.get_widget('lancedebtn').set_sensitive(1)
    if ((typcases[posjoueurs[tour]]=='caisse')&(applycaisse[tour]==0))or((typcases[posjoueurs[tour]]=='chance')&(applychance[tour]==0)):
      fen1.get_widget('lancedebtn').set_sensitive(0)
  if ((de==1)or((sortprison[tour]==0)&(prisjoueurs[tour]==1)))&(finjeu==0)&(posjoueurs[tour]!=30)&(xdeplac==0):
    fen1.get_widget('fintourbtn').set_sensitive(1)
    if ((typcases[posjoueurs[tour]]=='caisse')&(applycaisse[tour]==0))or((typcases[posjoueurs[tour]]=='chance')&(applychance[tour]==0)):
      fen1.get_widget('fintourbtn').set_sensitive(0)
  if (prisjoueurs[tour]==1)&(de==0)&((comptjoueurs[tour]>50)or(cartprischancjoueurs[tour]==1)or(cartpriscaissjoueurs[tour]==1))&(xdeplac==0):
    fen1.get_widget('sortprisonbtn').set_sensitive(1)
  if (typcases[posjoueurs[tour]]=='caisse'):
    if ((de==1)or(double>0))&(applycaisse[tour]==0):
      defcaisse1()
      glissecarte()
      fen1.get_widget('applybtn').set_sensitive(1)
  if (typcases[posjoueurs[tour]]=='chance')or(tirechance==1):
    if ((de==1)or(double>0))&(applychance[tour]==0):

Tout ça, c'est juste illisible pour n'importe qui codant en python.

Je te conseille VRAIMENT de suivre quelques tutoriels python (http://docs.python.org/tutorial/index.html au hasard), apprendre la programmation objet, lire la pep-8.

Si jamais tu souhaitais faire un logiciel beaucoup plus gros et complexe, avec cette façon de coder, je pense que t'y arriverais pas (déjà que je suis surpris que ton truc fonctionne, félicitations quand même big_smile)
Sans parler du fait que pas grand monde ne voudrait contribuer… Déjà que les gens détestent quand le truc respecte pas à la lettre PEP-8…
Ah, et sinon, pylint n'est pas très content sad
Il te donne -14/10

Sinon, j'ai pas pu tester, parce que tu tentes d'ouvrir directement un fichier dans /usr/share, en dur big_smile

(si t'as envie de conseils ou juste de parler programmation, y'a pas mal de pythonneux sur le salon jabber programmation@muc.changaco.net smile)

Hors ligne

#16 Le 16/09/2010, à 07:01

Professeur Burp

Re : GNUPoly

@ louiz

Tu as raison, le code n'est pas joli.

Mais comme tu le dis, j'ai malheureusement tendance à programmer comme je programmais sur calculette. Je n'ai pas encore (ca viendras peut-être) de notion de POO (programmation orientée objet), je n'y comprend rien au classes qui sont un concept trop abstrait et trop nouveau pour moi.

Bref, je suis autodidacte et n'ai aucune formation de programmeur ou de quoi que ce soit touchant à l'informatique (je suis électricien).

J'espère vraiment pouvoir progresser afin de pouvoir fournir du code plus propre mais je pense que c'est malheureusement pas pour tout de suite, vu le temps que je peux consacrer à ce hobby, entre vie de famille et boulot.

Ce jeu est juste une modeste contribution au monde du libre, une façon de dire merci de tout ce que le libre m'a apporté depuis 4 ans.

En tout cas merci pour tes conseil.

Hors ligne

#17 Le 16/09/2010, à 09:29

crypto178

Re : GNUPoly

Je ne le recommanderai jamais assez, mais le livre gratuit de Gérard Swinnen est excellent pour apprendre à bien programmer en python : http://www.inforef.be/swi/python.htm

Hors ligne

#18 Le 16/09/2010, à 15:18

Le Farfadet Spatial

Re : GNUPoly

Salut à tous !

mathieuI a écrit :

- l'utilisation d'un forge (comme codingteam.net, par exemple, ou launchpad), ou autre site permettant une gestion du projet fine et offrant un gestionnaire de version pourrait être intéressant, je pense

Je suis tout à fait d'accord pour dire qu'il serait judicieux de mettre en place une gestion de projet. Cependant, pourquoi passer par une solution centralisatrice, alors que Professeur Burp dispose d'un serveur HTML, soit tout ce dont il a besoin pour facilement mettre en place tout ce qu'il faut chez lui ?

   Tout d'abord, utiliser un système de gestion de version, comme par exemple Git, Darcs, Mercurial ou Bazaar. Pour ma part, je préfère Darcs.

   Ensuite, utiliser un utilitaire de suivi de projet, tel que Trac.

   Enfin, gérer la documentation avec Doxygen peut être une bonne idée.

crypto178 a écrit :

Je ne le recommanderai jamais assez, mais le livre gratuit de Gérard Swinnen est excellent pour apprendre à bien programmer en python

Il me semble que tout le monde n'est pas aussi catégorique. Ainsi, en se rendant sur ce fil de discussion, on peut lire :

Karl_le_rouge a écrit :

Je déconseille le Swinnen qui enseigne un mauvais style de programmation Python.
C'est un bouquin d'initiation à la programmation à l'aide de Python, c'est très bien pour des adolescents mais les autres devront voir ailleurs.
Quelques recommandations de lecture pour les débutants en programmation.
- http://www.swaroopch.com/notes/Python_f … i%C3%A8res
- http://www.greenteapress.com/thinkpython/html/
Pour les développeurs plus chevronnés:
les bouquins de Tarek Ziadé qui sont une valeur sûre et enseigne un "bon" style en Python.
http://programmation-python.org/livres

À bientôt.

   Le Farfadet Spatial

Hors ligne

#19 Le 16/09/2010, à 16:55

Professeur Burp

Re : GNUPoly

Re-bonjour à tous.

J'ai profité d'une après midi de libre pour faire un bon nettoyage dans mon code.

J'espère qu'il est un peu plus clair maintenant.

La nouvelle version est sur le site.

Hors ligne

#20 Le 17/09/2010, à 10:31

pierricpao

Re : GNUPoly

et comme d'habitude. pas de version 64bits....

→m'en va faire une manif tongue


Le savoir ne vaut que s'il est partagé..
      « promouvoir et défendre le logiciel libre » - http://www.april.org
« Certaines questions demandent sept millions et demi d'années de réflexion. D'autres demandent simplement Ubuntu. » Olive

Hors ligne

#21 Le 23/11/2010, à 23:46

Professeur Burp

Re : GNUPoly

Bonsoir à tous,

Je reviens à la charge avec une nouvelle version de mon monopoly.

Je l'ai réécrit complètement car depuis je me suis enfin mis à la POO. J'espère que ca vous plaira plus au niveau du code même si je suis conscient qu'il me reste encore énormément à apprendre.

je suis en train d'implémenter un mode réseau en ce moment et il est fonctionnel, mais il faut que je peaufine la partie serveur en y ajoutant une interface graphique.

Pour l'instant le serveur ne se lance qu'en mode console et utilise les réglages d'IP et de port situé dans la partie préférences du client.

En espérant que ça vous plaise.

@pierricpao : Désolé pour le temps de réponse mais je ne suis pas trop revenu sur ce fil ces derniers temps. Mon programme étant un script python, je pense qu'il doit pouvoir s'exécuter sur des machines 64 bits. S'il y a des connaisseurs pour confirmer ça.

Hors ligne

#22 Le 24/11/2010, à 03:52

YannUbuntu

Re : GNUPoly

Bravo pour ta nouvelle version smile
Je teste sur 10.10 32 bit. Premières suggestions d'amélioration/rapports de bug:
- mettre les raccourcis dans le menu Applications->Jeux au lieu de Applications->Autres
- quand je clique sur le bouton lancement d'une nouvelle partie, j'ai droit a une "exception python"
- fenêtre de nouvelle partie: le texte est partiellement caché a droite :
1290566784.png
- ca serait bien d'avoir un raccourci clavier pour chacune des actions (accessibilité)
- crash quand je clique sur le lanceur GNUpoly serveur. Dans le terminal ca donne ceci  :

$ /usr/share/gnupoly/Serveur.py
Traceback (most recent call last):
  File "/usr/share/gnupoly/Serveur.py", line 111, in <module>
    mySocket.bind((host, port))
NameError: name 'host' is not defined

à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison

Hors ligne

#23 Le 24/11/2010, à 07:36

Professeur Burp

Re : GNUPoly

Hello ! Merci pour ces retours rapides. Je vais tenter d'y répondre rapidement.

YannUbuntu a écrit :

Bravo pour ta nouvelle version smile
Je teste sur 10.10 32 bit. Premières suggestions d'amélioration/rapports de bug:
- mettre les raccourcis dans le menu Applications->Jeux au lieu de Applications->Autres

J'ai aussi ce problème chez moi. Pourtant le script qui me sert à créer le .deb est bien paramètré pour mettre le jeu en catégorie "games".
Je vais essayer de faire des tests un de ces jours pour voir comment corriger ça.

YannUbuntu a écrit :

- quand je clique sur le bouton lancement d'une nouvelle partie, j'ai droit a une "exception python"

Ca se produit lors d'une tentative de nouvelle partie normale ou réseau ?

YannUbuntu a écrit :

- fenêtre de nouvelle partie: le texte est partiellement caché a droite :

Je n'ai pas ce bug chez moi. Il faudra que je regarde dans le fichier .glade s'il n'y a pas un paramètre suspect.

YannUbuntu a écrit :

- ca serait bien d'avoir un raccourci clavier pour chacune des actions (accessibilité)

Effectivement, Il faut que j'en rajoute.

YannUbuntu a écrit :

- crash quand je clique sur le lanceur GNUpoly serveur. Dans le terminal ca donne ceci  :

Je pense que le problème vient du fichier des préférences de l'application qu'il faut remettre à jour. Pour celà :

- Lancer le client GNUPoly
- Aller dans les préférences et paramétrer l'adresse IP du poste ou va s'exécuter le serveur et un port.
- Appliquer les préférences
- Lancer le serveur
- Lancer une partie réseau

Voilà, voilà, en espérant que mes explications soient claires. Merci encore pour les retours.

Hors ligne

#24 Le 24/11/2010, à 07:46

YannUbuntu

Re : GNUPoly

Professeur Burp a écrit :

Ca se produit lors d'une tentative de nouvelle partie normale ou réseau ?

Partie normale.


à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison

Hors ligne

#25 Le 28/12/2010, à 11:21

Ubuntu1988

Re : GNUPoly

Pas mal ce p'tit logiciel wink


J'ai perdu ! :(

Hors ligne