Chat:World/2021-05-23

From CG community
Jump to navigation Jump to search

Westicles: Oh, no it is the next update that does this

nam4.nguyen: I heard that C++ is the best way for beginners to start problem solving

nam4.nguyen: and it's not that hard when u get used to it

nam4.nguyen: and prepare beforehand programs

BlackDereker: I think Python is one of the most beginner friendly

BlackDereker: you don't have to care about strong typing, pointers and memory management

BlackDereker: and Python have a lot of builting functions and libraries

BlackDereker: builtin*

BlaiseEbuth: Yup. Best way to not learn how not to think, and believe you can code without any comprehension of the 'behind'...

BlaiseEbuth: There's one 'not' too many in this sentence... :thinking:

circular17: VB.NET is the best for beginners, things are explicit like Property Function New etc.

BlaiseEbuth: :rofl:

circular17: Though for clash of code, Ruby is the best :p

Default avatar.png IT8: @cicular17 same; ruby is most time much more efficient

BlaiseEbuth: Bad languages are good to do bad activities... Logic.

nam4.nguyen: Undeniable python is so friendly. But in case of problem-solving, those thing like strong typing or pointer is not that difficult

nam4.nguyen: and I like strong typing cause I can easily control what I'm working with

BlackDereker: python have hint typing

JohnCM: is ruby faster than python, or about the same

JohnCM: faster as in run-time

Default avatar.png IT8: with the new JIT in 3.0 it could be faster than python

JohnCM: i wish i could write python code but still have c++ speed

JohnCM: i now have to convert python code into c++ for runtime efficiency

Default avatar.png IT8: isn't there a project that compiles python to c++-ish code?

Miki09: cython

Miki09: it combinates python and different versions of c

circular17: python is convenient for simple problems, but when it gets more complicated, I find it not great to structure things

circular17: there are two characters to put at the end of a line in a text file : #13 and #10. The C language added to that ";"

Default avatar.png Ilovepypypy: hello

Default avatar.png idan_idan: in C: why sprintf not working good?

DaNinja: it works fine for me

Default avatar.png SABZZ_: for some reason when i hit enter it does not let me write in a new line. i have to restart the browser to solve this. any ideas what is causing this trouble?

jacek: sounds weird

Marchete: happy sunday coding :keyboard:

circular17: thanks you too :)

hypers: cheers, @Marchete, same to you

zonbita: why my language from profile not have c++?

Moldy_Lunch_Box: guys im new to this site i need some help navigating through it. i saw my friends playing a coding game on here, they were in a room of like 8 other people competing to see who will finish writing the code faster before the time runs out. how do i get to it?

Default avatar.png IT8: thats clash of code; you should get access to it when you follow the intruduction path on the homepage

AntiSquid: random timeouts

JohnCM: https://www.codingame.com/multiplayer/clashofcode

Default avatar.png tebby: hello

Legedy: helo

Default avatar.png elisaado: hello world

Default avatar.png cule: heelo

Default avatar.png Caticii: hi

Manchi_o6o7: Guys, can you give me an advice for a good programming laptop?

Default avatar.png IT8: maybe one with a CPU?

Default avatar.png IT8: jokes aside: what do you want to program on it?

Manchi_o6o7: I need an all around laptop, for university etc.

struct: hard to say without knowing the budget

Manchi_o6o7: What do you guys use, if it's not a secret

struct: I use a desktop, but is quite outdated

jacek: AMD Ryzen 7 5800X :3

VizGhar: #metoo

struct: i5-6500 :/

Manchi_o6o7: when it comes to size, what would be okey for a laptop (not to small, not to big)

struct: I think thats personal preference

struct: I hate small laptops

jacek: i have 15.6" i occasionally use

geppoz: if you want to use for programming, i think it is mandatory to have anyway an external 19" monitor

geppoz: I use a thinkpad T490 i5 , but I have an external monitor ofc

geppoz: 22" TBH

AntiSquid: what's your graphics card like jacek ?

jacek: GTX 2060

jacek: RTX

Default avatar.png Magmaflood: i5 2500k

StevensGino: I am learning Rust, where should I learn it?

StevensGino: any suggestions?

PatrickMcGinnisII: In an Iron factory?

jacek: oO

StevensGino: :(

AntiSquid: google

Greg_3141: Rust has a beginner's manual, you can read it

jacek: where are those rusties when you need them

Greg_3141: https://www.rust-lang.org/learn

StevensGino: thanks

Greg_3141: imo it's easier to learn if you already know some C/C++

Wontonimo: all hail the newest "Grand Master"

Wontonimo: (by a thread)

AntiSquid: jumped to #121 in totoro by adding an extra if, i feel so much smarter now

Greg_3141: also be aware that idiomatic Rust uses a lot of iterators and closures

AntiSquid: that game is pure skill and tests the intellect

Wontonimo: +1 AntiSquid

Wontonimo: what was the if ?

AntiSquid: forgot the ending tag

Hydrazer: fly

AntiSquid: /s

Hydrazer: s///g;

AntiSquid: well if i tell you that my eval is quite random anyway, would you still care what that 1 if was ?

jacek: yes

AntiSquid: it's for search priority between action types given certain count of trees

AntiSquid: :D

StevensGino: I know c++ and Java, so I should be ok with Rust

AntiSquid: i feel like i wasted my time searching for random shit like that

PatrickMcGinnisII: Wontonimo 500, good job

AntiSquid: gj

geppoz: hail Wontonimo ;)

StevensGino: ?

StevensGino: Who is Wontonimo?

AntiSquid: Wontonimo who do you think you are?

jacek: Automaton2000 why is Wontonimo

Automaton2000: this is my best bot ranks about 50th in gold

StevensGino: :grey_question:

AntiSquid: /kick ?

jacek: hm?

AntiSquid: then not

Default avatar.png Voudrais: Siema Jacek

AntiSquid: #pl or #polski

jacek: perl channel?

Default avatar.png SABZZ_: #py

Wontonimo: thank thanks ... stepped away for a few min.

Wontonimo: StevensGino - I am the Wontonimo

Wontonimo: maybe just "a" Wontonimo, really I don't know how many there are of me.

zonbita: wherer i can play puzzle games?

jacek: puzzles or games?

jacek: https://www.codingame.com/multiplayer

zonbita: to up level my language for my profile

jacek: then puzzles https://www.codingame.com/training

zonbita: oke tks guy

Default avatar.png justchris: hi, can someone help me understand what readline() in Javascript is?

jacek: it reads from input. if it is console application you could write something and readline() would read it

StevensGino: Hi Wontonimo, I just noticed you are the new grand master

jacek: :tada:

AntiSquid: look, there's an active D-lang bot on totoro

BlaiseEbuth: Yé! Party! :tada:

BlaiseEbuth: What are we celebrating?

AntiSquid: also arukuka is D legend

AntiSquid: BlaiseEbuth, wonto got to GM level on this site

BlaiseEbuth: Only gm? Fix it! Use my starter and go guru! ezpz

AntiSquid: :/

AntiSquid: i think it's great when the 5% are active

jacek: oO

AntiSquid: bubble-eyes doesn't get the reference

BlaiseEbuth: What do you mean? 100% of the CG's users are active... :smirk:

AllYourTrees: does anyone know what flags rust programs are compiled with?

BlaiseEbuth: Probably the Hungarian one.

BlaiseEbuth: :flag_hu:

jacek: hungarian flag?

jacek: what does it do

BlaiseEbuth: Don't know. Ask dbdr

Wontonimo: I'm celebrating my entry (and imminent exit) of "Grand Master" BlaiseEbuth . Free virtual tacos for everyone !

AntiSquid: make gulash out of the totoro critters

AntiSquid: makes *

BlaiseEbuth: Why imminent exit? Fix it!

jacek: hmm nothing in the faq about flags https://www.codingame.com/faq

Wontonimo: i'm 500th, by tonight I'll be out because of CoC decay and other similar things. Got no time to do anything about it for the next couple days. But, "I'll be back"

AllYourTrees: is there any way we can submit a PR with some flags or something?

Wontonimo: PR?

AllYourTrees: pull request on like github or something

BlaiseEbuth: na

Wontonimo: not for CG stuff, but definitely for the community git pages

Wontonimo: it's there a way to add compiler hints at the top of your rust file like there is in c++ ?

jacek: #pragma?

Wontonimo: yeah, like that

jacek: does rust need it tho?

Wontonimo: AllYourSaplings was asking

AllYourTrees: there is a #[target_feature()] thing that im looking into now

AllYourTrees: like there's one for popcnt

AllYourTrees: and leading zero count

AllYourTrees: idk if it makes a difference though lol

AllYourTrees: there's also flags for the compiler that may enable them by default?

AllYourTrees: thats why i was wondering

Wontonimo: cool, share your findings if you discover something concrete

Wontonimo: :wave: bye

AllYourTrees: :wave:

AllYourTrees: do the CG machines support AVX/SSE instructions?

jacek: yes

AllYourTrees: ty

BlaiseEbuth: Or perhaps the flag is the Czech one :flag_cz:, and so you have to use #Praguema

derjack: :door:

BlaiseEbuth: You're upside down pony...

jacek: derpy?

jacek: pushing up your main. ban.

AntiSquid: did you know the author of berserk manga died?

jacek: slowpoke

philRG: hello, I am playing on dice-duel puzzle (still in wood 2), did anyone notice any slowness in the gpu rendering engine?

AntiSquid: i brought it up late in chat, knew days ago, you didn't mention it at all jace

jacek: philRG dice duel is resource hungry anyway

jacek: yes i did

AntiSquid: i feel a slight slowness on a good pc :D philipplenk

AntiSquid: philRG

AntiSquid: sorry philipplenk pinged wrong guy

philRG: ah ok well my hardware is pretty old (2011)

jacek: mine is 2020/2021...

philRG: and it is an IMac

jacek: :scream:

AntiSquid: does it smell crispy at all ?

philRG: that's bad? :-D

philRG: anyway, funny puzzle

jacek: i need to find a way to do efficient move generation

AntiSquid: use efficient net

philRG: no strange odor yet, but i burnt a video card some months ago in a facetime session, so I need to watch out

AntiSquid: if it's your own house you live in buy new pc, if you rent then maybe it's not so bad ?

PatrickMcGinnisII: dice duel is slow AF for me too, I gave browser higher priority and it does better... but only a little. The more Plays you do the more the JS seems to eat cycles. My graphics card may be interfering with its "web helper", but I'm starting to doubt it.

jacek: or euler put there crypto miner :imp:

philRG: ah good idea, just need to figure out how to increase process priority in macOS thks for the tip :-)

philRG: i have tested on safari/firefox/chrome, same result

philRG: jacek hehe

PatrickMcGinnisII: I doubt my card can mine... but I have like 4 other pcs running if you wanna give them a go

philRG: no thks i work locally in my ide, just for testing is difficult, but anyway, the gameplay is basic

PatrickMcGinnisII: I downloaded the three.js whatever it's called engine... i think it needs some tweaking. i think the corner rounding for the dice is a bit overkill

philRG: i can deal with that

AntiSquid: did you try to zoom out? the table disappears at some point if you don't stop :D

PatrickMcGinnisII: and the background rendering is like cool and all, but if setting are set to SD instead of HD, then it's should probably get turned off

philRG: it is not worse than the cg editor, the text regularly decrease by 800% while I use keyboard and mouse simultaneously

philRG: it is why I quit that

philRG: did not notice any improvement when moving to SD

PatrickMcGinnisII: i do get the fact euler is using other peoples renders, maybe someone can render some lower detail versions

jacek: he tried changing dices so the sides sum to 7, but he was unable to

AntiSquid: 10 / 10 legend hype !! Automaton2000

Automaton2000: but i don't know where they are

PatrickMcGinnisII: it takes too long to test code multiple times in ide ... so I'm probably stuck in wood2 cause it takes sooo long to test

AntiSquid: setup offline then

AntiSquid: ah fk loss

AntiSquid: by 1 sun !!!

AntiSquid: 1 sun Automaton2020

PatrickMcGinnisII: I hardcoded the dice, so I'm ok with the 'innacurate' not RW dice

AntiSquid: does the ruleset of the game seem fun?

AntiSquid: didn't properly read it

AntiSquid: winstreak in ruins Automaton2000

Automaton2000: but they don't need to do a bfs from each node

PatrickMcGinnisII: There's like 100+ moves possible each turn

AntiSquid: uhm, ok

BlaiseEbuth: Duct+NN legend ezpz

AntiSquid: i use skill thanks

reCurse: kekw

PatrickMcGinnisII: I'm doing puzzles atm, dice is ok i guess. I am glad the possmove list isn't given in input...that weeds out the lazy peepz

AntiSquid: that list is only recommended where the number of moves is 20 or less afaik

reCurse: Oh wow euler showing off 3d skills

reCurse: Nice

AntiSquid: Quake 3 arena next right ?

PatrickMcGinnisII: ok, gotta run a shower surround thru my table saw ... glhf

struct: he also ported https://www.codingame.com/training/hard/blockout

reCurse: No debug view though :'(

PatrickMcGinnisII: AntiSquid :joy:

struct: But its a little less polished imo

struct: He had some problems with renders and such

reCurse: Sensitivity is also too damn high

Default avatar.png VIPE: hwllow, world

reCurse: I think he needs to reduce fov a bit

reCurse: Too much perspective

jacek: less polished? why he didnt asked me about it

reCurse: I have no idea why but I want to see isometric on CG now

AntiSquid: Jagged Alliance port

reCurse: Also you're welcome jacek

zonbita: how to up to 15 th

jacek: hm?

BlaiseEbuth: Be 16th first, then do better.

jacek: oh karliso down a bit

struct: oh you got 1st again, grats

AntiSquid: which game

struct: uttt

jacek: reBless favourite

jacek: he spends so much time on it

reCurse: Maybe this time I can forget it exists

jacek: you did something to address the imbalance?

reCurse: 12h more training mostly

jacek: so you just put more hardware into it

reCurse: And gave a bit more thinking time to p2

AntiSquid: train on replays?

reCurse: Nope

AntiSquid: why not ? for p2

reCurse: I don't know why but training on CG replays feels wrong to me

jacek: sounds too booky for you

AntiSquid: it's a dataset

reCurse: Trying to formulate it better

reCurse: The way I see it

reCurse: CG acts as a validation dataset

reCurse: So leaking it into training corrupts that

struct: how much of an advantage does p1 have?

struct: >=0.6?

reCurse: Um

jacek: in my training phase about 75% winrate

jacek: (draw is half win)

reCurse: After first turn middle gives 58.7%

reCurse: Which feels wrong

reCurse: But shrug

Wontonimo: i was thinking of your comments about SC2021 reCurse, and how your bot had trouble with the lower levels. It's as if it training mostly against other really good players and developed a blind spot for random plays.

jacek: after few iterations it increases https://i.imgur.com/PvPr6zp.png

AntiSquid: if p1 has advantage then it should always win once the NN is fully trained

reCurse: The problem is measuring that is very difficult

reCurse: Because if you let it go like that

reCurse: Winrates are always 100 or 0

Wontonimo: It made me think of my Son's experience with fencing, he got to top 20 in Canada for his age group, but still has a hard time with noobs

reCurse: Wontonimo: Well it's a bit like that, except it develops no policy for bad play

struct: is it not possible to take into account score difference?

reCurse: I'm starting to have better ideas now that I see how it works in uttt

reCurse: Score difference is a crutch

reCurse: There are games where you have no such thing

Wontonimo: it also made me think of overfitting. If in the training process a bot it doesn't training vs bad bots, it won't have a policy for it

AntiSquid: +

Wontonimo: but then you are using part of your limited resource to battle noobs

reCurse: Yeah

reCurse: There needs to be a secondary signal for winning more I think

reCurse: Whatever that means

jacek: do not train policy then [solved]

reCurse: jacek: Any bot has a policy, get over it

jacek: is generating moves policy?

reCurse: The move you play in a given state is a policy

jacek: i thought policy as output from NN

reCurse: That's one kind of policy

reCurse: NN can output the policy directly, so you just sample the NN and output the move

reCurse: That's typically model-free learning

reCurse: But if you do a minimax search, what you decide to play is *also* a policy

reCurse: It's a much broader word

Wontonimo: any heuristic for selecting move is a policy. any heuristic that evaluates a board is a value.

reCurse: I disagree with the second statement

Wontonimo: tell me

reCurse: There are heuristic which compare states and output '<'

reCurse: It's an interesting idea actually

daffie: u guys, I am still learning and want to ask re the spring challenge, what was the optimal type of AI to use?

Wontonimo: that can give more sensitivity for sure

reCurse: Being stuck in a single dimension for value could be a problem

struct: daffie https://www.codingame.com/forum/t/spring-challenge-2021-feedbacks-strategies/190849

daffie: wow thanks

jacek: daffie many people used beam search or duct mcts. some people used good old heuristics (ifs)

AntiSquid: strong ifs daffie

AntiSquid: most optimal

AntiSquid: time investment / return

Wontonimo: the 2 boards ">" is interesting, because you can do a lot of supervised training given previous plays and how two board configurations led to win or lose.

Default avatar.png CraftCatPython: .;l

reCurse: The problem with it is I'm not sure how to use in a search

reCurse: Minimax sure

reCurse: MCTS though...

reCurse: Maybe there's some form of embedding you can use for averaging

reCurse: And it learns to use it as such

reCurse: Probably gibberish though

Wontonimo: best_board = 1st next possible move for rest possible next boards:

 compare to best, if better replace

reCurse: MCTS is based on average of reward

reCurse: Average of comparison is not making much sense

Wontonimo: how about this...

AntiSquid: .. Automaton2000 ..

Automaton2000: he has a good bot

Wontonimo: best_board_value = 1st - previous_board for rest possible next boards:

 calc board - previous
 replace if better than best

reCurse: Doesn't quite work for MCTS

Wontonimo: calculating the improvement from previous.

reCurse: Minimax is fine though

Wontonimo: right

reCurse: Because it doesn't need value just comparisons

reCurse: Well except if you get fancy with window searchs and whatever

Wontonimo: how about for plain UCT? Hypothetically

Wontonimo: no, nvm

reCurse: It needs a confidence bound, which is still based on a scalar

Wontonimo: yeah, and unless somehow your ">" is additive so that a+b = (a-c) + (a-c) you couldn't add the terms depthwise in the tree

Wontonimo: sorry : a+b = (a-c) + (b-c)

Wontonimo: second mistake. ">" is only subtraction, so : a-b == (a-c) - (c-b)

MSmits: hey Wontonimo

Wontonimo: it you could make the NN do that (which I would highly doubt) then you could use the addition of all previous parent-child evals to replace just straight board value. Long winded way of saying I agree with you

MSmits: I tried the negative xor thing with -1,0,1 input instead of a one hot version, both worked

Wontonimo: yeah!

MSmits: this: inputs = [[0,0,0,0], [0,1,0,0], [1,0,0,0], [1,1,0,0], [0,0,0,1], [0,0,1,0], [0,0,1,1]] targets = [0,1,1,0,1,1,0]

MSmits: vs:

jacek: :tada:

MSmits: inputs = [[0,0], [0,1], [1,0], [1,1], [-1,-1], [-1,0], [0,-1]] targets = [0,1,1,0,0,1,1]

Wontonimo: Great. Yeah, I first reported it wouldn't work, but then sent you that code where I fixed the init weights to also be negative and found that it did work.

MSmits: ahh ok

Wontonimo: great work doing it

jacek: you had non negaitve weights only? :scream:

Wontonimo: what did you use MSmits ?

MSmits: i just used python, adapted from basic xor example

jacek: with momentum?

MSmits: it's just a matter of changing input and target

MSmits: well i did that too, because you wrote it for mr

MSmits: me

MSmits: I also changed the input -> hidden to relu

MSmits: worked better than sigmoid

jacek: in my experience relu in xor example is more sensitive to init weights. it more often diverges

MSmits: oh thats possible, i might not have tested enough

MSmits: I am currently trying to write a simple TTT implementation to get input and targets from

MSmits: I was thinking of doing a 1 ply minimax and try to match the 1 ply value to 0 ply value in self-play

Wontonimo: oh, I'm looking forward to seeing you release NNs MSmits !

MSmits: kind of what you do with oware, with your 200 rollouts

jacek: so... temporal difference?

MSmits: is that what that is? I am doing it like the xor example only with different input and targets

jacek: for oware at first i used 8-plies search values of negamax bot as data

MSmits: hmm but that's supervised right

jacek: yes

MSmits: i am gonna try doing it with the NN

MSmits: so at first its prediction will be crap

Wontonimo: +1 for supervised jacek

MSmits: except the last moves, which will have perfect prediction (due to W/L/D)

MSmits: then it should work its way backwards to good openings with enough iterations

jacek: :+1:

MSmits: thats the plan anyways, maybe it will need more bells and whistles than the basic xor

Wontonimo: just a few hehe

MSmits: i'll use your momentum thingy, it's easy enough

MSmits: what do you think would be lacking from xor example Wontonimo?

jacek: more hidden units/layers maybe

Wontonimo: more inputs, more outputs, more layers

MSmits: why more layers for TTT? jacek only uses 1 hidden for oware

Default avatar.png jagadeshm: Hi

Wontonimo: you'll find that training time increases geometrically with each layer you add.

MSmits: yeah, i already saw that from tensorflow playground

jacek: ohai jagadeshm

Wontonimo: i have a video about addressing that ;)

MSmits: cool i might watch that

MSmits: I am thinking of experimenting with TTT though

MSmits: once it works

AntiSquid: wonto advert inc

MSmits: see what kind of configuration trains fastest, or what the simplest possible network is that can play perfectly

reCurse: I'm trying to picture search in OOC and my brain hurts

Wontonimo: i take it all back, go with what you have and the simplest model you can think of first. That becomes your baseline.

AntiSquid: https://youtu.be/5Ab87lEnM20?t=78

AntiSquid: ah wrong link wait

AntiSquid: https://www.youtube.com/watch?v=WS-ULgwkheE

jacek: rick roll

AntiSquid: it's not, i am not a heartless troll

jacek: 400 layers? resnet?

reCurse: https://i.redd.it/5193db0avbey.jpg

Wontonimo: yeah, 400 layers, it trained fast.

Wontonimo: it uses good init weights and resnet-in-resnet

jacek: would you post that in memes?

1415495: reCurse: not sure what you want to achieve, but sometimes in some papers instead of predicting the score the predict it's distribution (but I don't see a use for winrate, unless you have a way to be in != conditions)

reCurse: Not sure what I want to achieve either, just rambling :)

struct: How do chess NNs handle it?

reCurse: Single value

jacek: which chess NNs?

jacek: lc0 is alphazero and nnue is value network

1415495: there is also the possibility to use exploration (via curiosity) to try to uncover more policy space

1415495: the difficulty with MCTS is that exploration will biases the values

reCurse: I tried intrinsic reward in csb, couldn't get it to work well

reCurse: It's super weird stuff in an already weird field

AntiSquid: do BotG with NN, it's your destiny

1415495: but curiosity is not too difficult to use (like with a constant random initialized NN and try to lear its output on the board state, the more error the less seen)

reCurse: Yeah but then you get the TV problem

MSmits: seems to me like a main problem with NN is that you have so many options to tweak you tend to try too much at once and miss the optimal configuration of your network

1415495: yes but in deterministic game you won't have the issue ;)

reCurse: Sure but it makes me uneasy

1415495: MSmits: so true (at least for me)

reCurse: That means there are very glaring weaknesses

AntiSquid: you can train it in epochs and fine tune params

AntiSquid: MSmits

MSmits: yea but i dont just mean params

reCurse: MSmits Random search outperforming grid search seems to indicate you can't really try too much stuff at once

NguyenNC: :joy:

MSmits: i mean what activation to use, optimizer etc.

jacek: and what data to feed

MSmits: you mean randomly combining stuff for your network and see what works?

reCurse: Randomly tuning stuff

AntiSquid: ya you can automate that too

MSmits: tuning includes how many layers, what activation to use, how many nodes per layer etc.?

jacek: neat

reCurse: See your original comment

MSmits: ah ok

reCurse: I say it's not a bad thing

reCurse: See random search vs grid search

reCurse: Random search is wayyyy better

reCurse: The more dimensions you have

MSmits: well grid becomes impossible soon enough

reCurse: And it's actually hard to beat

MSmits: how about GA and such?

MSmits: people seem to use that

reCurse: I remember reading a nice paper explaining this

jacek: im at this point where i tweak what data to put into network. should they come from more semi-random games? or use deeper search as targets? or something else

MSmits: oh right, your 200 rollout parameter

AntiSquid: why not both jacek ?

1415495: for the power of random: https://openai.com/blog/evolution-strategies/

jacek: or both

AntiSquid: i mean why is data augmentation even a thing otherwise? @_@

reCurse: I'm still not buying this neuroevolution thing

jacek: creationism ftw

MSmits: well many things should be better than full random shouldnt they?

reCurse: Of course

AntiSquid: ReBeL - mentioned it before, got ignored

reCurse: About what

AntiSquid: https://ai.facebook.com/blog/rebel-a-general-game-playing-ai-bot-that-excels-at-poker-and-more/

reCurse: Mentioned it before about what

MSmits: reCurse did you watch that video about exploiting opponent mistakes? I seemed a lot like what you were looking for

MSmits: that 1 hr video

reCurse: Still have the tab open, will get to it eventually

MSmits: ah ok

jacek: you never close your tabs?

reCurse: It's similar to garbage collection

reCurse: After a certain threshold I close them

reCurse: Some of them

AntiSquid: random games

1415495: I usually lose them when I reinstall my PC, otherwise ... ;)

AntiSquid: what vid MSmits ?

AntiSquid: not sure i watched it or not @_@

MSmits: have to find the link, but reCurse has it open so...

reCurse: https://www.microsoft.com/en-us/research/video/computing-mistake-exploiting-strategies-in-very-large-zero-sum-games/

AntiSquid: bookmark > export > save to cloud or whatever

reCurse: I'm starting to get comfortable with the idea of simulating horizons though

reCurse: Not sure if that's what they're doing

MSmits: didnt watch the whole thing yet, but the problem description is equal to yours

reCurse: Yeah thanks

MSmits: what do you do if the full search tells you every move is a loss

jacek: choose longest loss

reCurse: No that's garbage imo

MSmits: well we had that discussion yesterday, better to see how the researchers handle it. Longest loss may be good for some games, but it's not a general solution

jacek: or loss with most traps but thats hard to quantify

reCurse: If the traps are super obvious like a guaranteed exchange in chess it fails as well

reCurse: There is a probabilistic notion in there

MSmits: yavalath has many obvious traps and many non-obvious traps (like 10 plies deep)

reCurse: I really like the idea of grading 0 to perfection as an horizon over a solved game

therealbeef: losses where the opponent has as 'narrow' a path as possible

reCurse: The narrowness of the path does not indicate whether it's easy to find or not

reCurse: Nor does the depth

MSmits: depends on the algorithm the opponent is using

MSmits: with minimax, the depth might be a serious issue

reCurse: Sure but in the context of a guided MCTS

MSmits: yeah ok

reCurse: Then it seems it should work very well

reCurse: Thinking time should correlate a lot with strength

MSmits: should yeah

reCurse: Where as the curve is a lot less nice in minimax

MSmits: well it's not smooth in any case

MSmits: because of the iterations

reCurse: Yeah

reCurse: The trap can be defined as something only found after a certain thinking time and not before

MSmits: I think this kind of experimentation is kind of fun. Doing benchmarks to see the effect of more calculation time and such. I never get around to doing that

reCurse: So that's how you swindle a loss in a victory

MSmits: right

MSmits: but how do you teach your bot to make use of that

MSmits: seems complicated

reCurse: Hmm, am I saying too much now

reCurse: :)

therealbeef: if a path is very narrow, it's indeed more likely that the opponent finds the one move that stands out. so there should be multiple moves that are nearly indistinguishable and lead to different outcomes

MSmits: well not to me, it's doubtful i will be making use of that, but who knows who else is watching :)

MSmits: therealbeef when solving states with meta mcts, the hardest to solve are often the ones where I have 8 moves that all have near 100% WR. As opposed to just 1 good one

MSmits: you'd be exploring them all and look much less deep

reCurse: Well I did get the idea right when I said "you learn more easily from situations of balance than imbalance" on the forum I guess

MSmits: makes sense, because when there is imbalance, you can win with bad moves

MSmits: and you get rewarded for those

kovi: karlios down to #4 uttt?

MSmits: ohh, really

kovi: recurse succeeded with relu?

reCurse: Overnight training

MSmits: this could just be recurses old bot, it would also wreck karliso wouldnt it?

reCurse: It just needed a bit more heat to figure it out

MSmits: will it stay on top after later submits?

reCurse: Hope so

reCurse: Can't run batches anymore

MSmits: karliso's bot is very good at wrecking all the weaker bots

MSmits: yeah hard to say without benchmark

MSmits: in a way you're in luck, as a NN player

MSmits: at least you train by selfplay

reCurse: I thought the same thing during contest :P

MSmits: i used to fit params with cg benchmark

jacek: i never used cg benchmark and whatnot. everything i do is locally

MSmits: I used it with a lot of succes in oware, but much less in other games

MSmits: somehow param fits helped a lot

MSmits: (also over fitting vs Nn, but not exclusively that)

MSmits: looking forward to getting to a situation where i can just do self-play like you guys

jacek: you have wife, no need for self-play

MSmits: i knew that was coming :)

reCurse: There's an easy boomer joke to make here

AntiSquid: dirty minds think alike ?

reCurse: What's a good way to do search in OOC?

reCurse: Seems like there's way too many actions and possible states

AntiSquid: see postmortems :P

all i remember is having to eliminate tons of possibilities, pretty much like totoro

AntiSquid: well totoro is easier in that regard i guess

reCurse: I've been reading through them but

reCurse: Maybe I missed something

reCurse: It's more about using pure heuristics to remove possibilities than using a search algorithm

AntiSquid: some people never got to the search part true

struct: some people used mcts

MSmits: reCurse we kept track of all possible places the opponent could be. Basically brute force. Then there are various ways to pick a path to minimize the probability of hitting a mine

MSmits: i used beamsearch for this

MSmits: but there's many ways to do this

MSmits: then there were a bunch of heuristics used for determining when to place mines, when to shoot etc.

MSmits: so it's a combination of things

MSmits: not 1 search

reCurse: I'm trying to see how to make it fit in a search

MSmits: you might want to try picking one aspect of the game and use a NN for this

MSmits: instead of using NN for the full game

reCurse: :/

MSmits: thats also a serious undertaking imho....

MSmits: and something that is done in real life

reCurse: Maybe, it's possible I'm just toying with the idea

AntiSquid: what approach are you intending for OOC ? (ML)

reCurse: I have no idea I'm still trying to see how to build a search around it

reCurse: Stuff like should you have a branch for each possible state, then play MOVE L on it

reCurse: Or play MOVE L on the entire set of possibilities

reCurse: It's a bit weird

MSmits: we did something like that yes

MSmits: not sure if those two are different

reCurse: The good old is it X or Y? Yes

AntiSquid: "The logic is split into two states, one for when the enemy position is known and one where it's still unknown." check my PM i think it has good info

reCurse: Ok

reCurse: Oh wait I'm dumb you don't need to split possibilities at each ply

MSmits: and make sure you use *all* available information, there are some little things that are easy to miss

reCurse: You 'only' need to split possibilities at the root

jrke: and when opponent use silence

MSmits: yeah, it splits once per turn

jrke: i am also working on OOC

reCurse: Yeah but silence can be part of the regular tree

reCurse: Unknowns are only at the root

reCurse: Yay

reCurse: Progress

MSmits: silence is a real brancher

MSmits: other stuff is easy to manage

MSmits: if an opponent spams silence, you may need to prune intelligently or you may timeout

MSmits: but full silence spam is not the best tactic anyways

jrke: even you can use torpedo as cutting off some possibilities where opponent can be

reCurse: Yeah but I am suddenly happier that the tree is only N possible spots bigger

reCurse: Instead of something like a card game when you draw unknowns possibly all the time

MSmits: jrke and thereby giving away your position :)

MSmits: reCurse yeah it is manageable

struct: I wanted to try ooc but I have no idea how to bitboard it

reCurse: Ok this is very reassuring, not sure why I was stuck on that

struct: is too large for me

ZarthaxX: just dont? :P

MSmits: the funny thing is, that even if the opponent explodes a mine, you can use the information to discern that way back when he must have placed that mine, he had to be near there

AntiSquid: jrke sure but torpedos give your position away very fast too

MSmits: and eliminate positions that way

jrke: hmm

AntiSquid: that's why some folks only used mines instead :D

reCurse: Oh no mines multiply the at root

reCurse: *at the

MSmits: silence is worse than mines really, but just try it reCurse, you'll code this stuff quickly enough

AntiSquid: not just that, mines can be placed from 4 possible directions :D

reCurse: Silence shouldn't be scary though

reCurse: It overlaps positions

MSmits: it's not hard to code, it's just very branchy

struct: pb4 had a bot made to explode states

MSmits: and yeah it does overlap, true

struct: iirc

reCurse: I was fine with number of positions being at the root

reCurse: But multiply that number with mines and ugh

MSmits: it's probably necessary to hash states

reCurse: Oh and paths too... I should really think more and speak less

MSmits: everyone went through this during contest. I remember beating gold boss because i implemented mine tracking and avoidance

MSmits: maybe you should just code a normal bot for it and then see what part of it (if at all) to use a nn for

reCurse: Hmm

reCurse: No it needs to be grouped

reCurse: There are only 3 outcomes to a torpedo, no sense applying that to all positions

reCurse: Back to the drawing board

AntiSquid: just rechecked, i am sure you need 2 NNs

MSmits: btw, when the opponent lays down a mine, you can 4 states from each state for each of the 4 neighbors, or you can keep track of how many mines were laid from each position, thereby only incrementing a number by 1

MSmits: it's a lot more efficient in terms of state explosion

reCurse: But you need to take a probability into account when you go on that square

MSmits: yeah, check each neighbor

reCurse: Not sure how to implement that

MSmits: see how many mines were laid from there

MSmits: calc probability from that somehow

reCurse: Like say you're on a square with mine

reCurse: There needs to be an environment branch somewhere

reCurse: With probability

MSmits: sure

MSmits: as long as all the information is in the state, that should be doable

AntiSquid: you could assume the opponent took the path with the highest branching (or one of the paths with high branching)

MSmits: oh, i guess you need to look at all states

MSmits: yeah that could be painful

reCurse: I get the impression information needs to be aggregated

jacek: use muzero, ezpz

reCurse: Handling individual possibilities is too much

AntiSquid: yes you merge states when you can

reCurse: Paths really make this complicated though

MSmits: yup

MSmits: that's part of what made this a good contest, figuring this stuff out

MSmits: it was a month long too

VizGhar: What is easier Vox Codei 2 or Mars Lander 3?

MSmits: (like locam)

AntiSquid: you sound like difficulty boosts quality

reCurse: If I get started on this (still only at the stage of toying with the idea), I think I have no choice but to start with a simplified version

struct: They are completely different games VizGhar

reCurse: To make it work with learning

reCurse: Too much branching everywhere

reCurse: And work from there

AntiSquid: what do you think of my idea ?

reCurse: I guess it's fine but I have a hard time picturing the implementation

MSmits: AntiSquid mmh you're right, for starting players ooc was too hard. I just think the problems to be solved were interesting

reCurse: The other idea is to learn a model instead with muzero like jacek said

reCurse: But multiple networks and only 50ms, kill me now

MSmits: afk a bit, digging holes in my backyard

jacek: i was trolling

MSmits: (no jacek, i didnt kill anyone)

reCurse: With less constraints though it could work

reCurse: Maybe

AntiSquid: you do it offline and there's a way to remove time limit from game locally

reCurse: Sure but without arena opponents it sucks

jacek: then ask others for their code

Illedan: Oh, didn't hear about Muzero before. Thx

AntiSquid: https://deepmind.com/blog/article/muzero-mastering-go-chess-shogi-and-atari-without-rules

AntiSquid: 23 Dec 2020 :P

Illedan: And?

jacek: hes saying youre slowpoke

AntiSquid: + being helpful by sharing link

Default avatar.png Purinto: hello

jacek: good evening

jacek: elderlybeginner have you tried starting in center board?

BlaiseEbuth: Nope

derjack: :(

BlaiseEbuth: W

BlaiseEbuth: Hey pony! Why so sad?

derjack: :upside_down:

BlaiseEbuth: Better don't stay in this position... Too much blood in your head. You're all red.

derjack: :rage:

Greg_3141: it seems like you can get to gold league in some games (coders strike back, the great escape) just by slapping a bot together

SEXYHUSKY: hello

SEXYHUSKY: :P

jacek: slapping?

Greg_3141: what I mean is that the standard is not nearly as high as one would expect

Greg_3141: in the great escape, for example, iirc even in silver league you would get opponents that would make an illegal move and die

**BlaiseEbuth slaps Automaton2000 with AutomatonNN to reach gold league.

Automaton2000: so i have an idea of what you do with the game

AntiSquid: ya that's why they're still in silver

jacek: imo at silver level they shouldnt make illegal moves and just be weak

BlaiseEbuth: Or old bots killed by a language update...

jacek: kotlin bots?

struct: And a few more languages

Greg_3141: a search tree with depth 1 is enough to get to gold league in "the great escape"

BlaiseEbuth: Kotlin bots are stillborn...

AntiSquid: the older the game the weaker the bots

Greg_3141: Where can I check when the game came out?

AntiSquid: just play Ocean of Code and enjoy the challenge

jacek: maybe the forums and first post

AntiSquid: https://www.codingame.com/contests/finished scroll down, it's sorted by release date

Greg_3141: The game is from 2015, maybe that explains it

struct: br2048 hardest game

BlaiseEbuth: What challenge? He gonna reach ooc gold with a depth1 search tree AntiSquid. Don't doubt him.

Default avatar.png elisaado: hello world

AntiSquid: ah alright then do Botters of the Galaxy

Default avatar.png origami091: shhh

AntiSquid: shoosh

Default avatar.png origami091: im working on code and its hard so that's why I said shh

jacek: :notebook: :soccer:

AntiSquid: Automaton2000 help origami091

Automaton2000: i have a big bug

Default avatar.png Purinto: The challenges are hard damn

Default avatar.png origami091: im doing coders strike bacl

Default avatar.png origami091: I cant ajust the thrust

AntiSquid: that's the easy one

BlaiseEbuth: Of course origami091. Who never said shhh in the chat working on a hard code problem?

AntiSquid: i think he doesn't know how to turn off chat

Default avatar.png origami091: why is your writing red

AntiSquid: origami091 hacks

Default avatar.png origami091: ...

BlaiseEbuth: That's red when you say shhh origami091

Default avatar.png origami091: AntiSquid

struct: .font:red origami091

AntiSquid: mine is blue

Default avatar.png origami091: what?


AntiSquid: now confuse him with css

BlaiseEbuth: shhh origami091

Default avatar.png origami091: oh i get it

Default avatar.png origami091: your moderadors

Default avatar.png origami091: thats why

BlaiseEbuth: Hmm

AntiSquid: our moderators ?

BlaiseEbuth: Yes my moderator AntiSquid, don't touch it

AntiSquid: i way above your budget blaise

**struct .weight:italian test

Default avatar.png origami091: ??


AntiSquid: double question marks

Default avatar.png origami091: SHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

Default avatar.png origami091: GOSH

AntiSquid: don't caps

Default avatar.png origami091: ??

BlaiseEbuth: don't ??

AntiSquid: he said thanks

BlaiseEbuth: For?

AntiSquid: for kick,

AntiSquid: i told you he doesn't know how to close chat

BlaiseEbuth: Yes but, next time his chat will reopen... :(

BlaiseEbuth: Better ban him

Default avatar.png origami091: guys how do I make thrust faster

Default avatar.png origami091: my code is Bash

BlaiseEbuth: He's back! :scream:

Default avatar.png scisaif: yo

Default avatar.png origami091: Im just asking a question

Default avatar.png scisaif: does anyone do codechef?

AntiSquid: ask on codechef

Default avatar.png origami091: can anybody help???

Default avatar.png scisaif: in?

Default avatar.png origami091: Adjusting the thrust in Bash Code

AntiSquid: ok scisaif let's compete as you said in private: https://www.codingame.com/multiplayer/bot-programming/xmas-rush

struct: I dont know bash

AntiSquid: i am #9 in gold waiting, let's fight

Default avatar.png origami091: #9

Default avatar.png origami091: ???


Default avatar.png origami091: #8

AntiSquid: ok join origami091

Default avatar.png origami091: #7

Default avatar.png origami091: but im trash

AntiSquid: too much random spam, i ban for that

AntiSquid: usually you'd be banned, just being nice today

Default avatar.png scisaif: hey, don't you think python users have an unfair advantage when it comes to the characters count?

AntiSquid: i am using C++, so come beat me in xmas rush

AntiSquid: scisaif

AntiSquid: use your advantage

Default avatar.png scisaif: what's xmas rush,

Default avatar.png scisaif: i am new to this website

Default avatar.png origami091: ye

Default avatar.png origami091: me too

AntiSquid: i linked it earlier

AntiSquid: https://www.codingame.com/multiplayer/bot-programming/xmas-rush

AntiSquid: click it

Default avatar.png origami091: also this place is torchure for new player btw

AntiSquid: clearly you didn't try the game yet

Default avatar.png origami091: not trying to insult

Default avatar.png origami091: no no no i meaan the discord

AntiSquid: gee, what's hurting?

Default avatar.png origami091: what you talking about?


Default avatar.png origami091: idk y u said dat

AntiSquid: about the torchure you mentioned

jacek: ?

Default avatar.png origami091: oh

Default avatar.png origami091: well people want to know personal info

AntiSquid: who's torching you ?

Default avatar.png origami091: on this discord

Default avatar.png origami091: idk

AntiSquid: who's asking personal info ?

Default avatar.png origami091: none so far

AntiSquid: @_@

AntiSquid: ok

Default avatar.png origami091: but im being wary

AntiSquid: use a plug

Default avatar.png origami091: @_@


Default avatar.png origami091: ?

Default avatar.png origami091: what does that mean

jacek: pull the plug

AntiSquid: :thinking: maybe it's time

Wontonimo: *AntiSquid holds hand over big red button and ponders*

AntiSquid: he's gone

Default avatar.png origami091: am i really gone?

Default avatar.png origami091: I was looking at you guys chatting

AntiSquid: ok get an avatar at least ?

Default avatar.png origami091: shut up

Default avatar.png origami091: i like my avatar

Default avatar.png Purinto: letss goooo

Default avatar.png origami091: i dont have to change it got it?

Default avatar.png origami091: ...

Default avatar.png origami091: Can i talk without being kicked or banned please

KiwiTae: origami091 if your not being rude and respect the code of conduct u won't get banned

KiwiTae: :kissing_heart:

Wontonimo: okay, let's try a conversation. what multi are you playing.

Default avatar.png origami091: hmm

Doggolover245: ok

Doggolover245: im not being rude KiwiTae

AntiSquid: he is playing xmas rush, it's already decided

Doggolover245: who?

AntiSquid: shhhh twice and once in all caps and then the shut up? people got banned for less

AntiSquid: you are playing xmas rush and i am glad you enjoy it

Doggolover245: im not playing that game tho

NeAlyssa: hello, didnt really wanna interrupt u but as i see here is a lot of "old users" of this site so may I ask u for some recommendations, which bot programming game is the most interesting and not really hard to learn in ur opinion? just wondering

therealbeef: ultimate tic tac toe :)

AntiSquid: botters of the galaxy NeAlyssa

AntiSquid: not ultimate tic tac toe, unless you want to suffer

Wontonimo: hey, i played BotG yesterday (or was it this morning, can't keep track of time anymore cuz covid) I moved a rank from following advice in discussion

AntiSquid: do you know any programming language NeAlyssa ?

therealbeef: UTTT has simple rules and game representation, and is interestingly complex

Wontonimo: (no, i don't have covid. it's just that every day is like a groundhog day)

Doggolover245: I wonder when I get out of hospital

Doggolover245: maybe tommorow

NeAlyssa: I know python, c++ and a little C#(we study it i university now) but I used them only for problem solving(like codeforces and different informatics olympiads), cant do anything useful with them

KiwiTae: botg :") i remembber the double hulk hack~

NeAlyssa: thank you for answers

AntiSquid: https://www.codingame.com/playgrounds/57902/totoro-beam-search-c-starter here's totoro starter if you don't like botters should get you far if you know how to modify it, wasn't sure if you know c++

Wontonimo: NeAlyssa, if you want to boost your confidence with something intro try https://www.codingame.com/training/easy/mars-lander-episode-1

Wontonimo: there are a few more episodes of increasing difficulty, but the first one is fun.

AntiSquid: is it fun though ? i mean search race seems more fun or 2048

Wontonimo: the graphics are nice. and i love space, so there is that

jacek: dont forget the wonderful sounds

AntiSquid: ya that's fair, hard for me to judge what they'll like

Wontonimo: oh geez, yeah, sorry. Forgot to mention, it is loud.

AntiSquid: i am sure it's recorded on mars that's why it's so important to have it on by default

Wontonimo: i think a crash on mars would sound not much louder than paper crumpling

jacek: they adjust volume for mars atmosphere

NeAlyssa: AntiSquid, sorry, maybe i just didnt get it because of my not perfect english, but did u send me a link with an algorithm which i should improve and use in some games, right?

Doggolover245: my fav code is bash

AntiSquid: only if you want, it's for this game https://www.codingame.com/multiplayer/bot-programming/spring-challenge-2021 but try botters first

NeAlyssa: okay, thank you again

AntiSquid: i realize now my seed_spots are wrong in there ... removed the distance mask

thomasgonda3: for certain games when it says you get like 50ms per turn or whatever, does it start timing you for the next turn as soon as you console log the input for the current turn?

Weird-person: ok

ZarthaxX: AntiSquid :D

Weird-person: ...

Weird-person: this is cool

jacek: thomasgonda3 start measure time after first input during loop

Weird-person: wheres my profile pic

AntiSquid: F5

AntiSquid: " Weird-person 10:15PM wheres my profile pic "

thomasgonda3: so i can run code after i console.log my next input but before the while loop repeats and it wont count as part of the next turn's time?

AntiSquid: you could check how i do it in my starter ? :P

Weird-person: ...

AntiSquid: Weird-person has been banned by AntiSquid.


AntiSquid: too much is too much

thomasgonda3: im talking about for search race specifically but for mars lander as well i suppose

AntiSquid: it's the same in all games

thomasgonda3: yeah

thomasgonda3: i just built a ga for the first time a few days ago and im using the same thing pretty much for both games. My problem is I keep timing out unexpectedly even if i set the time limit for the ga way below the time limit for that turn

thomasgonda3: i need to set my gas time limit to be like 15 ms max to be safe

AntiSquid: depends also what computations you do inbetween the time check and how you break out of the loop

Default avatar.png kresteodymium: hi AntiSquid

Default avatar.png kresteodymium: hi thomasgonda3

jacek: for search race (and other optims) there is bug with timeouts

jacek: and people use <35ms

AntiSquid: oh really? that explains my search race timeouts -.-#

thomasgonda3: i mean im doing some sorting and some computations but its hard to believe that one ga can take like 30 ms when my average ga turn takes like .01-.02

thomasgonda3: i have the same thing happen to me on mars lander but i can set the time limit much higher than 15ms

AntiSquid: check loops and such

AntiSquid: i don't know

thomasgonda3: ok

AntiSquid: search race is buggy for me too

AntiSquid: ah you also need to get all check points within a turn limit or you get timeout, is that what you mean ?

thomasgonda3: it would be fine if there was only a few tests and you could just get lucky but theres like 60 tests when you submit it lol

thomasgonda3: for search race

Default avatar.png CodeLoverboy: Hello?

Default avatar.png CodeLoverboy: I just finished my first clash and it was hard

thomasgonda3: no i just look 25 turns ahead each turn based on current position on what not its not timing out because it cant find a win

thomasgonda3: itll just pick what it thinks the best move is

Default avatar.png CodeLoverboy: can anybody help?

Default avatar.png CodeLoverboy: is anybody here? ;(

AntiSquid: help with what? need painkillers after doing the clash? was it that bad?

Default avatar.png CodeLoverboy: pls dont roast me

Default avatar.png CodeLoverboy: also good pun

AntiSquid: sorry

AntiSquid: but you're vague

AntiSquid: very vague

Default avatar.png CodeLoverboy: whats vague?

Wontonimo: not even in a mysteriously good way

Default avatar.png CodeLoverboy: oh

Default avatar.png CodeLoverboy: i searched it up

AntiSquid: one moment let me open my thesaurus

AntiSquid: equivocal

Default avatar.png CodeLoverboy: what is that

Default avatar.png CodeLoverboy: i am clueless

AntiSquid: muddled

Default avatar.png CodeLoverboy: one sec im gonna suffer and do another clash of code

Default avatar.png CodeLoverboy: ok i skipped it XD


Default avatar.png CodeLoverboy: my batterie low bye

M.joseph: I'm joseph

Wontonimo: hi joseph

Wontonimo: do you own any technocolored garmets?

Wontonimo: watcha working on M.jos ? doing any challenges on this site?

struct: I think im going to try hypersonic

struct: If I can bitboard it

Wontonimo: and DUCT?

struct: I stopped trying it

struct: :/

Wontonimo: ;-(

YurkovAS: struct great bit's example for detect shadows! this give me more speed (+1k rollouts). thanks!

struct: np YurkovAS glad to help

struct: 1k is how much % gain? YurkovAS

AntiSquid: i feel like you just need more ifs not rollouts

Wontonimo: I gained a few ranks in SC2021 since the competition without doing anything. Odd.

YurkovAS: struct in local only tested, wins: left=54%, right=57%. 4+ hours i'm find bugs :)

Astrobytes: Hello

YurkovAS: hi

Default avatar.png joessir: hi

yassine_Benlahbib: hi

Default avatar.png NRTnarathipTH: Hello world

Default avatar.png MMJR: this is a pretty neat website, are they using an embedded visual studio for it?

therealbeef: something like that i think

actualCoderTrevor: MMJR I believe it's ace https://github.com/ajaxorg/ace

Astrobytes: It's Monaco https://github.com/microsoft/monaco-editor

actualCoderTrevor: Oh I stand corrected

Default avatar.png MMJR: Interesting i may have to check it out for another project i am doing

Default avatar.png Ilovepypypy: how to play spring challenge 2021

souta_1326: https://www.codingame.com/multiplayer/bot-programming/spring-challenge-2021

Default avatar.png Ilovepypypy: thx

Default avatar.png Ilovepypypy: but i dont know how to def the action...i am new