Sujet: Re: [Python] La programmation Facile. Jeu 07 Nov 2013, 21:53
Ah oui ok, je réfléchissais dans le mauvais sens. Ça sort de la condition dès que ce n'est plus validé... D'un autre côté j'ai eu l'idée de faire une boucle infini en mettant une condition toujours vrai... Je n'essayerais pas de comprendre ma logique... Bon du coup je régleras ça, plus de break j'espère du coup...
Sinon j'ai trouvé une manière plus optimisé de trouver la case en changeant l'ordre, l'IA inspecte d'abord toutes les cases où il y a 9 cases environnantes non découvertes, plutôt que d'inspecter de 9 à 9 de gauche à droite & de haut en bas, sachant qu'à 6 reprises l'IA utilise un mouvement sur un bord ne vérifiant que très peu de cases (3) et à une reprise (en 10;10) un coup qui ne repère qu'une seule et unique case. Donc plutôt que d'inspecte en faisant : coordonnées : 2;2 2;5 2;8 2;10 5;2 5;5 5;8 5;10 8;2 8;5 8;8 8;10 10;2 10;5 10;8 10;10 cases explorées : 9, 18, 27, 30, 39, 48, 57, 60, 69, 78, 87, 90, 93, 96, 99, 100
Là j'ai vraiment plus l'impression de pouvoir améliorer la vitesse du coup...
Blizzard /!\ Utilisateur instable /!\
Nombre de messages : 6317 Age : 32
Sujet: Re: [Python] La programmation Facile. Ven 08 Nov 2013, 09:29
Ah, l'optimisation… Le casse-tête de tout programmeur qui se respecte. Je n'ai pas trop suivi la conversation, mais je crois que ça s'apparente à ce qu'on appelle en programmation la "complexité algorithmique". C'est un mot un peu passe-partout pour quelque chose d'assez spécifique. Normalement, on voit ça assez tard, je ne sais pas si c'est une bonne idée de t'en parler tout de suite, mais toute volonté d'optimisation pour gagner de la vitesse est toujours lié à ça…
____________
Empty Mangeur de manettes Lv 65
Nombre de messages : 16363 Age : 38
Sujet: Re: [Python] La programmation Facile. Ven 08 Nov 2013, 11:25
Evite les boucles infinies tant que possibles (tant que t'as rien n'a afficher c'est pas utile) mais sinon utilise:
While 1: #Instructions
Dans ce cas 1 vaut juste une valeur "vraie" (TRUE) mais par soucis d'optimisation vaut mieux utiliser 1 que TRUE. Ca donne donc "tant que la condition est toujours vraie" mais sans possibilité de modification de la valeur conditionnelle.
N'inclue pas de variable dans la condition de la boucle (ça peut toujours foirer, la valeur pourrait être modifier un moment ou un autre, par erreur...). Enfin, évite tant que possible les boucles infinies. Je vais tenter de ré-écrire ton code et le bourrer de commentaires pour que tu y vois comment programmer en utilisant un algorithme moins prise de tête en utilisant des fonctions à la place.
Pour mon tutoriel, je n'en ai pas refais depuis un bail mais il y a excellent cours Python sur le site du zéro
Pour AND et OR je suis complètement dyslexique à ce niveau, je fais souvent la même erreur que toi
____________
Blizzard /!\ Utilisateur instable /!\
Nombre de messages : 6317 Age : 32
Sujet: Re: [Python] La programmation Facile. Ven 08 Nov 2013, 12:39
Le coup du and/or, c'est un classique en programmation. Je ne compte plus le nombre d'erreurs introuvables que j'ai eues sur des conneries comme ça… C'est encore pire dans certains langages, puisque tu as &, &&, et &&& du côté "et" ainsi que |, ||, et ||| du côté "ou". Généralement, on utilise alors && et || pour les "and" et "or" classiques…
____________
Daragonis Maker de Légende Lv 52
Nombre de messages : 4582 Age : 27
Sujet: Re: [Python] La programmation Facile. Sam 09 Nov 2013, 20:19
Petite demande d'une fonction que j'imagine simple mais que je ne trouve désespérément nul part ^^ J'ai une string qui est disons : "-----". Je souhaite remplacer le 2ème caractère en un b, de manière à obtenir "-b---". Comment faire ? J'ai trouver une fonction : s.replace(old, new, maxsplit=sys.maxint) mais celle-ci refuse de me modifier uniquement la deuxième occurrence de - (surtout qu'à l'avenir, je souhaite par exemple remplace "-b---" par "-b-o-" par exemple.) Il n'existerait pas quelque chose pour ça.
garywiss6 Rétrograde Lv 54
Nombre de messages : 5302 Age : 29
Sujet: Re: [Python] La programmation Facile. Sam 09 Nov 2013, 20:36
malheureusement au niveau des strings c'est pas très bien geré, donc si tu veux par exemple changer la deuxième lettre du string, tu fais ça :
str = "------"
str = str[:1] + "b" + str[2:]
str[:n] permet d'acceder au n premier caractères d'une chaine
str[n:] permet d'acceder à tout les caractères d'une chaine à partir du caractère à l'offset n (sachant que l'offset commence toujours à 0 dans une chaine )
Au pire si tu n'arrives pas, met cette fonction en haut de ton code
pour l'utiliser tu fais par exemple str = "------" str = change_char_in_str("b", str, 3)
et normalement str deviendra "--b---"
____________
Un soir banal sur skype a écrit:
Moi : C'était quoi ce cri ? Choco : C'est ma saucisse qui a hurlé.
Dernière édition par garywiss6 le Dim 10 Nov 2013, 12:56, édité 1 fois
Daragonis Maker de Légende Lv 52
Nombre de messages : 4582 Age : 27
Sujet: Re: [Python] La programmation Facile. Sam 09 Nov 2013, 20:52
Ok, donc en effet y'avait pas de solution simpliste ^^ Ceci dit la fonction marche très bien, merci ! ^^
Empty Mangeur de manettes Lv 65
Nombre de messages : 16363 Age : 38
Sujet: Re: [Python] La programmation Facile. Dim 10 Nov 2013, 12:49
Bah si:
str = str[:1] + "b" + str[2:]
C'est la solution simpliste ^^
____________
Daragonis Maker de Légende Lv 52
Nombre de messages : 4582 Age : 27
Sujet: Re: [Python] La programmation Facile. Sam 23 Nov 2013, 07:34
Je galère un peu à trouver un tutoriel potable pour le module Tkinter, du coup quelqu'un en connaîtrait un où alors connaîtrait autre chose sur Python pour se charger d'un interface graphique ?
Empty Mangeur de manettes Lv 65
Nombre de messages : 16363 Age : 38
Sujet: Re: [Python] La programmation Facile. Sam 23 Nov 2013, 11:42
En Python pour les interfaces tu as le logiciel Glade qui fait des miracles
Sinon Tutoriel débutants TKinter
____________
Daragonis Maker de Légende Lv 52
Nombre de messages : 4582 Age : 27
Sujet: Re: [Python] La programmation Facile. Dim 08 Déc 2013, 22:59
P'tit problème avec Glade, en fait gros plutôt. J'aimerais donc l'essayer mais je ne trouve que des tutoriels d’installation sous Ubuntu. Ce logiciel est-il incompatible avec Windows 64 bit ? (il me semble en avoir trouvé pour le 32 bit, sans pouvoir vérifier étant en 64 bit.)
Dragongaze13 Maker de Légende Lv 49
Nombre de messages : 3897 Age : 27
Sujet: Re: [Python] La programmation Facile. Dim 08 Déc 2013, 23:00
Normalement ce qui marche en 32bit marche aussi en 64bit(non?), donc essaye je dirais.
Daragonis Maker de Légende Lv 52
Nombre de messages : 4582 Age : 27
Sujet: Re: [Python] La programmation Facile. Dim 08 Déc 2013, 23:08
Généralement ça me le refuse farouchement, mais ça vaut le coup d'essayer ^^ Tant que j'y suis, vous programmez avec quels logiciels ? Je veux par exemple moi je n'utilise que l'IDLE de base (pour le moment), est-ce que vous utilisez d'autres logiciels ? D'autres Interfaces ?
Blizzard /!\ Utilisateur instable /!\
Nombre de messages : 6317 Age : 32
Sujet: Re: [Python] La programmation Facile. Dim 08 Déc 2013, 23:17
Je confirme ce que dit Dragongaze. C'est d'ailleurs dû à ça qu'il y a deux répertoires d'installation de logiciels à la racine : "Program Files (x86)" sert pour les applications 32 bits ; "Programmes" pour les applications 64 bits.
À moins que tu aies une version OEM de ton Windows (duquel cas c'est soit du 32 bits, soit du 64 bits), je ne vois pas où peut se situer le problème…
on commence par quoi ? Un jeu de plateforme 2D avec des graphismes 3D ? un jeu de combat avec des combos et des graphismes "à la mortal kombat" ? Un FPS avec quelques phase d'infiltration et un excellent multi ? un jeu de plateforme 3D dans un monde libre ? où un jeu de plateforme 3D avec une histoire complètement wtf, mais cohérente, dans un monde semi ouvert avec énormément de références et de parodie ?
____________
Un soir banal sur skype a écrit:
Moi : C'était quoi ce cri ? Choco : C'est ma saucisse qui a hurlé.
Je regarderais, qu'est-ce qui diffères de l'IDLE de base par exemple ? Qu'est-ce qu'il peut y'avoir de sympa avec d'autres ? Apportent-ils en plus où c'est accessoire ?
C'était l'IDE que j'ai utilisé pour mon premier projet de programmation, en C, lors de mon premier semestre post-BAC, sur Linux. Au final, je n'en ai jamais beaucoup entendu parler, alors je ne sais pas si c'est vraiment si bien que ça… Pourrais-tu nous expliquer un peu les fonctions intéressantes de Geany par rapport aux autres IDE, s'il te plait, KoZzY ?
Tu programmes avec quoi maintenant du coup Blizzard ? Tant que c'est compatible Python ça m'intéresse directement. (et même si ça ne l'est pas ça m'intéresse.)