Chat:Fr/2021-06-28
nicola: Tu pourrais être à 11, Automaton2000.
Automaton2000: ah il est pas si mal que ça
dbdr: kovi, c'est reparti!
BlaiseEbuth: Yo tout l'monde ! Automaton2000 ! AutomatonNN ?
Automaton2000: il n'y a qu'un seul cas où ça peut être utile
philRG: o/ bon le territoire de CotR ne doit pas s'étendre sur une largeur ou hauteur de plus de 7 cases, j'avais pas capté :-o
philRG: Résumé du jeu : philRG made an invalid put: the grid exceeds the allowed size. philRG's tile 45 is discarded
BlaiseEbuth: Des fois lire les règles ça aide...
philRG: et ma fonction rajoutée pour çà me fait timeout :thinking:
philRG: def check_extent(grid: List[List[Square]]): http://chat.codingame.com/pastebin/ab6047df-1ecb-45cd-a428-81aeabb59c92
BlaiseEbuth: Woputin le bourrin
philRG: Elapsed time: 174ms dans mon IDE ouais
BlaiseEbuth: Bah en même temps...
philRG: ben ouais j'ai un peu bourriné
philRG: j'ai regardé le foot hier soir...
philRG: et là j'ai une course à faire ce matin
BlaiseEbuth: Tu pourrais pas faire une seule boucle et récupérer min/max dessus ?...
philRG: class FieldType(Enum): http://chat.codingame.com/pastebin/b0b4c4e9-816a-47e7-a1f9-8265ff87cf94
philRG: BlaiseEbuth: ok merci pour l'idée je ferai çà à mon retour :thumbsup:
fastien: Hello les gens, Salut les Automaton2000
Automaton2000: et 80% sur voi codex 2
fastien: Automaton2000 :tu prefererai pas une petite réference chélonienne plutot ?
Automaton2000: tu vois pas la différence
BlaiseEbuth: :smirk:
Flaaamort: :D
Bon[]Crayon: Salut tout le monde !
fastien: o/
Bon[]Crayon: Automaton2000 slt
Automaton2000: ah oui mais en fait je pense que tu voulais ?
Bon[]Crayon: o/
BlaiseEbuth: J'aurais jamais cru demander ça mais... Mais p****n comment on modifie une variable déclarée hors d'un if depuis ce if en python ?!
BlaiseEbuth: Bah non
BlaiseEbuth: justement
BlaiseEbuth: Ca ça crée une variable locale au if qui masque la variable externe du même nom...
nicola: Tu crées une autre variable dans le if.
BlaiseEbuth: Mais je veux pas créer une autre variable, je veux modifier la première...
BlaiseEbuth: C'est débile...
nicola: Je n’ai jamais eu de problème.
nicola: Ni ce problème.
nicola: Tu peux montrer ton bout de code ?
JBM: ils aiment leur différence
JBM: sur ce genre de conneries où tous les langages modernes et même Common Lisp se sont mis d'accord
nicola: Du genre a=1 if True:
a=2
Ne fonctionne pas ?
BlaiseEbuth: Bah il me dit que non...
nicola: Montre ton bout de code.
Magus: t'as du merder quelque part
nicola: Chez moi ça a toujours marché.
BlaiseEbuth: Il me dit "a is never accessed" pour les deux a=
Magus: parce que le scope des variables marche très bien en python
jfaixo: t'as pas un souci d'indentation quelconque, qui scope mal ta variable initiale ?
Magus: ça c'est pas pareil
Magus: "a is never accessed" veut dire que tu ne fais que affecter une variable
Magus: sans jamais la lire
Magus: python te préviens que ta variable ne sert à rien
nicola: Tu n’a pas un if a=2 ?
nicola: Je n’ai jamais eu ce message.
BlaiseEbuth: Ah. Bah désolé alors, pour moi "accessed" ça voulait dire n'importe quelle opération dessus...
BlaiseEbuth: Effectivement, il est content quand je la lis...
BlaiseEbuth: -_-
nicola: :clap:
BlaiseEbuth: Quelle merde ce truc
nicola: Ben non, c’est logique.
BlaiseEbuth: Non
nicola: À quoi sert une variable si elle n’est pas utilisée ?
nicola: Il plantait ou envoyait un avertissement ?
BlaiseEbuth: Elle EST utilisée. Je fais des opérations dessus
nicola: Avec, ou dessus ?
BlaiseEbuth: Dessus
nicola: C’est bien la première fois que je vois ce genre de message.
BlaiseEbuth: Bah en gros il me le met tant que je n'ai pas fait d'opération "avec" comme tu dis
BlaiseEbuth: Bref.
nicola: Et ça l’empêche de tourner ?
BlaiseEbuth: Non c'était un warning, mais le message me faisait vraiment penser qu'il y avait une couille, même si ça tournait.
JBM: du coup c'était bien var = val
BlaiseEbuth: Ouai. Mais python essayait de me faire croire le contraire.
RandomVariable: C'est pas plutot qu'il t'informait que la premier affectation ne servait à rien parce ce que tous les chemin de code faisaient une autre avant qu'elle soit lu ? et que du coup du peut virer la première affectation, ou corriger un bug que tu aurais raté sinon ?
BlaiseEbuth: Non.
BlaiseEbuth: Ca aussi c'est marrant, le .execute de sqlite qui attend un "iterable" en second parametre pour les variables à binder à la requête. Du coup .execute(req, (a,b)). Mais ! Si tu n'as qu'une seule variable qui s'avère être une string, tu peux pas faire .execute(req, (a)), il faut faire .execute(req, (a,)) sinon il prend chaque char de ta string comme variable à binder... -_-
BlaiseEbuth: J'adore ce truc
RandomVariable: c'est logique, non, c'est connu que si tu veux un tupple avec qu'une seule valeur faut faire (item,) sinon il pense que c'est juste un parenthésage à la con et que item=(item) et dans ton cas comme il veut un iterable il fait ce qu'il peut
Cousnouf: C'est pour ça que les langages faiblement typés c'est du pipi lol :P
Cousnouf: voilà j'ai posté mon message du trimestre je peux à nouveau disparaître... lol
BlaiseEbuth: Bah "un parenthesage à la con" ça devrait pas exister... item!=(item)
Cousnouf: z'aussi
RandomVariable: ben comment tu fais des maths, en notation polonaise inversée ?
Cousnouf: c'est mieux la notation kosovarde...
BlaiseEbuth: Le contexte des opérations c'est bien aussi...
RandomVariable: je peux pas te contredire, mais juste par ce que je ne comprends pas ce que tu veux dire par là
BlaiseEbuth: Bah la fonction attend un iterable, pas un nombre, donc les parenthèses autour veulent forcément dire 'liste' pas 'opération mathématique'
BlaiseEbuth: Donc (a) veut forcément dire 'liste contenant l'unique item a'
RandomVariable: une string c'est itérable
RandomVariable: et c'est des tupples pas des listes
BlaiseEbuth: Oui. Mais justement si je lui met (string) l'iterable c'est () pas string
RandomVariable: t'as qu'à mettre des crochets ti tu veux des listes, et tu ne sera pas embeté
BlaiseEbuth: Nan mais le "problème" est réglé, je soulignais juste la... euh... disons "discutabilité" de ce choix.
RandomVariable: c'est assez contre-intuitif, mais je doute qu'on trouve une meilleure solution
RandomVariable: d'une part car python n'est pas vraiment typé, et donc ne sais pas que tu voulais un itérable. T'as juste passé une string à ta fonction, et il sait pas ce que fait ta fonction
BlaiseEbuth: Justement avec les () ça devrait pas être considéré comme une string.
RandomVariable: et que dans ton cas si tu veux juste faire ( "a" + "b" )*3, je trouve que c'est normal que ca fasse la même chose que ( "ab" )*3 même si la parenthèse est inutile
nicola: BlaiseEbuth, un tuple avec un seul élément s’écrit (1,) sinon c’est interprété comme une parenthèse de calcul.
philRG: pas de violence, c les vacances :)
philRG: ou bientôt
BlaiseEbuth: Ah oui c'est vrai qu'on peut multiplier les string en python...
RandomVariable: ... et les tuples
nicola: Et les listes.
nicola: Pas les ensembles ni les dictionnaires.
philRG: bon je me rapproche du boss moi, prenez un langage et pitié laissez les autres tranquille. Faites des puzzles
RandomVariable: j'ai jamais testé, mais de toute facon, logiquement ca serait identique, sauf pou 0
nicola: >>> {1,2}*3 Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for *: 'set' and 'int'
RandomVariable: merci, j'allais chercher un repl online pour tester
RandomVariable: et je fais un puzzle, minimax-simple-example, j'en suis à me demander si la seule raison que je ne passe pas le dernier test est que python est lent
philRG: ah Bob a écrit que l'id d'une tuile définissait sa valeur, je vais utiliser çà
RandomVariable: t'es sur quel jeu ?
BlaiseEbuth: Je ne remets pas en cause qu'un tuple s'écrit comme ça en python hein nicola, je dis que c'est toupouri comme choix. (Comme beaucoup d'autres en python)
RandomVariable: et moi je dis que je suis d'accord avec toi que c'est contre-intuitif la première fois, mais que si on creuse un peu, c'est pas facile de proposer mieux
philRG: https://www.codingame.com/ide/puzzle/coders-of-the-realm---1v1
philRG: bon je vais essayer si je passe en wood 1 avec cette modif
philRG: # tile = random.choice(next_tiles)
tile: Tile = max(next_tiles, key=lambda t: t.tile_id) print(f"PICK {tile.tile_id}")
BlaiseEbuth: Bah, suffit de regarder les autres langages. Mais vu que le mot d'ordre des créateurs de python semble être "faire tout absolument différement des autres" forcément ils peuvent pas s'en inspirer... :smirk:
RandomVariable: philRG, je te déteste, ce lien vers l'IDE, une fos ouvert m'a comptabilisé comme les participants non ?
BlaiseEbuth: Et c'est grave ?
philRG: je crois pas non
philRG: mais tu peux participer! ;-)
nicola: BlaiseEbuth je pensais que tu n’avais pas vu le truc.
nicola: Non, ils ne font pas tout pas comme les autres.
nicola: switch/case est arrivé.
RandomVariable: j'ai pas envie d'être comptabilisé si je n'y participe pas
RandomVariable: et pas trop le temps pour ça
RandomVariable: et j'ai du mal à me retenir pour l'ultimate tic tac toe
philRG: ah cool wood1, par contre à mon avis, je vais suer en wood 1
BlaiseEbuth: Beuh ça veut juste dire que tu as ajouté 1 au nombre de "joueur ayant commencé". T'est pas dans le classement, ça change pas ton score, rien...
RandomVariable: je compte comme un mec qui a abandonné avant d'avoir essayé, c'est juste une question d'estime
RandomVariable: sur les puzzles, ca fait une différence entre être marqué à 0% et pas etre mentionné dans "Progression de mes amis"
philRG: moins de 200 lignes je suis dans les clous
BlaiseEbuth: Mouai... PLeins de gens ouvrent les puzzles/multi "pour voir", moi le premier...
RandomVariable: moi ca me gène, chacun ses vices
BlaiseEbuth: Bah faut travailler dessus. Tu vas aller ouvrir 50 puzzles sans les faires, allez hop !
RandomVariable: je m'aime comme je suis, je ne cherche pas à changer celà ;)
philRG: bon 75xp pour CotR et 200xp pour CotC c pas proportionnel au temps passé
RandomVariable: J'ai un code où j'utilise @cache de functool, qui marche et est assez lisible. Je me trimbale des strings qui font office de set() de chars et dont je maintiens le tri assez simplement. Mais pour faire propre j'ai essayé d'utiliser frozenset(), mais c'est plus lent au point d'avoir un timeout. Quelqu'un aurait-il une idée d'explication ou une piste ? Merci
Thyl: Salut
fastien: o/
Thyl: est-ce que ça vous est déja arrivé que cin ne lise pas des caractères copiés-collés mais les lisent quand vous les tapez à la main ?
Thyl: j'utilise la console intégré dans dans notepad++
BlaiseEbuth: Genre tu les colles, t'appuies sur entrée et... rien ?
Thyl: a peu pres
Thyl: je debug en affichant ce que je lis
Thyl: le code c'est ça
Thyl: http://chat.codingame.com/pastebin/d19426d6-4bb8-4952-9ca8-8533fc816e9c
Thyl: et à chaque entrée j'ai ajouté des debugs
Thyl: et quand je copie colle tout
Thyl: il me lit pas n et k
Thyl: et tape directe dans les nombres d'après
Thyl: genre pour unt test
Thyl: 8 5 10 9 8 7 7 7 5 5
Thyl: ça saute 8 5
BlaiseEbuth: Hmm... Pourquoi ios::sync_with_stdio ?
Thyl: code forces
Thyl: j'ai une macro sur notepad++
Thyl: je mes au point tout une boite à outils de contest
Good-one: hello guys , it's my first time here
Thyl: #World
Thyl: go to world Good-one
BlaiseEbuth: Bah faudrait déjà savoir si l'erreur viens de notepad. T'as essayé ton code ailleurs ?
Thyl: ben mon cide marche avec notepad
Thyl: si je tape les entrées à la main
Thyl: :D
Thyl: trop zarbe
BlaiseEbuth: C'est pas la question...
Thyl: je le fais de ce champ
Thyl: le code marche sur CG
BlaiseEbuth: C'était pas la question non plus :rofl:
BlaiseEbuth: Est-ce que ça fonctionne ailleurs avec le copier/coller
Thyl: ça marche sur Repl.it
Thyl: sauf que quand je copie colle le test
Thyl: ben ça me fout un \n entre les deux lignes
Thyl: trop bizarres
BlaiseEbuth: Ouai. Ca c'est les différences de caractère entre environements...
BlaiseEbuth: Tu devrais passer par un fichier au lieu de coller direct dans la console
philRG: les caractères de fin de ligne c la plaie
philRG: sont gérés différemment d'un environnement à un autre
philRG: depuis que je créé un projet par puzzle, obligé de faire un sed 's/^M/^M/ et parfois quand je fais un push sur github, j'ai le problème
philRG: on se perd vite entre toutes ces plateformes et ide en ligne, et l'âge n'arrange rien
philRG: j'arrivais à gérer des configurations étant plus jeune, mais là je lève le pied
POLOB: Sur git, tu peux configurer la gestion de CRLF pour éviter les soucis de ce type. En général, auto-CRLF fait bien le boulot, à part si tu t'amuse à faire du WSL et à mixer git sous win et sous linux sur la même partition (enfin filesystem). Là, pas de vraie bonne solution
Thyl: philRG j'ai encore mieux pour les puzzles
Thyl: j'ai un fichier par puzzle
Thyl: et je compile en ligne de commande
3141948: J'ai cru voir un agent de ce type sur github mais pas trouvé,. Après je pense que le problème vient d'un paramètre de mon ide sur le type d'encodage par défaut. J'ai passé l'âge...
Thyl: et j'appelletoujours le .exe
Thyl: pareille
Thyl: comme ça 100 .cpp un seul .exe
Thyl: et si un jour le code me réinteresse je recompile
POLOB: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
Thyl: ça permet de pas avoir 300 .exe sur l'ordi
POLOB: core.autocrlf
3141948: Thyl: tu fais bien
POLOB: il y a des ide qui forcent des valeur chelou effectivement
Thyl: Au début c'est beaucoup de prise de tête mais c'est trop bien les configs maisons
Thyl: Notepad++ Avec le plugins pour le cpp ça marche du feu de dieu
Thyl: sauf pour le copie-coller :D
POLOB: ou tu utilises vim et tu apprends les incantations magiques
3141948: POLOB: merci pour le tip
3141948: J'ai plus mon acuité visuelle d'antan, beaucoup de fatigue oculaire
POLOB: https://vim.fandom.com/wiki/File_format#Converting_the_current_file
Thyl: polob j'ai toujours pas trouvé un tuto sur vim qui explique bien le truc
BlaiseEbuth: vimtutor
POLOB: ça n'existe pas vraiment. Il faut se prendre la tête un peu au début
POLOB: il faut un peu changer sa façon de penser un éditeur
BlaiseEbuth: Généralement je prends toujours ma tête...
3141948: J'ai utilisé vim un moment je maîtrise bien les bases mais pour le code, je peux plus
POLOB: je connaissais pas vimtutor
BlaiseEbuth: Bah c'est la base.
POLOB: les bons ide ont un bon mode vim
POLOB: J'ai souffert :)
BlaiseEbuth: Sur linux vimtutor t'ouvre vime avec le fichier tuto
BlaiseEbuth: *vim
POLOB: (ça laisse à peu près que CLion pour vrai ide, ou VSCode pour un presque ide)
3141948: Quand j'ai pas d'outil sous la main, je lance un vim oui
3141948: Et je fais un sed à l'intérieur avec des regexp
3141948: Quand je sais ce que je veux, c plus rapide et çà me fatigue moins les muscles oculaires
3141948: L'idéal au boulot c travailler sous Unix
Thyl: Je m'installe un vrai environement parceque j'en ai trop besoin pour Code Forces
BlaiseEbuth: T'utilises cmake ?
BlaiseEbuth: ou autre
Thyl: j'essaie
Thyl: hier j'ai découvert un plugin sur Notepad du coup je teste
Thyl: notepade tres pratique pour les macro
Thyl: J'essaie code forces c'est tres pratique pour s'entrainer à résoudre plein de problemes
POLOB: Il y en a tellement des sites de ce type, leetcode, hackeranch...
3141948: J'utilise principalement un ide pour pas perdre trop de temps en outillage et aussi pour visualisation mes données dans le debugger et je suis habitué à l'interface
3141948: Quand je change de langage l'interface utilisateur est quasiment pareille du coup
POLOB: c'est sur qu'un ide, ça aide pour ça
POLOB: j'ai jamais vraiment réussi à debugger avec gdb en ligne de commande par exple
BlaiseEbuth: Faut encore en avoir un qui prenne en charge les langages que tu veux.
POLOB: Pour ça, VSCode est pas mal
3141948: J'ai une inflammation des nerfs du coup qui me generent de la fatigue visuelle
POLOB: mais je le trouve un peu bric à brac
3141948: Disque cervical endommagé 😟
POLOB: pas cool ça
BlaiseEbuth: C'est la raison qui me fait l'utilser malgrè tous les défauts que j'y trouve
POLOB: Je suis un nanti et ma boite nous paye la suite JetBrain
Thyl: CodeForce à un avantage POLOB, il organise beaucoup de contest
3141948: Vscode est horrible en terme d'interface du windows made quoi mais sinon au niveau communautaire, pas d'équivalent, on trouve tout
POLOB: du coup, on retrouve ses petits à chaque fois, mais c'est dédié à un language
BlaiseEbuth: Bof... Je fais déjà rien sur CG, je vais pas aller rien faire sur codeforce.
POLOB: Oui Thyl, je vois ça
POLOB: mais on peut pas tout faire, surtout quand on code déjà 8h par jour pour le taf :)
Thyl: Il font un truc malin
BlaiseEbuth: Ils écoutent leu comu ?
Thyl: des compet' juste en Kotlin pour populariser
BlaiseEbuth: J'appelle pas ça malin...
Thyl: POLOB quand on est on vacance ça aide !
POLOB: Kotlin, je me tate un peu pour l'apprendre j'avoue...
BlaiseEbuth: :scream:
Thyl: BlaiseEbuth imagine il aurait fait ça avec Java
BlaiseEbuth: Pour moi c'est pareil Thyl
POLOB: là, j'ai juste un jour offert par ma boite pour trop de taf en confinement
Thyl: pas de chance
BlaiseEbuth: Voir pire en fait... :thinking:
Thyl: en sachant ça je profite encore plus de mes vacances
Thyl: :)
BlaiseEbuth: Les vacances c'est pour les gens qui bossent
Thyl: oui
Thyl: au college :)
BlaiseEbuth: Oui. Pour les étudiants ça va, c'est pardoné.
Thyl: par contre j'ai pas le droit au pass étudiant
Thyl: donc pas IDE gratuit :D
BlaiseEbuth: pass étudiant ?
Thyl: ouais
Thyl: ou meme numero étudiant
Thyl: t'as rien
BlaiseEbuth: T'as pas de numéro étudiant ?
RandomVariable: Je crois qu'il n'y en aura pas beaucoup qui vont valider la mission Challenge de la semaine cette semaine. (je ne compte pas ceux qui l'avaient déjà)
pardouin: ah cool il est dans ma to do list sokoban :)
Robinsstudio: Hé je me demandais. Imaginons que je veux faire un billet de blog ou une connerie du genre ou je veux partager mon approche pour UTTT et que je passe mon dépôt GitHub UTTT en public. Est-ce que je risque d'avoir des ennuis ici ? (situation entièrement hypothétique bien sûr)
BlaiseEbuth: Bien sûr... :smirk:
Robinsstudio: Bien sûr pourquoi ? x)
**BlaiseEbuth commence à chercher le blog de Robinsstudio pour pouvoir mieux le dénoncer.
Robinsstudio: Tu ne le trouveras pas, je n'en ai pas ! :rofl:
Robinsstudio: Mais ça ne répond pas à la question. :thinking:
BlaiseEbuth: "Ca dépends"
Robinsstudio: En soi, je dispose librement de mon code, non ?
fastien: y a pas eu une vague de ban a un moment ?
BlaiseEbuth: Bien sûr. Mais CG peut disposer librement de ton compte. :blush:
Robinsstudio: Ok donc le message est très clair.
Robinsstudio: CG ne cautionne pas du tout ce genre de pratiques.
darkhorse64: la bonne approche, c'est de donner des explications éventuellement illustrées par du code mais pas de donner le code d'un bot fonctionnel
BlaiseEbuth: Non en vrai ça dépend de ce que tu partage
BlaiseEbuth: voilà
Robinsstudio: Oui mais moi je parle vraiment de passer le dépôt GitHub en public justement.
darkhorse64: Ne le fais pas
Robinsstudio: Je ne comptais pas le faire.
masknksnvsndvo: mbappe est nul
Robinsstudio: Mais ça m'intéressait de savoir si je risquais quelque chose en le faisant. haha
Robinsstudio: Parce que j'ai vu des gens le faire. Des solutions de puzzles notamment.
BlaiseEbuth: le foot est nul
Robinsstudio: Mais du coup c'est pas toléré.
BlaiseEbuth: C'est pas trop la politique de la maison, mais y'a pas de chasse aux sorcières en ligne pour savoir qui a partagé quoi.
masknksnvsndvo: @BlaiseEbuth t'as raison
Robinsstudio: Bon bah sur ces bonnes paroles, je vous remercie et vous souhaite une bonne nuit ! o/
BlaiseEbuth: o/
fastien: bn