Chat:World/2021-08-11

From CG community
Jump to navigation Jump to search

JohnyMcCoder: how do you approve a contribution? I can't find a way, only upvotes

Westicles: https://www.codingame.com/playgrounds/40701/help-center/approval-process

JohnyCode: thanks, but it still doesn't say how exactly do I approve

JohnyCode: do I need a command or smth?

Westicles: Do you qualify?

JohnyCode: I have 50 games so I should

Westicles: Leaderboard says 49.

JohnyCode: interesting

JohnyCode: I got the achievement :joy:

JohnyCode: But thanks, I'll play 1 more

eulerscheZahl: private clashes don't count for moderation

eulerscheZahl: Lux AI planned to start at 16th of August https://www.kaggle.com/c/lux-ai-2021/

martinpapa69: link is not working for me

eulerscheZahl: oh :/ i copied it from their discord announcement

eulerscheZahl: blame the user Stone

JohnyCode: hey, so I definitely have 50+ games now, but I still cannot find the approve button. Where should I look for it?

Westicles: Can you link what you want to approve?

JohnyCode: https://www.codingame.com/contribute/view/6491dfa3ea273fa6c2f108fa7ba459fe464e

Westicles: That isn't a clash

JohnyCode: oh

JohnyCode: i just noticed that

JohnyCode: :grimacing::sweat_smile:

JohnyCode: thank you!

ProCoder03: is there any good example for MonteCarlo in C#

ProCoder03: ??

martinpapa69: its c++ but easy to port i think

martinpapa69: http://chat.codingame.com/pastebin/076f6a1e-067b-4577-8b51-2e5e866f02f4

ProCoder03: thanks!

derjack: flat monte carlo?

ProCoder03: ?

martinpapa69: thicc

derjack: :smirk:

Default avatar.png kangatahy: :eyes:

007AhanafAziz: hello

Wontonimo: hello 007, i have a mission for you

69razer69: how lonf can be the string input

69razer69: long*

Wontonimo: in what context? are you making a contribution with a large string output?

WannaBeHum1n: wow

WannaBeHum1n: it saves the code you wrote for every question even if it is old

WannaBeHum1n: thnx developers

69razer69: a lot of memory is speard for my dum solutions

WannaBeHum1n: guys

WannaBeHum1n: i am simple javascript guy

WannaBeHum1n: do i have to build a simulation and work out how to make a genetic algo

WannaBeHum1n: to get out of gold

WannaBeHum1n: in coders strike back xD


WannaBeHum1n: ?

derjack: yes

WannaBeHum1n: oof

69razer69: i recommend codingtrain video made using p5js

69razer69: on gen alg

Wontonimo: no WannaBeHum1n

Wontonimo: you can get to gold without GA WannaBeHum1n

WannaBeHum1n: huh

WannaBeHum1n: how

WannaBeHum1n: any tips xD

derjack: no need for GA. use NN [solved]

Wontonimo: has anyone told you about PID controllers? or the simplified -3v algo?

WannaBeHum1n: GOOGLING INTESIFIES

Wontonimo: you won't find the -3v on google (probably). It simply means

Wontonimo: instead of targeting the checkpoint, target checkpoint - 3 * velocity

WannaBeHum1n: I ASSUME NN MEANS NEURAL NETWORK ?

WannaBeHum1n: sorry caps

69razer69: yup

WannaBeHum1n: ik that one

WannaBeHum1n: -3v

WannaBeHum1n: but

WannaBeHum1n: hard stuck at gold

WannaBeHum1n: 1000 rank

Wontonimo: let me look at some of your replays

WannaBeHum1n: i have one that targets next checkpoint

Wontonimo: just a sec

WannaBeHum1n: and one that blocks

WannaBeHum1n: how do i share

Wontonimo: don't share code here plz

WannaBeHum1n: i know

WannaBeHum1n: he asks for replays

WannaBeHum1n: how do i show replay

WannaBeHum1n: for u

martinpapa69: you can share replays with the "replay and share" button

Wontonimo: for replays, you can click on the share button, it opens a new window. copy that url.

WannaBeHum1n: do i look for a losing one

Wontonimo: i've looked at a couple replays

WannaBeHum1n: ?

WannaBeHum1n: u can see already ?

WannaBeHum1n: oh

Wontonimo: it looks like you are probably only subtracting -velocity or -2 velocity

Wontonimo: are you sure you are using -3 velocity?

WannaBeHum1n: i was changing the values earlier testing

WannaBeHum1n: i set it to 3 now

WannaBeHum1n: testing in areana

Wontonimo: okay, i see that now

Wontonimo: nice

WannaBeHum1n: 25%

69razer69: so the stub generator how far i can go in string(51656)

Wontonimo: okay, it doesn't look like you've implemented drifting

Wontonimo: a super simple first implementation of drifting goes like this:

Wontonimo: using your current velocity, calculate if your pod would be within 400 of the checkpoint in the next 4 rounds. if it is, don't target that checkpoint and instead target the next one

Wontonimo: this will result in early turning and your pod drifting through the checkpoints instead of turning after

WannaBeHum1n: wait

WannaBeHum1n: i can see

Wontonimo: waiting

WannaBeHum1n: all the checkpoints

Wontonimo: yes

WannaBeHum1n: omg

WannaBeHum1n: oh god

WannaBeHum1n: my life is a lie

WannaBeHum1n: thank you som muck

WannaBeHum1n: much*

Wontonimo: np

Wontonimo: that should boost you several rankings.

WannaBeHum1n: but how do i calculate the 4 seconfs

WannaBeHum1n: distance / velocity ?

WannaBeHum1n: right ?

Wontonimo: for( the count of 4)

  add velocity to position
  check if within 400

WannaBeHum1n: ah ok

WannaBeHum1n: ty

Wontonimo: 4 rounds (not seconds). sorry bout that

Wontonimo: after implementing that and seeing that it boosts your ranking a good chunck, implement blocking like so:

Wontonimo: one pod is your running, the logic it is currently using. The other becomes a blocker. The blocker keeps track of the lead opponents next checkpoint.

Wontonimo: the blocker starts by targeting checkpoint 2, and then camping there to block the lead opponent.

Wontonimo: once the opponent clears that checkpoint, the blocker races 2 checkpoints ahead and repeats

Uljahn: it was easier for me to beat the gold with two runners though

Wontonimo: oh? do share!

Uljahn: immediately use boost if a map is not tiny (3 checkpoints) but only by one pod

Wontonimo: are there multiple boosts available in gold?

Uljahn: no

Uljahn: if you boost by both pods they'll collide at the first checkpoint and could miss it

Wontonimo: you can also use shields to break hard. if while approaching a checkpoint your pod is facing more than 140 degrees away from the next checkpoint, it is a way to not overshoot

Wontonimo: not the only way

WannaBeHum1n: what if me and enemy have same target next

WannaBeHum1n: wouldnt blocking hurt me too

WannaBeHum1n: ?

Uljahn: that's the point of two runners, they barely interact with each other, also it's hard to block both

WannaBeHum1n: but how do u control the boost

Wontonimo: good point. if the blocker moves slightly towards enemy, then no.

WannaBeHum1n: mine shhot each other

WannaBeHum1n: literally

WannaBeHum1n: shoot at satrt

WannaBeHum1n: start*

Wontonimo: make pod 1 use boost at beginnig. pod 2 use boost after 1st checkpoint

Uljahn: ^

WannaBeHum1n: ty

WannaBeHum1n: currently at 476th

Wontonimo: for the drifting thing, there are definitely better algos, and the closer you get to fully simulating all the mechanics the better, but the simplified version is a good start

Uljahn: yeah, it's enough for around 300 in legend, no collisions, no GA, just plain move prediction for your pods

Default avatar.png Naknik: mod :o

derjack: div!

Wontonimo: abs

WannaBeHum1n: sqrt

eulerscheZahl: pow

Stilgart: log

WannaBeHum1n: exp

WannaBeHum1n: anyonne know how i would count the number of checkmarks my car passed

eulerscheZahl: with an integer?

martinpapa69: have you tried using mathematics ?

WannaBeHum1n: i want to use the boost for second car after a certain number of checkmarks

AllYourTrees: what about big data

WannaBeHum1n: k

Stilgart: eulerscheZahl: any other idea for chadok.info ?

eulerscheZahl: ah, I see you implemented the author already

eulerscheZahl: and deleted puzzles in red, nice

Wontonimo: hey WannaBeHum1n, every time your car has a different checkpoint than the last, increment a global counter

Wontonimo: you'll need to also store the checkpoint from last round so you can compare the current and last

WannaBeHum1n: thank you <3

michaellan: good morning

michaellan: in theory, a MCTS can be abstracted over any type of game, given (1) a way to compute "next states" from current state and (2) a function that checks if a position is won/drawn/lost right?

Wontonimo: yeah

Wontonimo: that's the beauty of it

michaellan: so in theory... refactoring an MCTS to support another game should be easy -_-

michaellan: im having a tough time rewriting my TTT into UTTT

Wontonimo: ah, yeah

Wontonimo: perhaps first try rewriting your TTT to have the MCTS part in a different class than your TTT part

Wontonimo: and your MCTS just have a pointer to the TTT class, and all TTT related code and calculations hidden within TTT

Wontonimo: I actually have them as different files locally, and use a python script to concat them together for submitting to CG

michaellan: wow thats genius

michaellan: the one thing im wracking my brain over is

michaellan: i'm wondering if it's worth abstracting the game logic out of both the rollout/playout and node-expansion functions

michaellan: since they're super similar in that they both calculate next possible moves

michaellan: for TTT it was trivial so i didn't bother

michaellan: oh also, for UTTT: do you have a bool array of length 9 describing which sub-squares are already won/lost/drawn?

michaellan: i have that right now but i'm wondering if its worth doing since its trading memory for speed

Wontonimo: i found rollout and expansion to be very different. don't see how combining them would give any benefit

Wontonimo: i have 3 bitboards for player1 won, player2 won, tie

Wontonimo: available positions is 0b11111111 ^ (p1 | p2 | tie )

michaellan: wow im dumb

Wontonimo: so, i have a class for MiniBoard, which is the 3x3, and a class for the above which is identical to MiniBoard other than it keep track of ties and the win calculation returns correctly

michaellan: wdym by win calculation returns correctly

Wontonimo: then the UltimateBoard class which has 9 miniboards and 1 of the modified like above

Wontonimo: the modified version with ties doesn't just return win/loss if there is a line. If there is no line and no spaces left, it returns a win for the player with the most squares

Wontonimo: you can get rid of the "0b11111111^" if your p1 p2 and tie bitboards are inversed (0 for used , 1 for free)

Wontonimo: and you used & instead of |

Wontonimo: i don't do that, but i've been thinking about making the change for optimization. it does have some drawbacks elsewhere, so i've not been motivated

oxydowe: Hi, is there any reason python walrus operator cannot be used in code golf unless it is parenthesized?

michaellan: yeah, Wontonimo, like for ties

michaellan: i think

michaellan: oxydowe, are you speaking more generally than just in code golf?

michaellan: probably order of operations-related?

oxydowe: xxd if I remember correctly, in clash of code I can write a:=2 but in code golf I need to (a:=2)

Astrobytes: Have you tried the egg man operator?

Default avatar.png akhil2310: yooooooooooooooooo

oxydowe: my bad, also in CoC a:=2 is invalid syntax and needs parenthesis

Wontonimo: koo koo kachoo

Wontonimo: https://img.devrant.com/devrant/rant/r_1488399_4E12W.jpg

Andriamanitra: @oxydowe it depends on context, you can't write a:=2 on top level, it should be fine inside most expressions though

Astrobytes: Wontonimo: At least someone got it :)

oxydowe: ok, I just discovered you can write l=[a:=0] but you cannot write l[a:=0] and you need l[(a:=0)]... wow

7-4: rap me in plactic and make me shine

7-4: i know u can fus me and u

Astrobytes: 7-4: Are you unwell in some way?

Default avatar.png BAruch: {

Default avatar.png dsfjkfdls: huihuihiuhuihi

Atanasius: wkwkwkwk

Andriamanitra: @oxydowe that's probably because when you're using [] as indexing operator : has a special meaning (slice)

Swyfti: username change lmao

Default avatar.png HeroicRobot_cf06: Sup

Swyfti: my current username resembles my real name

Default avatar.png HeroicRobot_cf06: if(1+1 == 3)

Wontonimo: swifty ?

Swyfti: yes

Swyfti: that is somewhat my real name

Swyfti: not exactly

Swyfti: somewhat

Swyfti: by the way im a master now so... Horray!

Wontonimo: congrats !

Wontonimo: From this day forward you will be known as Master Swyfti (on CG, if we remember)

Swyfti: thank you

Swyfti: i am starting ghostbusters any tips people?

BlaiseEbuth: Catch the ghosts

Swyfti: no like the algorithm

Astrobytes: Ghost Catching Algorithm #42

Astrobytes: :P

Swyfti: POG

BlaiseEbuth: You can take a look to the Spengler-Venkman algorithm.

Swyfti: I KNOW IT NOW

Swyfti: print('42')

TobiasA: if(thereIsGhost):catchGhost()

Swyfti: well you also have to cosider abilities

eulerscheZahl: don't catch the ghost. catch the tryangles

Swyfti: i catch the tryhards

Swyfti: the tryhard ghosts

Swyfti: now f this imma start a 2 hour coding montage

eulerscheZahl: finally my MCTS solver seems to be working

Wontonimo: in all seriousness, i have a basic bot on that. It keeps a fog of war map

Wontonimo: the busters try and find an unexplored area and go there

TobiasA: i like watching MCTS solver seem to work

Wontonimo: it shouldn't "seem to work"

TobiasA: my minimax seems to work only with two players in tron

BlaiseEbuth: I maintain the Spengler-Venkman algorithm is a good choice for CB.

Swyfti: my ai is insane

Swyfti: its too insane

Swyfti: its like playing atomic chess on lichess.org

eulerscheZahl: Wontonimo i like how our evaluations are almost in perfect sync https://www.codingame.com/share-replay/575179114

eulerscheZahl: adding up to 100%

eulerscheZahl: the solver is still wrong

eulerscheZahl: (╯°□°)╯︵ ┻━┻

eulerscheZahl: nevermind, was watching an old replay :D

TobiasA: that looks perfect in my eye

eulerscheZahl: you are the questionmark face, aren't you? you changed your avatar

TobiasA: yea

TobiasA: do you recognize my pattern of speech:laughing:

TobiasA: oh my name:no_mouth:

Wontonimo: eulerscheZahl , I'm not happy that my C4 code jumps from 54% to solved in 1 turn, as you can see from that replay. Something fishy is going on in my code i think

TobiasA: isn't solved good?

Wontonimo: yeah, it's good, but i'd like to see the previous move be around 80% or 90%... just kinda fishy that it jumps

Wontonimo: i don't check for instant next move win conditions in rollout, which may help

Wontonimo: i also don't handle ties in any sensible way in the solver

jacek: 54% to win isn't weird if opponent made a mistake

jacek: beware of 54% to lose

jacek: or 0.8 to lose for some my bots in some games ;s

Wontonimo: https://www.codingame.com/replay/575179114 after move 33 it was a win for me.

Wontonimo: but my bot only reported a 54%. looks like i have me a unit test

ReiKiriyama: Im trying Amazons puzzle but I don't get it why d3a1h7 is invalid move when color is 'w' and field d3 is occupied by my white queen?

BlaiseEbuth: Dura lex sed lex...

ReiKiriyama: (a1 and h7 is empty)

Nox05: std::getline(std::cin, Str)

eulerscheZahl: MCTS: rank 23 MCTS with solver: rank 23

eulerscheZahl: sigh

eulerscheZahl: at least i have something where I can put my bandas sim into

jacek: ReiKiriyama do you have replay or screen?

ReiKiriyama: https://www.codingame.com/replay/575182215

martinpapa69: at least you didnt completly break your bot with solver

jacek: you cant move from d3 to a1

BlaiseEbuth: On this chat mods complain about their code, and trolls help users...

ReiKiriyama: haha ah I forgot that it can only move like a queen. Thanks for that hint

jacek: ReiKiriyama its indexed from 1

TobiasA: /me is waiting for BlaiseEbuth to complain about his code

BlaiseEbuth: I'm not a mod.

BlaiseEbuth: I'm a troll in disguise

TobiasA: help me with my code

BlaiseEbuth: I don't want to compromise my cover.

TobiasA: understood

jacek: are you trolltech ceo

Swyfti: trolltech?

Swyfti: can i join that company

Default avatar.png Litcatdad: is trolltech looking for unpaid and lazy interns?

martinpapa69: stop trolling, this chat is for serious topics

AllYourTrees: i love trolling

BlaiseEbuth: And normal users take themselves for mods...

martinpapa69: my dad is a mod, dont make me call him

Default avatar.png enzoROD: XD

BlaiseEbuth: martinpapa69... I'm your dad.

martinpapa69: hi dad, new account ?

Default avatar.png Moontasir: hello :)

BlaiseEbuth: Yup. Need to change a little

AllYourTrees: how deep are people exploring in C4 with mcts?

Scarfield: you mean EPT depth? so far im just doing standard mcts - untill game over

AllYourTrees: like how many levels are there in your tree at the end of one of your turns

AllYourTrees: the max depth that node selection goes

Scarfield: max depth, potentially until draw - full board

Wontonimo: i'm adding that to my bot, just a sec AllYourTrees

Wontonimo: https://www.codingame.com/share-replay/575190480

Wontonimo: it's the number after the k

AllYourTrees: interesting okay thats about the same for me, i was surprised at how deep it gets

AllYourTrees: though i guess once a couple columns are full there aren't very many actions?

Wontonimo: 19 on first move, 13, and 27 near the end

AllYourTrees: i wasn't sure if i had a bug that was pruning too much lol. ty Wontonimo!

Scarfield: oh you at rank 11, nice :muscle:

AllYourTrees: :D i definitely recognize your icon scar lol

Scarfield: club top 300 ;)

AllYourTrees: :joy:

Scarfield: euler and wonto dropped my rank a bit though :'(

AllYourTrees: yeah there seems to be a lot of activity on C4 lately

Wontonimo: it's a pretty straight forward port of UTTT, i think that's part of the draw

Wontonimo: if you skip all the fancy c4 specific tricks

Scarfield: currently im just cleaning up the mess of a bot i made a few months ago. the other day i realised i used the wrong mask when checking for one of the diagonals, gained about 30 ranks fixing that xD

jacek: general mcts tricks apply there

Wontonimo: i'm not saying it's "easy" or quick, don't get me wrong. i'm just saying that it's less work than starting from scratch if you already have uttt

Scarfield: i still start from scratch, my scripts improve slightly every time

jacek: time for ultimate c4

AllYourTrees: :scream:

Scarfield: oO

Wontonimo: 9 c4 tables, you play on the one where your opponent played the col of last

darkhorse64: 567 moves max, it's not that too much for CG constraints

Wontonimo: I really doubt it would be more than 256 moves for 99% of games

martinpapa69: sound like a perfect game for minimax

darkhorse64: If you switch to 6x7 with 7 boards, game duration looks more reasonable

Wontonimo: anyone able to help me understand what nonsense happened here ? https://www.codingame.com/replay/575191649

martinpapa69: your bot decided that its a guaranteed lose ?

Wontonimo: what's weird is that my bot seemed to think things were going really well, and tric knew he won way ahead that my bot had a clue

Q12: are you using MCTS?

Wontonimo: sigh, guess i'm gonna have to read the c4 how-to afterall

Wontonimo: MCTS + Solver + mem pool

Scarfield: you do have steal implemented right? only obvious bug i can spot

darkhorse64: + bitboard

Wontonimo: yeah, i got bitboard.

darkhorse64: avx ?

martinpapa69: mathematics?

Astrobytes: prune array?

Wontonimo: oh man, i forgot about math

Wontonimo: what's the steal but you see Scarfield?

Scarfield: Prunebytes

Astrobytes: Scarfarray

Scarfield: xD

Scarfield: just the only thing i thought could be an obvious mistake, that your bot has a bug when first move is "stolen"

Wontonimo: on move 17 it would have tried to "complete" col 1 if that was the case. Thanks though, I hadn't really double check that section until now

jacek: maybe i should come back to c4? would you like that

Q12: your bot should have block the opponent in the end of the game, I think

Wontonimo: I see how the prune array would help Astrobytes

Scarfield: any news on your back astro btw?

Wontonimo: lol Q12. wouldn't have mattered. he would have won 2 moves after that

Scarfield: ^

Q12: ohh, I see it know :sweat_smile:

AllYourTrees: does everyone using solver just prune solved nodes completely?

jacek: still you could choose the longest lose

Astrobytes: Scarfield: nope. Still waiting on that scan. We have millions of people on waiting lists here now.

Scarfield: if the tric says he has won, its probably true

jacek: a tiny chance opponent wouldnt see his win

Wontonimo: yeah, you are right jacek. that is an issue of my current mcts

Scarfield: damn astro, sad to hear that. had hoped you would have been scanned by now

Astrobytes: Yeah. It's really a living hell tbh. I have good pain tolerance but ffs.

Gabbek: Hello everyone :)

jacek: ohai

Astrobytes: Hello Gabbek!

AllYourTrees: wait astro what happened??

Astrobytes: Long story AllYourTrees

Gabbek: Hi, hi! I'm trying to catch up - something's wrong Astrobytes?

Astrobytes: For over a year now yes lol

Wontonimo: AllYourTrees, I don't prune solved.

Gabbek: Yikes... I should chat more often :(

Astrobytes: Nah. I'm ok just got bad bones.

jacek: drink more milk

Astrobytes: I don't have a calcium deficiency.

Scarfield: problem solved

BlaiseEbuth: Garlic cloves got him... :(

Astrobytes: That was the hand

Astrobytes: *hand/wrist

Astrobytes: That still hurts a lot some days btw

jacek: back or wrist

Scarfield: you need a skeleton transplant

Astrobytes: hand

Astrobytes: Pretty much Scarfield

jacek: buy one of those boobs mousepad, they work wonders

Q12: did you consider in your solver states in which your opponent can't put in a column because you will won if he will? like turn 15 Wontonimo

Astrobytes: ?

jacek: for your wrist

Astrobytes: Wrong wrist

Scarfield: preferably with mlp design

jacek: hmm they exist https://ae01.alicdn.com/kf/HTB1Y5jlXI_vK1RkSmRyq6xwupXaB/my-little-pony-mouse-pad-900x300mm-pad-to-mouse-long-notbook-computer-mousepad-cute-gaming-padmouse.jpg_q50.jpg

Scarfield: i am an organ donpr, maybe i can specify my bones are belong to yo astro

Wontonimo: yeah Q12, i think that's what prune array is that astro was referring to

Astrobytes: I'm an organ donor too, swapsies

BlaiseEbuth: All your bones are belong to us

Scarfield: im not surprised jace, not checking the link though xD

Scarfield: nema

Astrobytes: Wontonimo: Nah. Prune array is part of cegimax. Just a CG meme :P

jacek: ceg meme

Wontonimo: ah ... colour me uncultured

Astrobytes: that too

Astrobytes: It was a while ago Wontonimo

Gabbek: I was jealous of legend optimization badge you guys have... so I've decided to push it from silver :p reached 2% on optimization for gold and then saw the next task -- 2% on cold golf... and all of my will power is gone :P

Gabbek: what's the final task for legend optimization badge, I wonder?

jacek: 2% on code golf, then nothing

jacek: final flag will give you 500 xp

Gabbek: oh, so 2% on code golf is final? That's nice to know, thanks

eulerscheZahl: Gabbek there you go https://clemg.github.io/pythongolfer/

Gabbek: Good day, eulerscheZahl!

Gabbek: How's going, what are you up to lately? :)

eulerscheZahl: reclaiming #1 on the global leaderboard

Scarfield: wait, when did db dr take 2nd?

eulerscheZahl: he was first for a while

BlaiseEbuth: dbdr?

Gabbek: nice, congrats - I was trying out code rings lately, really fun... but those top scores are pretty amazing - I've run out of ideas, maybe I'll try again in few weeks

Gabbek: The frog will rule us all :)

Scarfield: an tric on 4th, seems like the global leaderboard has changed a lot the past few monts

Gabbek: wasn't there some kind of bugged user which was #1 on the leaderboard? I remember talking about it with Zylo few weeks ago

eulerscheZahl: my code of the ring is a beam search done offline (validators are testcases with a=z, b=y, ...)

eulerscheZahl: testing all possible chars. then making sure that i don't print the wrong thing

Gabbek: interesting - I've noticed that might be the case with my basic solution when I've implemented incrementing pattern detection and firstly done only positive ones

eulerscheZahl: loops really help. the beam found some interesting ones

Gabbek: any double loops? I couldn't figure out any useful ones

eulerscheZahl: i don't have nested

Gabbek: but yeah, surely the search is the way to go - guess I'll try to do something like that, but I'm not really sure how to go about it, will be fun experience :)

eulerscheZahl: https://www.codingame.com/share-replay/575197739 that's something i wouldn't see if playing by hand

eulerscheZahl: hm, somehow it stops playing when i open it in a new tab

eulerscheZahl: btw that game has an easter "egg". or more like easter bunnies

eulerscheZahl: when you print a comma

Gabbek: hmm, same issue after turn 12 or so

AllYourTrees: hmmm

eulerscheZahl: i'll generate a new replay

eulerscheZahl: https://www.codingame.com/replay/575198194

eulerscheZahl: same bug

AllYourTrees: just realized i've been selecting actions based on avg value instead of num visits this whole time

AllYourTrees: not sure how much that matters lol

Gabbek: nice pattern, I like it! Indeed a good one; wouldn't notice it by hand myself for sure

eulerscheZahl: those numbers are closely correlated, doesn't matter

Gabbek: I'm guessing that the long sentence has the biggest savings - do you know how many characters you had on the final test?

eulerscheZahl: on "24 long spell"?

eulerscheZahl: 1184

eulerscheZahl: and no loops at all in this one

eulerscheZahl: i allowed loops but my search opted against

Gabbek: I would like to check mine as well but having issues with my internet at the moment, guess I'll be check to check in a minute or two

Gabbek: 1278, a lot of jumping back and forth - only one loop to initialize all runes to O

eulerscheZahl: maybe i should try that too and hardcode my start for the search to continue

Gabbek: you could try to set all initial runes to O and run the search - maybe it'll find a better solution; my loop to initialize all runes is 27 characters

eulerscheZahl: let me see if i can easily tell the search that i want to init my memory instead of printing

eulerscheZahl: no, that looks complicated to add

eulerscheZahl: and I last touched that code in january

Default avatar.png shayah_goba: deez nutz

Gabbek: could you tell me a little bit about your beam search in code rings? All characters are actions and you interpret current solutions and if they are invalid you discard them?

eulerscheZahl: pretty much. there are only <>+-[].

eulerscheZahl: i filter a bit during generation already. like no + right after -

eulerscheZahl: or no ] without [ no . if that would print something invalid

eulerscheZahl: removing different paths that create the same state (memory relative to bilbo position, possibly mirrored)

eulerscheZahl: the current loop body must be handled too when it comes to hashing

eulerscheZahl: and a really wide beam (half a million), takes maybe 10 minutes to finish on the last testcase

eulerscheZahl: https://github.com/dbdr/codingame-validators/blob/master/bilbo.txt

Gabbek: cool, will try a bit with beam search then, since so far I've only used some patterns recognition and some loops; I've tried to make use of [>] with something like 6 letters space 6 letters space etc. -- but it didn't seem to yield good results

eulerscheZahl: [+] to clear a cell

Gabbek: yep, it's very useful - haven't found a good use for [>] sadly

eulerscheZahl: [>.] maybe?

eulerscheZahl: https://www.codingame.com/share-replay/575202004 a little longer but still a short loop

Gabbek: for [>.] you would probably need some efficient way to initialize all runes to different values which you would want to use, say for alphabet -- but that one seems to be very short anyway

eulerscheZahl: and it stops playing again

Gabbek: yep, I have the same pattern, guess beam search is yielding much better results for all tests named "spell x" - as those require the most dancing around and that's why my solution fails the most I think

Gabbek: have you played legends of code & magic with 2 lines version?

Gabbek: https://www.codingame.com/ide/demo/68194451cf54dd36cc8c817f355e5a44a06062

michaellan: It's possible to draw a UTTT game right?

eulerscheZahl: no. i already hated the 1 lane version and swore never to touch it again (maybe just too little depth for a 1 month contest, making me biased)

eulerscheZahl: i know about that version. there was even a contest about it, antisquid won some money

eulerscheZahl: ties in UTTT are possible

Gabbek: I see, I can understand your point - even 2 lanes version isn't much deeper, drain seems more useful and there's a bit more tactic, but in general it's very similar

eulerscheZahl: you didn't play the 1 month contest which was exhausting

eulerscheZahl: i was smart enough to skip the first 2 weeks and join late. still not late enough to have a full week without ideas how to improve but mental inability to just stop

reCurse: Yeah really disappointing for a 1 month contest

reCurse: Looks just good enough to make you think there's depth and then you scratch and nope

eulerscheZahl: glad that OOC worked out better

Gabbek: there's so much content... I just can't decide what I wanna do next - but I must say that I always appreciate all the insight, hopefully one day I'll be able to share some back as well :)

AntiSquid: peckman was just 2 weeks after ooc

Gabbek: greatly enjoyed OOC and code of ice and fire - but only multi versions, wasn't around for contests

Gabbek: by the way eulerscheZahl - code with me plugin is being developed for rider, should be ready in about 6 months if I'm no mistaken

eulerscheZahl: is that similar to the VS code share?

Gabbek: works really nicely in pycharm so the c# version will be great as well I think

Gabbek: I would say it's much better

AntiSquid: the trend says there's one contest less each year: https://imgur.com/a/woM9Ilj

eulerscheZahl: *live share that's how it's called

Gabbek: had a lot of issues with code share in visual studio, works a bit better in visual code, that's for sure

eulerscheZahl: did that once with illedan

Gabbek: yeah - *live share, right

eulerscheZahl: i was scrolling down. but the screen content didn't change (or instantly revert)

eulerscheZahl: then i looked at illedan's screen (he was sharing on discord at the same time)

eulerscheZahl: and he was like "why is the same block of code duplicated 15 times?"

eulerscheZahl: then VS Code just crashed

eulerscheZahl: fun times

Gabbek: I tried to use VS code and visual studio versions, had a lot of issues with visual studio version - mostly with highlighting either bugging out or not working at all and having to rejoin the session every 15-20min or so, or just random disconnects, crashes etc.

elderlybeginner: in fantastic bits, throw is calculated after wizzard thrust being calculated, movement done - or before that?

Gabbek: while the pycharm "code with me" experience was insanely smooth, same with intellij

eulerscheZahl: i never tried pycharm

eulerscheZahl: i only that the IntelliJ community edition

Gabbek: elderlybeginner - wish I could help, but I haven't touched fantastic bits yet at all

eulerscheZahl: works fine overall. sometimes the typing is a tiny bit laggy

AntiSquid: need more memory

eulerscheZahl: i have touched fantastic bits years ago, no memory

jacek: AntiSquid why so low in amazons

AntiSquid: idk

AntiSquid: forgot what that even is

eulerscheZahl: https://github.com/SpiritusSancti5/codinGame/blob/master/Referees/Fantastic%20Bits/RefereePuzzle.java good luck

eulerscheZahl: just 2.7k lines to dig through

AntiSquid: do you pay for pycharm Gabbek ?

Gabbek: there's a quite nice deal on jetbrains - if you know jetbrains academy you get all products license for 1 month for free, which can be replenished every month

Gabbek: if you join* and solve 3 topics

jacek: is this like winrar license

eulerscheZahl: i prefer free and mostly open source software

eulerscheZahl: that's also why i use linux over windows. and because i can use it more efficiently

AntiSquid: winrar doesn't autoupdate does it ?

Gabbek: I do pay for pycharm, but it's mostly because I really like how they handle support and design their stuff - also a big fan of jetbrains academy, not gonna lie :)

elderlybeginner: Thanks eulerscheZahl There are not many bots I'm higher they you, so mayby you should give it a second try ;)

eulerscheZahl: i can assure you that i could counter you if i would try hard enough ;)

AntiSquid: jetbrains seems to do heavy advertising, there were lots of free entry raffles for 1 year free license (in my area) Gabbek

jacek: https://www.wykop.pl/cdn/c3201142/comment_1594312643ZJjYcJUFWIf8Tw1sLQExQy.jpg

eulerscheZahl: that's winzip jacek

eulerscheZahl: totally off topic

AntiSquid: the weird windows stuff all looks the same anyway

eulerscheZahl: jetbrains also organizes Kotlin Heroes every few months on codeforces

Gabbek: I like when you're a long lasting customer and you pay less - that and how jetbrains academy is evolving, always something new to learn, it's quite chill place to do some refreshments or learn a bit of java for fun (I pretty much don't know anything, but nerchio uses a lot of java -- and we sometimes write something together, so it's fun!)

jacek: i like ketchup

elderlybeginner: I guess you could have done it with minimal effort

eulerscheZahl: i like spaghetti napoli

AntiSquid: do you use the paid version of intellj over the community one? and what for Gabbek ?

reCurse: Jetbrains makes good products but every time I try using them it feels so bloated :/

eulerscheZahl: ReSharper

jacek: sound javaish

reCurse: Well good news for them, visual studio is on 64 bits now so they can eat away all the memory without crashing now

michaellan: how did you guys print out debuggign boards for UTTT

michaellan: im thinking of using colors to represent wins on the big board

Wontonimo: cerr

michaellan: i meant ilke how did you print them out

eulerscheZahl: not for UTTT but usually i draw .png files

Gabbek: AntiSquid I'll be honest - I only use pycharm paid version but I don't really use paid features much, think rider with resharper and some other tools would be more useful - like dotpeak and dotmemory if someone would write a lot of azure functions for example

Wontonimo: i'll send you my code xxd

Wontonimo: just the print

michaellan: hmm im actually half done with writing my own

michaellan: thanks though

Gabbek: I'm curious - any thoughts on rider vs visual studio? Whenever I use visual studio I feel like my PC is about to explode... :(

reCurse: Visual Studio anytime

reCurse: Not that it's not bloated but less so I think

Default avatar.png leftnut: reading these problem take some getting used to. Took me 30 minutes to figure out what to do for Batman

AntiSquid: i didn't even try amazons seriously: https://www.codingame.com/share-replay/575128405

good rank jacek . are you using your usual approach ?


jacek: eeyup

jacek: NN ftw

BlaiseEbuth: What happened 18 days ago? I'm currently looking to old puzzles I solved years ago, and there's many where my C++ solution was re-submitted 18 days ago... :thinking:

jacek: oO

Westicles: Thor golf recalc was 18 days ago

Astrobytes: The Day of Mjölnir

jacek: thursday?

BlaiseEbuth: Ah yes. So this is perfectly logic that some old solutions to medium puzzles were submited back.

Gabbek: Very wild guess - do you have auto-submit turned on? Maybe 18 days ago solutions which were not visible were re-submited, for some reason?

BlaiseEbuth: Auto-submit?

Gabbek: I think it's in settings, it basically auto-submits your solution to the problem so you don't have to do it manually

Gabbek: let me have a look - haven't touched it in a very long time

michaellan: How do i calculate winrate in MCTS?

AntiSquid: auto-publish

jacek: win / visits

michaellan: (for entertainment purposes)

michaellan: oh, seriously?

michaellan: then my winrate is about 10% only?

BlaiseEbuth: Publish you mean Gabbek?

Gabbek: ah yes, sorry - publish, that's correct

michaellan: I'm... scared right now. Just turned my TTT MCTS into UTTT MCTS, cleaned up compiler errors... and it _seems_ to work

jacek: what rank

michaellan: wait havent tested on CG yet

Wontonimo: well publish and let's look

Wontonimo: :D

michaellan: only 100ms to make a move...

Wontonimo: yuppers

michaellan: probably better than my current strategy of randomly choosing a move

michaellan: oh nooo i have to take in CG input, a most daunting task :cry:

Wontonimo: lol

jacek: oh my

Wontonimo: alright, i gotta go. laters

michaellan: my bot consistently draws against itself so i think thats a good sign

michaellan: have a good day

Gabbek: good night Wontonimo

xxd: can i ignore taking in the input

xxd: im not sure how that would work

jacek: the input is opponent's move

xxd: yeah but theres a bunch more lines

jacek: how can you sim without the actual game

xxd: aftter that

Gabbek: you have to take the input as it includes opponent's move

xxd: yeah i am wondering if i can just take first line

jacek: you can ignore the possible moves since you make them yourself

jacek: you still need the cin, input() or whatever, just dont use them

69razer69: talking about breakthrough

Astrobytes: what about breakthrough?

juice0: i think he was wondering if they were just talking about breakthrough, regarding ignoring inputs

Astrobytes: This is why the '?' exists.

Gabbek: '?' seems to be one of most useful characters, so much meaning in just one symbol :D

Astrobytes: hehehe not wrong

juice0: yes but you have to hold that other key down to do it. just playing devil's advocate here but that's a lot of work

Astrobytes: hah!

Westicles: I think he was talking about today's shocking news

xxd: huh

TobiasA: in a youtube video i just watched i found out that typing "import this" in python and running it prints a very lovely poem:grin:

darkhorse64: today's shocking news ?

Astrobytes: http://chat.codingame.com/pastebin/aef4d3b5-0954-4162-8faf-322cb0584284

TobiasA: that's the one. how deep

Default avatar.png Hawke: Is there a way to replay games in Clash of Code?? I finished my code a split second before the timer ended so I didn't get to test, but I just want to know if it works

Astrobytes: Search for it here: https://eulerschezahl.herokuapp.com/codingame/puzzles/

BlaiseEbuth: "Beautiful is better than ugly."

**BlaiseEbuth drop python.

BlaiseEbuth: "Explicit is better than implicit."

**BlaiseEbuth take back python and drop it again

BlaiseEbuth: Fix your typing you fool

Westicles: https://www.medrxiv.org/content/10.1101/2021.08.06.21261707v1

Gabbek: Interesting link you've got there in your bio, BlaiseEbuth - guess I'll read some of those :)

BlaiseEbuth: :flushed:

Gabbek: CGStatementDL - I was thinking about creating something which would download all available testcases and maybe setup a project or something

Gabbek: because I ended up doing it manually so many times... :D

Astrobytes: "This article is a preprint and has not been certified by peer review [what does this mean?]. It reports new medical research that has yet to be evaluated and so should not be used to guide clinical practice"

Gabbek: I know it's about downloading statement, but just thinking out loud

Westicles: Mayo clinic is solid..

Astrobytes: "has not been certified by peer review"

Astrobytes: Everyone makes mistakes. I haven't even looked further than that statement.

BlaiseEbuth: I don't. But I don't test vaccines.

Astrobytes: What's the 'big news' part anyway Westicles?

Astrobytes: *shocking news sorry

Westicles: The results?

Gabbek: good night everyone, have a good one!

Astrobytes: gn Gabbek

Astrobytes: I was hoping you were going to summarize them Westicles since I'm doing about 40 other things right now :P

Westicles: Well, we don't want to rush to conclusions. There are a a million news articles out there with better interpretation than I could give

ja_fica: MSmits, you there=

ja_fica: ?

reCurse: "don't want to rush to conclusions" "a million news articles out there" :thinking:

reCurse: Sounds contradictory

Westicles: It is big news

ja_fica: Imagine this

reCurse: News articles are mostly about rushing to conclusions these days

ja_fica: In C++, we have 2 functions optimized with O3 and inline and they are declared just one after the other, nothing in between. Changing the order of declaration should impact the performance of any?

reCurse: No

ja_fica: https://aipuzzles.com/learn/performance - see random generator

ja_fica: it happens

ja_fica: experiment trade the 2 random functions

ja_fica: It has the same behavior in my computer as well

ja_fica: You can even try to have the same logic in both functions, the first function declared will have a higher performance... it makes no sense

ja_fica: My guess is that inlining is not properly conceived

reCurse: "With this 3 lines of code in the beggining of the script we can spare some time and make a more readable code along the rest of the script." I will resist commenting on this

reCurse: Can you post a proper example on godbolt?

ja_fica: forget about that, just copy paste the code of the random generator

ja_fica: the last module of that page

reCurse: Can you make a godbolt?

ja_fica: Never heard of it, let me try

reCurse: godbolt.org

reCurse: Use the right compiler and options, inspect assembly, you can even share it here I'm curious to take a look

ja_fica: But have you tried to swap the 2 functions?

ja_fica: Im in there now, I will let you know what i can find

reCurse: It's going to be much simpler if you do it than if I try to figure out what you did

ja_fica: https://paste.ofcode.org/i9AL6BbCFyAbezLnmf4LXS

ja_fica: godbolt.org confirms...

ja_fica: but I can't understand where it fails..

ja_fica: I don't understand enough of assembly

ja_fica: I created a clean script

ja_fica: reCurse, I would like your help understanding this

ja_fica: https://paste.ofcode.org/i9AL6BbCFyAbezLnmf4LXS

reCurse: So you swap fastRand1 and fastRand2 in code?

reCurse: Their order?

ja_fica: Yes

ja_fica: It makes no sense

ja_fica: Tell me when you believe me plz, im not such a noob in C++, but i can't figure this out

Default avatar.png Pro-grammer: nice

Default avatar.png Pro-grammer: wont my first clash of code

Default avatar.png Pro-grammer: won*

reCurse: That's an interesting one indeed

ja_fica: told you :)

AllYourTrees: do you swap the order in the main function too?

ja_fica: it makes no diffenrece

reCurse: Hah that's a gcc quirk

ja_fica: it only affects chaning the declaration, I guess is a cache miss problem

reCurse: clang behaves like you'd expect, no difference

reCurse: So probably some gcc quirk, wouldn't be the first one

reCurse: It decides to inline the first one it encounters in declaration but not the other

reCurse: clang inlines everything

ja_fica: so its a gcc problem, i would say bug

reCurse: I'd say quirk

reCurse: It's not erroneous behavior, optimization is left to the compiler

ja_fica: damm, so I can't force it?

reCurse: Sure you can

ja_fica: I really would like both of them inlined

reCurse: __attribute__((always_inline))

reCurse: Just be careful not to abuse it

ja_fica: yes, if the code gets to big it will increase cache misses

reCurse: Or just use a proper compiler :P

ja_fica: it didn0t work :(

reCurse: ? worked for me

ja_fica: can you paste the code?

reCurse: https://godbolt.org/z/4M8aKMEhx

ja_fica: It must be a compiler issue as that code is not running in my computer with gcc

reCurse: Which version of gcc is that?

ja_fica: 7.5.0

ja_fica: i will just update it

reCurse: Uh, weird compile error, seems like a bug maybe

reCurse: Code is not using target specific stuff as far as I see

ja_fica: It worked

ja_fica: version 7.5 is no good

michaellan: 7.5 is not the most recent version

mkkhell: whats the issue?

ja_fica: https://paste.ofcode.org/i9AL6BbCFyAbezLnmf4LXS

ja_fica: changing the declaration order of the functions will change its behavior

mkkhell: you're probably more experienced than me

mkkhell: but i dont see what could be the problem

mkkhell: sorry!

k2xl: CoC broken?

reCurse: My chess engine is so insanely aggressive, I have no idea why it's so hellbent on sacking all the time

xxd: I am getting probably overly annoyed at trying to convert 9-squares 9-sub-squares to the row,col format for UTTT

reCurse: That should be an easy puzzle

xxd: :cry:

xxd: a naive, bitboarded MCTS for UTTT is around what league?

RaulButuc: I still recall it being a bit unpleasant to code, had tons of fun with challenges like LOCAM

xxd: ah, there are just so many things to keep track in LOCAM i sorta am putting that one on hold

xxd: what type of bots are for imperfect information games, what did you use?

RaulButuc: True, idk why but that one matches my style more than some of the other bot challenges around here :D

RaulButuc: for LOCAM I ended up using monte carlo

xxd: but how do you siimulate opponents moves?

xxd: oh nvm

xxd: is your simulation just all the things you can do on your turn, randomized?

xxd: and you have aan evaluation function for the output of your turn

RaulButuc: well in this sort of game you dont really "simulate it" per se

RaulButuc: sort of

RaulButuc: i went for brute force

RaulButuc: performed better than randomised

xxd: hrmm :thinking:

RaulButuc: you have to set a narrow time limt

RaulButuc: tweaking the formula for the evaluation is also a bit of a hit and miss :D

xxd: guys

xxd: i'm running through my UTTT games in bronze league

xxd: and I haven't lost a single match yet

xxd: i want to thank wontonimo so much

RaulButuc: nice progress, congrats :)

xxd: MCTS is fun when it finally works :)

xxd: thanks

RaulButuc: indeed :D

xxd: man i put so many hours into this haha

xxd: i wonder how necessary bitboarding was

xxd: i assume its pretty important

reCurse: If you don't reach legend probably not important

xxd: oh

RaulButuc: im stuck in higher gold on UTTT and I havent used it

xxd: after i write MCTS, its just a matter of optimizations to it right? i will also try to implement solver

reCurse: It's all about optimization until legend, and a complete waste of time after

xxd: :(

xxd: recurse what is your favorite bot programming game

reCurse: I'd say fantastic bits but platinum rift 2 is also criminally underrated

RaulButuc: hmm I meant to give fantastic bits a try last week but got distracted lol

RaulButuc: oh wow you're 1st place on that one as well :)

xxd: yeah recurse is my inspiration

reCurse: Not a good idea

xxd: oh...?

xxd: heh

Astrobytes: something something bitstream something something ;)

Astrobytes: Don't listen to him xxd, feel free to be inspired

Astrobytes: :P

reCurse: Rude

Astrobytes: *Take his comments with a pinch of salt ;)

RaulButuc: That's inspiration without consent, we're not in the early 2000's anymore guys

xxd: sorry.. -_- recurse may i please be inspired by you

RaulButuc: :)

xxd: honestly all the regulars here are so awesome

xxd: i wish i will one day become a regular too :)

xxd: except for blaise, hes a meanie

RaulButuc: lmao

xxd: just kidding

Astrobytes: No you're not.

Astrobytes: How's chess recurse?

reCurse: Progressing slowly

reCurse: My engine is insanely aggressive to the point of recklessness

reCurse: No idea why

Astrobytes: Because it knows it can afford to be?

reCurse: Makes for spectular wins and blunders though

xxd: are you using MCTS or minimax for it, may i ask

Astrobytes: *thinks

reCurse: It's more gambling than calculating

Astrobytes: gotcha

reCurse: 95% of my attempts at modifying/improving mcts were either failures or dramatic +0 elo

Astrobytes: the other 5%?

reCurse: Pretty good

reCurse: Should breach the 26xx soonish

Astrobytes: Very nice

reCurse: I'm very tempted to buy a new cpu to have more cores for faster testing

reCurse: But alder lake is due out later and possibly wreck everything

reCurse: :/

Astrobytes: Didn't you already do that?

reCurse: No I resisted

Astrobytes: Oh wait no, that was Smits

reCurse: If the leaked bench is real it's a real destroyer

Astrobytes: I think possibly waiting is a good idea

Astrobytes: Yeah, from what I've seen

reCurse: Well there's also the stock gamble

reCurse: sigh

Astrobytes: Right

Astrobytes: Gotta bite the bullet at some point though

reCurse: Oh it's definitely this one or rocket lake

reCurse: cpu is 4 years old now ugh

Astrobytes: No comment on my potato.

Astrobytes: On that note, getting late here. Shall catch you later man, take care

reCurse: bb

xxd: The gold achievement for AI is going to take a while...

xxd: The demo video for CSB looks like humans playing... thats crazy

Wontonimo: you don't need all that fancy stuff to get into legend

Wontonimo: for CSB

xxd: alas

xxd: i guess that just means im horrendous at it

juice0: you're in the horrendous league for CSB too?

michaellan: yup

Default avatar.png Xiazaoan: Excuse me, does anyone know how to "prove that you are not a robot" in code conflict?(thanks!)

juice0: well that sure sounds like a question a robot would ask

xxd: ha

xxd: not sure what a code conflict is

xxd: does that mean you stole someone else's code?

Default avatar.png achen318: henglo

Default avatar.png theprogrammingguy: Wait it's all overstack copy-paste?

Default avatar.png theprogrammingguy: Always has been...