Chat:World/2021-05-23
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
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
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
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 ";"
idan_idan: in C: why sprintf not working good?
DaNinja: it works fine for me
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?
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
Legedy: helo
Manchi_o6o7: Guys, can you give me an advice for a good programming laptop?
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
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
AntiSquid: #pl or #polski
jacek: perl channel?
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
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
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.
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
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...
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
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.
AntiSquid: ah alright then do Botters of the Galaxy
AntiSquid: shoosh
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
Purinto: The challenges are hard damn
origami091: im doing coders strike bacl
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
origami091: why is your writing red
AntiSquid: origami091 hacks
BlaiseEbuth: That's red when you say shhh origami091
struct: .font:red origami091
AntiSquid: mine is blue
AntiSquid: now confuse him with css
BlaiseEbuth: shhh origami091
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
AntiSquid: double question marks
origami091: SHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
AntiSquid: don't caps
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
origami091: guys how do I make thrust faster
BlaiseEbuth: He's back! :scream:
origami091: Im just asking a question
scisaif: does anyone do codechef?
AntiSquid: ask on codechef
origami091: can anybody help???
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
AntiSquid: ok join origami091
AntiSquid: too much random spam, i ban for that
AntiSquid: usually you'd be banned, just being nice today
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
scisaif: i am new to this website
AntiSquid: i linked it earlier
AntiSquid: https://www.codingame.com/multiplayer/bot-programming/xmas-rush
AntiSquid: click it
origami091: also this place is torchure for new player btw
AntiSquid: clearly you didn't try the game yet
origami091: not trying to insult
origami091: no no no i meaan the discord
AntiSquid: gee, what's hurting?
origami091: what you talking about?
AntiSquid: about the torchure you mentioned
jacek: ?
origami091: well people want to know personal info
AntiSquid: who's torching you ?
AntiSquid: who's asking personal info ?
AntiSquid: @_@
AntiSquid: ok
AntiSquid: use a plug
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
origami091: I was looking at you guys chatting
AntiSquid: ok get an avatar at least ?
origami091: i dont have to change it got it?
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.
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
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
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
CodeLoverboy: can anybody help?
CodeLoverboy: is anybody here? ;(
AntiSquid: help with what? need painkillers after doing the clash? was it that bad?
CodeLoverboy: pls dont roast me
AntiSquid: sorry
AntiSquid: but you're vague
AntiSquid: very vague
Wontonimo: not even in a mysteriously good way
CodeLoverboy: i searched it up
AntiSquid: one moment let me open my thesaurus
AntiSquid: equivocal
AntiSquid: muddled
CodeLoverboy: one sec im gonna suffer and do another clash of code
CodeLoverboy: ok i skipped it XD
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
yassine_Benlahbib: hi
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
MMJR: Interesting i may have to check it out for another project i am doing
Ilovepypypy: how to play spring challenge 2021
souta_1326: https://www.codingame.com/multiplayer/bot-programming/spring-challenge-2021
Ilovepypypy: but i dont know how to def the action...i am new