Chat:Fr/2022-02-02

From CG community
Jump to navigation Jump to search

Stilgart: bonjour à tous, et licorne à Automaton2000 la tortue

Default avatar.png Automaton2000: mais bon je suis passé en ligue bronze

dwarfie: Automaton2000 : du coup , t'es obligé de nous dire tortue

Default avatar.png Automaton2000: vous etes sur le serveur ?

Stilgart: va falloir préparer le boss de ligue gold, au passage

Stilgart: (pour la légende, je suggère la phrase "je suis Beber")

Buk.: Bonjour ! Et salut Automaton2000

Default avatar.png Automaton2000: moi je suis sûr que le code de l'auteur

Default avatar.png MusicalPony_635: ,;:!

Default avatar.png MusicalPony_635: *jhgcvjklm*

Alshock: Lequel Stilgart ?

Alshock: Et coucou à tous, qui veut voir ma tortue ?

Bon[]Crayon: salut les tortues

Bon[]Crayon: salut le zzbot automaton2000

Default avatar.png Automaton2000: ah pas mal ce push

Alshock: joli pdp

Alshock: j'ai voulu le mettre en français mais je crois que même en français on met pas de d

Bon[]Crayon: Qu'est-ce que tu veux dire ?

Alshock: que ta profile pic est cool

Alshock: d'ailleurs Automaton2000 ne tarit pas d'éloges à ton sujet

Default avatar.png Automaton2000: on peut le faire en c++

Alshock: il essaye même d'optimiser son débit de louanges, c'est dire

Bon[]Crayon: Vassily Kandinsky Plusieurs cercles :paintbrush:

Alshock: et tu es dedans

darkhorse64: :dart:

Alshock: oh j'me suis choqué moi-même, je viens de bug 10 minutes à cause d'un int * x = malloc(sizeof(bool) * xsize); Juste envie de crever

Alshock: plus jamais de C

Stilgart: sinon

Stilgart: int * x = malloc(sizeof(*x) * xsize);

Alshock: c'est vrai que généralement je fais ça en plus mais là non, parce que pourquoi faire imbuggable quand on peut faire bugger

Default avatar.png karmalapuissance: oeoeoeee

Default avatar.png karmalapuissance: je viens de commencer c'est dur en C ?

Bon[]Crayon: Dans certain cas oui.

Bon[]Crayon: L'apprentissage est plus long.

Default avatar.png BCinU: Salut, je suis nouveau et je découvre un peu tout dans codingame...j'aurais voulu savoir s'il y avait un endroit où on pouvait voir des exemples de puzzle avec taille de code réduit...j'en ai juste fait un en C# pour m'amuser, mais je vois des tailles de code bien plus réduite en C# et je ne vois pas comment faire moins...

Bon[]Crayon: Salut, tu peux faire une recherche avec 'tricks and tips code golf csharp'.

Default avatar.png BCinU: ok merci ^^

GroutchKeu: o/

Bon[]Crayon: \o

Stilgart: le C c'est un des langages généralistes les plus faciles (à ne pas confondre avec casse-pied et verbeux)

Stilgart: BCinU: passe ton chemin

Stilgart: les codes C# très réduits ne sont probablement pas du C# :(

Stilgart: et la partie "code golf" devrait être intégrées à une partie "Free for all" plutôt que d'être placée dans la partie "compete"

Default avatar.png BCinU: Pourquoi devrais-je passer mon chemin ?...c'est amusant quand même

Stilgart: je ne dis pas que c'est pas amusant

Stilgart: c'est juste que le classement est complètement unfair

Stilgart: tu dois pouvoir trouver des tips sur google, et peut-être même sur le forum (je ne sais pas s'il y a un thread spécifique au C# mais c'est possible)

GroutchKeu: quand un maitre du ruby te met une féssée en shortest, tu te rends en effet compte que le langage importe pas mal dans ces jeux la !

Salketer: Salut, quelqu'un a fait le challenge de la semaine? Je suis bloqué sur le test 2... Je suis certain que c'est un truc avec l'angle qui est à plus de 90 degrée mais pas certain

Stilgart: c'est pas un cadeau à déboguer celui-là :(

Stilgart: si ça peut t'aigiuiller, je travaille à 0.001 près, et j'ai une fonction addAngle pour additionner des angles tout en garantissant que le résultat reste entre -180° et 180°

Stilgart: (et je stocke l'angle en degré, ce qui est assez inhabituel de ma part pour être mentionné)

Salketer: hah moi c'est pareil, mais puisqu'il faut jouer avec les degrés...

Stilgart: j'ai plus le détail en tête, mais je suppose que ça aide

Salketer: moi c'est ma rotation qui semble ne pas être bonne... le test1 avec une rotation initiale de 0, pas de soucis mais là j'arrive avec de drôle de résultats...

Stilgart: je pense que mon addAngle me protège de dépassements en cas de rotations, justement*

Salketer: oui pour ne pas dépassé 180

Salketer: oui pour ne pas dépasser 180

Salketer: oops désolé pour le double

Stilgart: j'ai suffisamment des gros doigts pour ne pas être en mesure de me moquer ;)

Default avatar.png Gmelle: pareil

Default avatar.png Gmelle: how to do this thing ?

OldJohn: @Stilgart et @Salketer, pourquoi j'ai pas eu ces problèmes ?

Salketer: T'es meilleur que nous...

OldJohn: Ben non, justement !

Salketer: Haha, je ne sais pas. En fait je ne sais même pas si c'est vraiment ca mon souci

OldJohn: Oui, le problème est que l'on n'est pas bien sûr de la réponse... Moi quand c'est passé, j'ai pas chercher à comprendre après !

Salketer: Je pense que mon calcul d' plante avec des angles suppérieurs à 90, j'essaie avec seulement D voir si je suis plus près

Stilgart: OldJohn: ça dépend beaucoup du reste du code

Stilgart: en l'occurrence, j'ai vraiment besoin d'un angle entre -180° et 180° à un moment (je regarde le signe)

OldJohn: En gros, je m'en tire sans racine carrée dans le code, juste une valeur absolue pour le calcul de la distance!

Salketer: là je pense que c'est l'angle le souci, parce que ma réponse semble être la symétrie de ce qui est attendu

Stilgart: on peut sans doute faire sans, mais c'était trop d'effort de refactoring :)

OldJohn: Et pour les angles, j'ai juste besoin de connaître leurs sinus et cosinus

Stilgart: tu calcules la distance à tous les murs ?

OldJohn: Non, je calcule la trajectoire !

Stilgart: ok... bah dans ce calcul là j'ai besoin du "signe" de l'angle

OldJohn: Donc je suis le rayon !

Stilgart: je pourrais sans doute regarder via sin/cos, mais ça rend le truc obscur

OldJohn: @Stilgart c'est moins obscur pour moi de suivre un vecteur direction normalisé

Salketer: obscure? Pas certain que ce soit si obscure que ca...

Stilgart: c'est quand même plus clair de regarder un seul signe pour savoir s'il faut aller à gauche ou à droite, plutôt que de regarder deux valeurs

OldJohn: En plus, on peut s'en tirer en ne calculant que 4 sinus/cosinus

Salketer: pour ma part, j'utilise aussi cos/sin pour mes angles c'est pour ca que je ne comprend pas trop pourquoi ca bug. Par contre, pour trouver la colision je compare 2 segments

Stilgart: OldJohn: j'avance par saut de puce de case en case moi

OldJohn: @Stilgart: idem pour moi

Stilgart: avec juste l'angle (donc pas de vecteur normalisé, parce que ça fait de l'erreur d'arrondi ces mahcins)

Stilgart: déformation professionnelle, je présume :)

OldJohn: @Stilgart : A qui le dis tu ?

**Stilgart vient de recevoir un mail surréaliste

Salketer: et ca change grand chose les erreurs d'arrondi ici?

Stilgart: ça pourrait

Stilgart: mais les jeux de test sont permissifs de mémoire

OldJohn: Je suis d'accord. Le problème ce sont les coins. (J'ai fait 10 ans de logiciels de maillages)

Stilgart: de mémoire, tant qu'il n'y a pas de rotation de caméra avec un angle qui est un multiple impair de 45°, il n'y a pas d'effet de coin et c'est safe

Stilgart: (au sens où un calcul en double va donner la bonne face)

OldJohn: De mémoire des produits vectoriels peuvent donner la bonne face mais c'est pas ce que j'ai fait. Il aurait fallu que je sois au boulot avec les bonnes référence sous le coude!

Stilgart: avec 45°, il n'y a rien à faire même avec du produit vectoriel

Stilgart: parce que tu tombes potentiellement pile sur un coin

Salketer: oh! Interessant... Je cré mon vecteur de vu, je lui impose la rotation recu. Je reprend ce vecteur je lui ajoute la rotation des ray (-30 à 30) et j'obtien un vecteur qui pointe dans la symétrique d'un vecteur que je crée avec une seul rotation en additionnant les angles... Une idée?

Stilgart: un de deux calculs au moins est faux

Stilgart: c'est le moment de demander à maître Automaton2000 comment on fait des tests unitaires :D

Default avatar.png Automaton2000: on a quand meme un peu

Salketer: C'est le même, appliqué 2 fois vs une.

rotate(-100) puis rotate(-30) vs rotate(-130)

Stilgart: ha, donc rotate est faux

Salketer: const x2 = Math.cos(a) * x1 + Math.sin(a) * y1;

       const y2 = Math.sin(a) * x1 + Math.cos(a) * y1;
(

**Stilgart tend une matrice de rotation à struct

Stilgart: à Salketer*

OldJohn: Manque un moins... Determinant différent de 1

Stilgart: spoiler, c'est -sin(a) en haut à droite de ladite matrice ;)

OldJohn: C'est mieux pour le determinant de la matrice de transformation

Salketer: ah non!!! merci

Stilgart: en fait, tu peux choisir le sin(a) sur lequel tu mets le - (ça va juste tourner dans l'autre sens)

Stilgart: mais en général, on le met sur celui de x2

OldJohn: Moi, j'ai des cos(a+angle) et des sin(a+angle)

Salketer: bon, j'ai réussi à debug à peu près tout... J'ai juste mon D' qui semble avoir un tout petit souci. Il porte bien son nom

Salketer: je fais un trigo, normalement c'est pas sorcier!

Salketer: Dprime = distance * sin((90-rayAngle)*PI/180) non?

Stilgart: non, parce que sin ça peut te donner un résultat négatif

Stilgart: ce qui est un peu naze pour une distance

Salketer: sachant que rayAngle est entre 0 et 30, je devrais rester bon...

Stilgart: il va de -30 à 30 c'est moi

Salketer: en fait, pour ce calcul j'utilise l'absolu

Stilgart: (cela dit, le sin est positif sur la plage [60°,120°])

Stilgart: c'est peut-être ça l'erreur alors...

Stilgart: ou pas, ton code est équivalent au mien (mais j'ai un abs devant un cos)

Stilgart: peut-être que d est faux, du coup

Salketer: ah oui, voilà on vient peut-être de trouver le souci de la précision...

Yatagan: Moi j'ai tout fait avec des équations de droite

Salketer: Ma distance = mon point de vu VS le point de collision. Hors je me trouve avec { x: 1531.902882013995, y: 1070.2957065773207 }

Puisqu'on les murs suivent toujours les axes, je devrait avoir un des 2 qui est très proche d'un mutliple de 100...

Yatagan: a*xCam + b*yCam + c = 0, une fois que tu as les bons cos et sin dans a, b et c tu te prends plus la tête

Alshock: vous parlez de quel puzzle ?

Alshock: reuh au passage

Salketer: AZCII 3d de la semaine

Stilgart: https://www.codingame.com/ide/puzzle/lets-make-a-cheap-ascii-3d-engine

Salketer: http://chat.codingame.com/pastebin/d187ede5-6fb0-4f0d-ade7-13d3e43fcc1b

Stilgart: je ne l'ai pas du tout calculée comme ça

Stilgart: je préfère la version paramétrique en fonction de t plutôt que la version directe à coup de produits scalaires sortis d'internet

Salketer: je l'ai pris de mes notes mais c'est vrai que je ne la comprend pas au complet

Salketer: mouais, je suis à deux doight mais ca passe pas... C'était mon interpolation après qui foirait. Maintenant mes intersections sont toujours proches de multiples de 100, sauf que j'ai quand même des merdes dans mes hauteurs

Salketer: O.O pourquoi j'ai mis floor à la place de round?! haha c'est bon

Salketer: Bon super, pendant qu'on est dans les maths, je vais attaquer mars!

Stilgart: ML tu le passeras sans doute pas avec des maths

Alshock: C'est ce que bob a fait pourtant

Stilgart: je doute fort que ça soit si simple que ça

Stilgart: 1. on n'a pas les infos exactes en entrée

Stilgart: 2. on n'a pas les détails du moteur

philRG: ah pour les maths, j'essaye de trouver des méthodes de code se rapprochant des maths théoriques

Stilgart: 3. la discrétisation + le nombre d'étapes posent des soucis d'arrondis

Alshock: ah ouais du Rust quoi ?

Alshock: Ou du Haskell j'sais plus j'confonds

Alshock: Haskell, merde répétez pas ça à la mafia locale

Stilgart: 4. la physique à accélération discrète non constante, c'est pas trivial

Stilgart: Automaton2000: fais le truc

Default avatar.png Automaton2000: tu veux dire que num va prendre la valeur absolue

philRG: vecteur + matrice de transformation histoire de rester dans un espace vectoriel. Je crois que j'utilise numpy

philRG: au niveau des notations, ce qui se rapproche le plus des maths traditionnelles

Alshock: " 4. la physique à accélération discrète non constante, c'est pas trivial " alors perso j'ai testé en mettant une accélération ponctuelle en début de tour, puis en fin de tour, j'me suis rendu compte que j'étais entre les deux, alors j'ai fait un demi-tour, accélération ponctuelle, fin du tour. C'est très crade mais ça passe

Alshock: Le bidouillage propose des solutions simple aux problèmes qu'on a mal compris

Stilgart: Alshock: si tu fais du tour par tour, tu n'as pas vraiment besoin de physique

Stilgart: juste de la "formule du referee" (cf point 2)

Alshock: Ah, je vois mieux la nuance. Mais justement on fait les exos de sorte à ce que ce soit d'une difficulté acceptable dans le contexte. Tenter de faire une simulation de la physique correspondante avec des accélérations en dehors des possibilités laissées au joueur c'est se prendre la tête sur un puzzle pas prévu pour

Alshock: (je laisse évidemment une place de choix à la possibilité que je comprenne mal les enjeux soulevés)

Stilgart: surtout, d'après mon expérience, ça ne donne rien de très exploitable

Stilgart: dans ML2, et encore plus dans lML3, on ne te demande pas une bête parabole avec accélération linéaire

Stilgart: mais un comportement beaucoup plus complexe qui de toute façon va nécessité son lot de if

Stilgart: à partir de là, la forêt de ifs finit par faire tout le taff

Alshock: je n'ai pas le détail de son implémentation, et je crois qu'il a patché ML3 avec son if et son couteau, mais je crois (si je me souviens bien) que le 2 ne reposait que sur des courbes de Bézier. Probablement à une fonction d'aterrissage près

Alshock: ce que je crois n'est quand même pas très intéressant parce que ça repose sur rien

Default avatar.png HenniYassine: bonjour, est-ce qu'il y'aurait par hasard des développeurs basé a Nantes ?

philRG: si je tape mon premier legend sur line racing avec çà, j'ouvre le champagne: malus = 2 if in_border(*new_pos) else 1


philRG: (dit le gars qui retrouve son code vieux de 9 mois)

JeremyRoussy: Bonjour, j'ai une question, si quelqu'un peux m'expliquer pourquoi lorsque je fais la multiplication de 12 345*789 012 ma calculatrice me donne 9 740 353 140 alors que mon programme renvoie 1 150 418 548 ?

Buk.: philRG Pour la montée de ligue sur line racing tu fais la queue comme tout le monde :p

darkhorse64: JeremyRoussy: tu as un overflow. Utilise un int64

philRG: oui c un peu çà :-D

JeremyRoussy: Haaaaaaa merci

philRG: au début, ça fait envie les multis, puis quand un run met plus d'1h à s'exécuter dans l'arène, tu retournes à ta vie courante

Buk.: j'ai lancé le mien a 14h ...

philRG: ah le mien vient de finir, bon ça rime à rien de modifier des params au pif, rank 415 final alors que j'étais top 20 en gold

Cactus35: pourquoi ça se lance après le début du clash ?

Bon[]Crayon: ?

Cactus35: pourquoi ça se lance pas je veux dire

Cactus35: 5 min que le clash a débuté et il se passe rien

Bon[]Crayon: c'est à toi de coder

Stilgart: ça veut dire quoi "rien" ?

Stilgart: (serait-ce le retour d'un vieux bug où l'ide du clash ne s'ouvre pas ?)

Remi.: Parfois faut actualiser la page pour pouvoir faire le clash

Remi.: Salut tout le monde o/

Bon[]Crayon: \o

Bon[]Crayon: Automaton2000 mise à jour

Default avatar.png Automaton2000: si tu joues contre des gens qui ont de la chance

Bon[]Crayon: Automaton2000 je perds

Default avatar.png Automaton2000: mais c'est quand meme un peu plus de temps

dwarfie: Automaton2000 : plus de temps pour les tortues ?

Default avatar.png Automaton2000: je vois que mon code de fantastic bits

dwarfie: Automaton2000 :il marche pas , tu marque dans ton camp

Default avatar.png Automaton2000: nous on a un peu de bol

Default avatar.png Zbouig: fuckiong baguette frogies

Zorg1: :thinking:

Default avatar.png qeqzm5Z: bite