Chat:World/2021-06-27
MaliciouslyCrypticUsername: Should I invest more time into learning Ruby or C++?
Jackevmi: i think c++ because it is more commonly used
TYJung: uh im new to coding and what should i do for starters
Talulita: Hii everyone, by any chance does somebody know how to make a carousel with multiple elements with Angular?
jacek: those clash of codes are getting more and more difficult ;d
geppoz: hi, that https://icpc.global/ challenge, can only be played in teams?
geppoz: https://icpc.global/regionals/finder/Planetoids-2020 that one I mean
rocketman7: How I can get to next boss when I beat current boss?
geppoz: if you stay a while over the boss in the leaderboard, after a while you will be automatically promoted
jacek: coders strike back?
MiyamuraIzumi: csb is fun :D
KP56: in Ultimate Tic-Tac-Toe, how do I chose which board I want to put an X at?
AntiSquid: received the longest wiki article copy paste in private message ever ... talks about the US constitution
AntiSquid: account meanwhile deleted it seems
Vintarel: KP56 if the O was on the bottom left of its cell, then you have to play on cell at the bottom left of the board
KP56: that makes sense, thanks
KP56: wait isn't it just about winning in every single board then?
KP56: and there is the best mathematical solution for that making you always win or tie
MSmits: if you mean this game is solved, then no it's not
KP56: https://www.rd.com/article/how-to-win-tic-tac-toe/
MSmits: different game
MSmits: we're playing ultimate tic tac toe here and it's a unique version at that
KP56: oh maybe because im in bronze league rules are the same as the normal tic tac toe game
KP56: except there is 9 boards
MSmits: yes, which means it's a very different game :)
MSmits: there are on the order of 10^30 different gamestates
MSmits: Solving it would probably be comparable to solving checkers 8x8
MSmits: which has been solved, but not without great effort
KP56: i dont know about other leagues, but in bronze you just move between 9 different boards, so you can basically apply this strategy to every single one
MSmits: please try it :)
MSmits: you may get out of bronze with that btw
MSmits: but not much further
MSmits: nothing
MSmits: opponents just have better bots
KP56: wait what happens if you draw on a board
MSmits: then neither has won that board
MSmits: it can't be used for 3 in a row then
KP56: ive just realized i misunderstood the rules
MSmits: https://www.codingame.com/share-replay/563163967
MSmits: watch that game. It will help
linjoehan: Do we know if the first player wins at UTTT?
linjoehan: In theory that is?
MSmits: I am almost 100% sure that is the case yes
MSmits: it's impossible for p2 to be solved as winner
MSmits: so it's either draw or win for p1
linjoehan: why can p2 not win?
MSmits: stategy stealing argument
MSmits: https://en.wikipedia.org/wiki/Strategy-stealing_argument
linjoehan: but there is not a non significint move that p1 can make
MSmits: allright, look at it from both situations
MSmits: say p1 plays middle
MSmits: then p2 has the same starting situation except for 3 things
MSmits: 1) there's already a cross, which is worse for p2
MSmits: 2) he can only play in the middle board
MSmits: hmm i think it;s 2 things
MSmits: but anyways, the two differences are both to p2's disadvantage
linjoehan: I agree but its not a proof though
MSmits: Hmm if you agree that it is never worse to have an extra mark on the board
MSmits: absent of all other considerations
MSmits: because having less movement options is definitely always worse
MSmits: I agree it's not formal enough but I am 100% sure p2 cannot be solved as the winner. Someone else can formalize it properly
MSmits: the reason i think it's not solved as draw either is that I've never seen p2 draw a game where p1 did not make a fatal mistake earlier on
MSmits: I checked many many games by top players
MSmits: it can always be traced back to a mistake in turn 25
MSmits: or so
MSmits: (ply 25)
MSmits: also, the higher players are ranked, the higher their p1 winrate
MSmits: meaning as you get closer to perfect play, p1 wins more
MSmits: karliso wins 95+% vs himself as p1 vs p2
KP56: p1 definetely has an advantage over p2
MSmits: yeah it's pretty obvious but linjoehan was talking about a formal mathematical proof
MSmits: that takes a bit more work
KP56: what you said about algorithms which are closer to perfect getting higher p1 over p2 winrate seems to be a good argument
MSmits: yes, but also not a mathematical proof.
MSmits: in any case, the imbalance between p1 and p2 only matters for top bots really
MSmits: say, the top 100 or so
MSmits: below that, bots play so poorly that the first move is an advantage, but can easily be overcome
struct: :'(
MSmits: whats up struct?
struct: hi msmits
struct: not much, im still wondering how I should code breakthrough
MSmits: what kind of choices?
MSmits: the sim?
struct: Well I want efficiency
struct: Yes
MSmits: ah
MSmits: I did boardflips here
MSmits: I think because I have lookup tables
MSmits: flipping the board means you only have to look up from one side
struct: generating moves seems expensive
MSmits: there's some way to look up the end of the game if a pawn becomes unstoppable
struct: yeah, I can think of some ways to do it
MSmits: using pext by looking up the triangular pattern in front o fit
MSmits: i did that, did not help very much. It's all about having a good board eval
struct: its ept?
MSmits: random rollouts are crap
MSmits: mine is yes
MSmits: my eval is not good though
MSmits: I think that's the reason it does not rank well
struct: smart rollouts doesnt work?
MSmits: never tried that
MSmits: i took others on their word
struct: still seems expensive
MSmits: not sure what a smart rollout is in this case
struct: Playing games until the end
MSmits: i dont see any clear rules
MSmits: I think this is a very NN friendly game
MSmits: also ntuple and such
MSmits: hard to quantify strategy into a handcrafted eval I feel
struct: maybe I could try
MSmits: not hard to beat me anyways
struct: I also looked at D&B, but so many moves
MSmits: D&B is cool
MSmits: but you need to get into the math. MCTS or minimax will not do better than random
MSmits: until the very end of the game that is
MSmits: My bot literally plays a random move for the first half of the game
MSmits: then tries to use a nimstring solver until it succeeds
MSmits: and I rank 2 with that
MSmits: so... math
struct: never heard of nimstrings
struct: I see theres a book for D&B
struct: describing strategies
MSmits: there's more than 1, also a bunch of papers
MSmits: nimstrings come from combinatorial game theory
MSmits: the weird thing about D&B is, if you ignore the current score (which is 0-0 for a long time). the game is completely decided by whose turn it is
MSmits: because the board is colorblind
MSmits: it doesnt matter who put the lines down
MSmits: the only difference between the two sides is whose turn it is
struct: I see
MSmits: so as you can see that would be hard to eval
MSmits: also, you cant even give a score to the player who's turn it is, because you would need to solve the game to know if it's good to be p1 or to be p2
MSmits: there are some rules of thumb you get by counting chains and such, but if you estimate wrong, you are *completely* wrong
MSmits: not just * a bit off*
MSmits: so thats why early game i am just playing random moves. Even the rank 1 player more or less does that. He just starts seeing the future a little bit sooner than I do
struct: So there is no strategy at the start?
struct: or is just hard to implement?
MSmits: I don't think there is one. I dived pretty deeply into this game. The 3rd rank player is an expert at it and wrote an app (he's the guy who invented mcts or some such)
MSmits: and he doesnt know either so...
MSmits: "In 2006, inspired by these predecessors,[14] Rémi Coulom described the application of the Monte Carlo method to game-tree search and coined the name Monte Carlo tree search"
MSmits: from the wiki
MSmits: so thats the guy that ranks 3 in D&B
NasrAllah: .
NasrAllah: is there a section to learn?
NasrAllah: or just by doing challenges?
MSmits: if you want to learn basic programming, CG isnt the best site for it. But if you know the basics in at least 1 language, therés tons of options to practice
MSmits: https://www.codingame.com/training/easy
MSmits: some puzzles are made by the CG devs, most by the community
MSmits: struct, if you do find some way to play D&B intelligently in the early, game, do let me know :)
MSmits: in the meantime I can talk your ears off about it
struct: will do, im still not sure if ill play it or not though
MSmits: i enjoyed it a lot somehow. Maybe because it was a break from all the typical mcts-board games
MSmits: I even solved wood-2 and didn't get promoted on perfect play, that was funny
struct: lol
MSmits: half the time my bot knew it lost 1-3 in the first turn, so it didnt care anymore
NasrAllah: Thank you so much @MSmits
MSmits: np
NasrAllah: :D
TeachMeSenpai: Anyone do Telephone Numbers?
TeachMeSenpai: in python
BlaiseEbuth: About 13876 users.
TeachMeSenpai: In python? thats false
BlaiseEbuth: If someone did it in another language he can do it python. So I count him
TeachMeSenpai: wow thank you, you helped so much
BlaiseEbuth: I literally answered your question...
ANONYMOUS42: i think you just have to implement a trie
ANONYMOUS42: not much to do
ANONYMOUS42: i'm doing it right now
linjoehan: Implement a trie yeah that's easy anyone can do that
TeachMeSenpai: ;o
ANONYMOUS42: i mean maybe not that easy
ANONYMOUS42: but you just have to understand how they work and implement one
ANONYMOUS42: or at least that's what i'm trying to do rn
TeachMeSenpai: yeah i create a function that takes in a list and creates a trie,and returns the length.
TeachMeSenpai: but i think my logic is bad
BlaiseEbuth: It's not. That's what I done.
Westicles: use set
MSmits: what's a trie?
BlaiseEbuth: https://en.wikipedia.org/wiki/Trie
MSmits: did you mess up a wiki page again?
MSmits: it's tree
MSmits: sheesh
ANONYMOUS42: it's trieueu
ANONYMOUS42: and it's pronounced tree
BlaiseEbuth: Fix your read MSmits
MSmits: don't you mean ried ?
BlaiseEbuth: :thinking:
Westicles: it's okay DAWG
MSmits: woof
ANONYMOUS42: who let the dogs out
MSmits: :dog2:
TeachMeSenpai: OMG
TeachMeSenpai: im an idiot
TeachMeSenpai: lol
MSmits: :scream_cat:
TeachMeSenpai: i did it
MSmits: it was you!
MSmits: change it back to tree, now
BlaiseEbuth: Nam gloria Lucifer !
TeachMeSenpai: i just had to count when i was adding to my trie
TeachMeSenpai: ughh
ANONYMOUS42: what were you doing before
TeachMeSenpai: i was trying to get the length of the trie
TeachMeSenpai: bruh
ANONYMOUS42: wouldn't just be the max length of the strings
TeachMeSenpai: i generated the trie using dict, so it was a bit tricky counting that
TeachMeSenpai: welp
TeachMeSenpai: okay time for sleep
TeachMeSenpai: ty guys
BlaiseEbuth: Why do it simple... ;)
darkhorse64: struct: the best genmove I could think of is to generate three bitboards (one for each possible move direction). Cheap, easy.
struct: oh, seems easy enough
struct: thanks darkhorse
MSmits: that's kind of what i did also struct
MSmits: you can do similar things in checkers, though it's messy due to jumping
struct: also with EPT
struct: I still should do rollout right?
punter147: Hello all, i had a small doubt, i have my mcts implemented using STL, but i have heard STL kills a lot of time becaues of heap operations, do you have any advice on how to replace them? i know i can use arrays for vectors, but i also use map to maintain a list of node and its children as a hash map.
struct: punter147 allocate memory at the start
darkhorse64: In EPT, the best your eval, the shortest the playout. In this respect, you could consider that a0 is mcts-ept with 0 length rollouts
Wontonimo: use a plain list for the children instead of map or hash
darkhorse64: + 3 gap in C4, I have been staring at my code for ours, I still wonder what I have done wrong
Wontonimo: hey punter147, what game are you using MCTS for ?
darkhorse64: no list, no map, no hash, just a big array of nodes = a pool that you allocate at startup, no delete, no alloc during the game, that's the rules
Wontonimo: ^^ yes
struct: I dont feel like I do anything more than you do darkhorse
struct: on c4
darkhorse64: you do it better :sweat:
MSmits: rating gap is not that meaningful I think. Struct's bot is better because it has more performance, sure, but the fact that the gap is 3 probably just means you lose the same game over and over.
MSmits: struct beats me too, but apparently when yurko submits, I get to rank 1 because struct has losses and I (almost) don't
darkhorse64: I play 1, go stealed, and always play 4 after which you say is inferior to 3 and lose
darkhorse64: *got*
MSmits: yeah 3 is better I think
MSmits: though they might both be solved as draw in the end
MSmits: not entirely sure. But in my meta mcts it's much harder for player 1 to come out ahead when p2 replies with 3
struct: meta might say its better
struct: but meta also played millions of games
MSmits: yep
struct: pure mcts might never find the optimal path
struct: at least with the time given
MSmits: sure, but before my meta mcts found this, I did lose a lot more to players like tric trac, who reply with 3, at least sometimes
MSmits: it's just hard for mcts to see what's good in the beginning
MSmits: so luck plays a role there
BlaiseEbuth: He saved the galaxy
MSmits: you rewatching avengers endgame BlaiseEbuth?
darkhorse64: in the same position, struct plays 2
MSmits: or maybe star wars?
MSmits: wow really
MSmits: https://www.codingame.com/share-replay/566511365
MSmits: not here
MSmits: ah wait nvm
BlaiseEbuth: You hurted my film culture :(
MSmits: sorry
darkhorse64: I mean when his first move 1 is stolen, he plays 2
MSmits: oh
MSmits: I never steal 1, so i guess it never happens with me
MSmits: maybe i should try submit stealing 1
MSmits: see if my bot is better
MSmits: it's a big change
darkhorse64: I always steal 1 because I like to be first maybe it's a mistake
MSmits: no idea
MSmits: oh right, he does reply with 2
MSmits: (and wins just the same)
darkhorse64: :grin:
MSmits: I submitted, wonder if this will do well
Wontonimo: :eyes:
MSmits: ohh I forgot
MSmits: wait nvm
MSmits: I was thinking my book is not calibrated for stealing 1
MSmits: but it doesnt matter, because it stores both sides
richiie: i just joined this and i dont understand this, at all
MSmits: for 3, 4 etc. starts it just stores p1 starts, because i will only ever have that start when someone elses plays and i steal
MSmits: nope, this connect4 talk richiie, ignore us
MSmits: meh, not a good submit at all :)
darkhorse64: submitting with not stealing 1 and 7, just for the sake of curiosity
Wontonimo: hey richiie , there are some good bot battles on this site here : https://www.codingame.com/multiplayer/bot-programming
richiie: thanks! im going to check that out in a bit
jacek: Marchete so high, did he did that one-hot optimization?
sprkrd: In C4, how many simulations do you guys do during the second turn?
BlaiseEbuth: NaN
jacek: as many as possible
struct: sprkrd rollouts?
sprkrd: and how many is that?
sprkrd: yes, rollouts
struct: 300-350k
sprkrd: do you use a hash table or a proper tree and you don't care for transpositions?
struct: nope
struct: I dont care about that
sprkrd: so a tree of pointers, then?
MSmits: no tree of pointers
sprkrd: i'm using a hash table, that may be what is slowing my simulations down
MSmits: yeah don't do that, that's almost never worth it
MSmits: we just accept that a fraction of our nodes have identical states to other nodes
MSmits: locally in meta mcts i do the hash thing though
MSmits: because it's not a bottleneck there
sprkrd: when you say locally you mean for your personal projects and stuff?
Marchete: a bit jacek
MSmits: I mean i run a meta mcts for connect4 and take into account symmetries and other transpositions when expanding nodes in the persistent tree
Marchete: but I think it's bugged
Marchete: I can't train
jacek: try tram
Marchete: I need to recheck the NN part
MSmits: or metro
sprkrd: thank you :)
MSmits: sprkrd I use PersistentDictionary. It's a C# library. Hold 2 billion items, only simple stuff
MSmits: I store my C4 states in a 128 bit Guid
sprkrd: MSmits but do you run that in CG?
MSmits: no this is locally, to calculate good opening moves and it's also my attempt to solve the game
sprkrd: ah, cool, cool
MSmits: in CG, no hashing, just a c++ program, very similar to what struct and darkhorse do
sprkrd: yeah, I use C++'s unordered_map, I was thinking if I had to write my own hash table implementation or forget about transpositions and just do a tree
MSmits: struct basically has 20% more rollouts than i do and 40% rollouts than darkhorse does, from what i can tell
Wontonimo: something that a lot of these people use is https://github.com/dreignier/cg-brutaltester to locally test one of their bots to another
MSmits: I mostly don't, except during contest when there's no time to write my own stuff and the game is more complex
Wontonimo: that's cuz you are built different
Wontonimo: ;)
MSmits: so true
sprkrd: Wontonimo Thank you :D. I know about brutal tester, but I cannot be bothered with Java projects and prefer to build my own arena in C++
MSmits: I guess it doesnt matter whether i steal 1 or not, darkhorse64
Wontonimo: you don't need to do it in java
Wontonimo: it works with any language
MSmits: http://cgstats.magusgeek.com/app/multi-connect-4/msmits
sprkrd: but the tester itself is in Java
MSmits: I got geppozzed again though =/
MSmits: and ja fica hurts me alot
jacek: some jacek beats you too
MSmits: yeah, but thats normal :P
MSmits: I have come to accept this
MSmits: anyone who is into boardgames has to, eventually
Wontonimo: anyway sprkrd, I don't want to oversell brutal tester but I did really find it useful for hyper parameter tuning
ja_fica: Sorry MSmits
MSmits: did you improve ja_fica?
MSmits: or did i just push you a lot?
ja_fica: I did
MSmits: oh ok, congrats
ja_fica: I improve it
MSmits: gj
ja_fica: only 50k rollouts thought, thanks
ja_fica: I can't beat you, Im going to try a CNN approach
MSmits: well struct showed that rollout count matters, but not by a lot
MSmits: ja_fica don't take me as a benchmark though. With the opening book I make a poor comparison. Compare with struct instead, he's clean
ja_fica: My rollouts predict 3 moves ahead using AVX
jacek: try BBC approach
MSmits: predict 3 moves?
ja_fica: BBC is an actual structure or you are just trolling me?
ja_fica: Yes, with AVX and binary tricks
MSmits: i wonder if this is the same thing we do ja_fica
MSmits: we take a random move that is not winning for opponent
MSmits: i guess thats 1 or 2 moves ahead?
ja_fica: Computing winning postions can give you 2 moves ahead
MSmits: and you add another move somehow?
MSmits: do you still using winning posititions for this? Or something completely different?
ja_fica: using AVX I can compute 4 wining position at the same time
MSmits: well we do that too
MSmits: 4 directions at least
ja_fica: thats not worth
ja_fica: I tried
MSmits: depends on the way you code it, it gave improvements for us
ja_fica: and get 570k calls in 20ms
MSmits: struct likely has more rollouts because his avx is even better
ja_fica: using AVX vs scaler did'nt improve a lot for me, Computing 4 plays at the same time, I can call the function 2.1M times in 20ms
ja_fica: struct AVX is the same as my old one, at least in time
struct: ja_fica you had a problem on the benchmark
ja_fica: *call the function computing 2.1M
struct: I can call my compute moves over 32M times in 20ms
ja_fica: let me try mine
ja_fica: Single AVX version: 586051 Multiplay AVX version: 2349656
MSmits: I get 2.8 million sims now
MSmits: I forgot to take out some old stuff
ja_fica: https://paste.ofcode.org/dfGNzF7jRsyShNTzMphJtR
struct: dont do
struct: while(!stopwatch.timeout)
MSmits: I hope the compiler is not smart enough to realize that you keep calculating the same thing over and over
struct: the hotspot will be in there
MSmits: stopwatch checks are slow
struct: and also what msmits said
ja_fica: slower than the function?
jrke: then how check the time is left or not?
ja_fica: I don't think so
struct: slower than some functions yes
struct: you check the time every N iterations
MSmits: also, why even check the time more than once
MSmits: just check how fast you do x iterations
MSmits: 1 million iterations takes x ms
MSmits: mmh lucky submit i think. 27 games all wins so far
MSmits: but the dreaded ja_fica is near
MSmits: aww first loss at 32, to darkhorse
MSmits: and another... sheesh
ja_fica: Im losing xD
MSmits: it's just low statistics
MSmits: a 5% perf boos should not matter much :)
MSmits: boost
MSmits: btw
MSmits: http://chat.codingame.com/pastebin/25a6d2cc-e633-403b-90d5-b7ae88dd1f51
MSmits: 36 endgame book for oware spits out 14 GB every 2 hrs
MSmits: 70 iterations like this and i should be done
jacek: :tada:
struct: now msmits beats me everytime :(
MSmits: honestly, did not change anything except the 5% performance and steal move 1
MSmits: book is the same
jacek: 5% eh
MSmits: yeah i had some stuff in there that i forgot to change when comparing functions with darkhorse
MSmits: so fixed that
MSmits: darkhorse64 if you're reading this. it was the reduce_or thingy
punter147: i try my best to understand all your comments, but honestly most of it goes over my head :joy:
jacek: maybe youre his student :v
MSmits: well it's very context sensitive
MSmits: let me know if i need to clarify :)
jacek: and im 5th :(
MSmits: that's because ja_fica improved
punter147: Wontonimo i am trying mcts on uttt
MSmits: that's cool punter147, keep everything simple at first. Mcts is a pain to debug the first time
MSmits: or did you use it before?
punter147: No MSmits, i tried on spring challenge 2021, was a failure though. uttt is the first home grown implementation that made it to gold(with many great people's advice here and on the internet)
jacek: welp spring challenge is simul game, not quite for standard mcts
MSmits: yeah, you can use it there, but not with a ton of adjustments
MSmits: without
MSmits: not a great place to start
MSmits: uttt is great though, so are some other simple boardgames we have
punter147: jacek oh, i was also thinking the same, as both players make simultaneous moves. Plus the branching factor was also huge without pruning some actions
MSmits: yeah, well you can actually just ignore the simultaneous part and just assume your opponent has knowledge of what you do
MSmits: however much that assumption hurts you is hard to say
ja_fica: It is definitly better then no MCTS at all
MSmits: but it's been done a lot
MSmits: yeah :)
ja_fica: jacek, you use CNN or regular NN?
MSmits: he doesnt use convolution layers
MSmits: (yet)
ja_fica: Im creating my own convolutionlayers
MSmits: cool
ja_fica: But its hard to make them cache friendly
MSmits: you mean the weights are all over the place?
ja_fica: filters->width->height
ja_fica: conv requires 3 dimentions
MSmits: ah
MSmits: is cache really the main issue though?
MSmits: seems like a micro-optim issue
ja_fica: if you compute all filters firsts then you may cache misse the last dimention
MSmits: yeah that sort of thing does play a role
ja_fica: It is more then cache as I want to use fma()
MSmits: whats fma()
ja_fica: multiply add in AVX
MSmits: oh ok
MSmits: well this is far outside my experience still
ja_fica: Well, it seems to be very hard to do this CNN
ja_fica: the bias kills me xD
MSmits: might be your perfectionism right now though. Maybe get it working first?
ja_fica: Yes, but Im only writing the foward pass doe, not the training, as I will train in keras-python
MSmits: ahh ok, same here
ja_fica: and te weigths have a bias
MSmits: unless they don't
MSmits: what happens when some layers dont have a bias
ja_fica: They may overcompensate the missing bias depending on the amuount of values on the previous layer
MSmits: mmh ok
ja_fica: *the weigths overcompensate
MSmits: who knows what's best though. So much crap works that shouldn't and doesn't that should
MSmits: with nn you just try stuff and learn I think :)
ja_fica: I can add a fake bias so I don't have to care about it, I'm just really worried about the training/wigth transfer
ja_fica: Well wish me luck
MSmits: good luck :)
jacek: MLP for the win
ja_fica: thanks :grin:
jacek: and poor holand vs czech
MSmits: is this soccer?
MSmits: not even following
struct: yes
MSmits: oh so we're kicked out of tournament?
struct: yes
MSmits: too bad I guess, but things turn back to normal sooner then, which is a plus
MSmits: I would sooner watch a twitch game match than a soccer match and I'm not watching any twitch games
MSmits: I like those ones where they test AI
eulerscheZahl: smits as hyped about the world cup as I am
Astrobytes: world what?
BlaiseEbuth: There's a world cup ?
eulerscheZahl: the soccer tzhing
MSmits: how's that possible euler, you play the game yourself :)
eulerscheZahl: i did today again
Astrobytes: Playing it is better than watching it.
MSmits: oh, cool
Astrobytes: Nice
eulerscheZahl: but playing isn't the same as spectating some millionaires
Astrobytes: ^
KP56: how do i put 2 loops inside of a loop in stub generator
MSmits: I liked playing it back when I was young and my knees were better
eulerscheZahl: you can't KP56
Astrobytes: Pro football is a joke. If you want a good match watch amateur/lower leagues
MSmits: whats bad about pro football Astrobytes?
KP56: what do i do then, i cant do n*2 because its apperentely not a number, i cant do 2 loops
eulerscheZahl: the pandemic really showed it. they live by different standards than the rest of us
Astrobytes: It's just a money making machine MSmits. No sport involved. Or very little.
MSmits: well sure, but it being a money making machine doesn't exclude the players trying to win?
MSmits: what are they doing wrong?
Astrobytes: Well, one can argue that they are not always 'trying to win'
MSmits: hmm
Astrobytes: Pay someone enough...
MSmits: sure, that's not that prevalent I think though. These guys get a large salary as it is
Astrobytes: Yes. That's what I'm getting at.
MSmits: it does happen, i think there was some scandal a few years back
MSmits: hmm still dont see why the game would be bad to watch because of the money involved. I can get it if it's boring in some way
MSmits: like high end billiards
jacek: they get much $$$ from leagues. if they are injured during national matches, they lose $$$
Astrobytes: It IS boring.
KP56: everyone likes something else
MSmits: ask jacek what he likes
Astrobytes: Watch amateur leagues. Far better actual football.
KP56: i dont watch football at all, but i get it why people do
Astrobytes: It's very low on my priority list.
MSmits: same
MSmits: I only became aware of it because my students opted to make their html/css projects about soccer
Astrobytes: Grim.
eulerscheZahl: no UTTT leaderboard project?
MSmits: nah
eulerscheZahl: you must be disappointed :P
MSmits: I remember reading a few hrs ago about this topscorer expected to score a lot during the European Cup and thinking: "Oh is that any time soon"
MSmits: on one of their sites i am grading
MSmits: so this was a 3hr rollercoaster for me between learning it's happening and learning we got kicked out
eulerscheZahl: i always hate that "we" speak
MSmits: looking back now I did see orange stuff in a lot of places now. Things click
MSmits: yeah me too actually
MSmits: it's is always "we won" until it's "they lost"
Astrobytes: Is this like how Andy Murray is always Scottish when he loses tennis matches and British when he wins?
eulerscheZahl: "I would sooner watch a twitch game match than a soccer match" found one for you ;) https://www.twitch.tv/Trackmania
MSmits: Astrobytes yeah :)
MSmits: eulerscheZahl, I hear a guy speaking with a German accent
eulerscheZahl: did you hack my microphone?
eulerscheZahl: if yes, better tell me now
MSmits: no it's this twitch guy :P
MSmits: one of them anyway
punter147: MSmits :joy: success is a wave, but loss is a particle.
eulerscheZahl: in economics it's the opposite
MSmits: good one punter147
Astrobytes: Only if you observe it
eulerscheZahl: manager makes the win, community pays the losses
eulerscheZahl: i looked it up, the commentator is from Norway
Astrobytes: :rofl:
Astrobytes: *slightly* different accent :D
punter147: eulerscheZahl right :joy:
MSmits: ohh
eulerscheZahl: oh, the other one is German, nvm :(
MSmits: haha
MSmits: yes i did say one of them :)
Astrobytes: FailToad
eulerscheZahl: at least I admit fault
Astrobytes: True.
MSmits: a great quality
MSmits: the more you fail, the greater the quality is
Astrobytes: :D
MSmits: if you never fail it's useless
Astrobytes: That's an unreachable state.
MSmits: yes, it's hypothetical
MSmits: but anyways, i prefer my twitch games to be strategy games
MSmits: or some kind of tactical game
MSmits: racing is meh
MSmits: might as well watch formula 1 on tv
punter147: thanks MSmits, quantum mechanics does apply on macroscopic systems too :joy:
Astrobytes: Formula snore
MSmits: If they didnt have helmets you could see those guys think: "Hey, I swear I was just here a few minutes ago"
Astrobytes: lol
punter147: Astrobytes what about formula e?
eulerscheZahl: yesterday i installed flatout 2 again after many years
eulerscheZahl: even got it working under linux, to my big surprise
MSmits: whats that? Reminds me of wipeout
eulerscheZahl: racing game
Astrobytes: whereas racing on the Nürburgring Nordschleife is exciting
MSmits: oh ok
eulerscheZahl: but only the cracked version, wine doesn't like the copy protection :D
Astrobytes: lol punter147
MSmits: wine?
MSmits: you need to be drunk for this game?.
eulerscheZahl: that's how you run windows programs on Linux
MSmits: oh ok
eulerscheZahl: wine stands for "wine is not an emulator"
MSmits: learning so much on chat today
Astrobytes: you really didn't know that MSmits?
MSmits: not really, vaguely remember
MSmits: stuff I dont need to know fades really fast for me
Astrobytes: yeah fair
eulerscheZahl: there is a math software "sage". in older versions the windows installer they provided was just a linux virtual machine :rofl:
MSmits: thats tricksy
Astrobytes: lol
Astrobytes: never used that one actually, I only used Maxima and Maple
MSmits: ooh it's getting late. Got 2 more days to fix my backyard before the fence guys come. Time to do some sandsweepin'
MSmits: ttyl
Astrobytes: ah, almost done then :)
eulerscheZahl: what I like about sage is that you can code in python
eulerscheZahl: no weird syntax
eulerscheZahl: well, mostly python. e.g. ^ is pow instead of xor
MSmits: ye. Took out some 100kg+ stones these last 2 weeks and chopped tons of tree root
MSmits: just filling some holes now
Astrobytes: that's handy euler
Astrobytes: Nice MSmits
MSmits: not enough sand, so also digging some holes :(
Astrobytes: lol, fun
MSmits: feels like real useful work
MSmits: so anyways, off i go to dig one hole and fill another
Wontonimo: real hands on work. so few people are willing to do that in my city
MSmits: ttyl
Astrobytes: Have fun :D
Wontonimo: ttyl
struct: cya
eulerscheZahl: colleague of mine wanted to build a house, arsene in the ground makes it much more expensive
eulerscheZahl: spell check tells me that "arsene" is wrong but doesn't offer a correction
struct: whats arsene?
Astrobytes: Arsene? Wenger?
eulerscheZahl: :(
Wontonimo: i tried google. no luck
Astrobytes: arsenic I presume
eulerscheZahl: Arsenic
eulerscheZahl: (╯°□°)╯︵ ┻━┻
Wontonimo: is there a command to put the table back, or do people just copy-paste it from elsewhere?
struct: /flip
Astrobytes: no /unflip
jacek: :upside_down:
struct: just flip it twice
eulerscheZahl: and then there is /slap <name>
Wontonimo: (╯°□°)╯︵ ┻━┻
Wontonimo: no flipping twice :(
Wontonimo: but I like the idea
eulerscheZahl: oh, I almost forgot: pinging BlaiseEbuth for no particular reason but to prove a point
Astrobytes: Which point?
eulerscheZahl: that random pings can be annoying
BlaiseEbuth: You'll prove nothing eulerscheZahl. But :wave:
Astrobytes: ah.
eulerscheZahl: hi
Astrobytes: :D
jacek: why eulerscheZahl
KP56: is random pinging allowed?
BlaiseEbuth: No
Wontonimo: Yes
KP56: @jacek @Astrobytes @BlaiseEbuth @eulerscheZahl @Wontomino
Wontonimo: how's it going KP>
Wontonimo: ?
BlaiseEbuth: Gonna kick you
KP56: the current one im working on is the "Winamax Sponsored Contest"
KP56: @BlaiseEbuth you will regret it trust me
Wontonimo: he's kidding
Wontonimo: (i hope)
KP56: @BlaiseEbuth @Wontomino ok
KP56: @BlaiseEbuth @Wontomino how is it going
Wontonimo: you don't need to put the "@" infront of names
Astrobytes: :D
Astrobytes: lol struct
BlaiseEbuth: Not me
Wontonimo: a little late Astrobytes, but I approve the like
struct: was just a kick
struct: he will be fine
Wontonimo: why kick him?
jacek: oO
BlaiseEbuth: Yeah why ?
struct: ok
KP56: cuz i was spamming pings for no reason
Astrobytes: :D
Astrobytes: I would advise that :P
Wontonimo: thaxs
Wontonimo: you need a picture now that you are in the top 5,000
Wontonimo: it's a rule
BlaiseEbuth: No
Wontonimo: yes
BlaiseEbuth: JBM still have no pic...*
Astrobytes: listen to Squiddy v2.0 here :D
Wontonimo: it's my rule, Blaise can say what he wants
BlaiseEbuth: I can ban you and your rules
Wontonimo: you can ban me, but now my rules!
Wontonimo: *not
Wontonimo: oh man, my comebacks would be so much better if I proof read
**struct bans Wontonimo
TeachMeSenpai: o.o
KP56: a
**Astrobytes bans His Rules
Wontonimo: Nooooooooo oooooh
BlaiseEbuth: Astroban
KP56: his rules are always going to live inside of our hearts
Wontonimo: you are a monster!
Astrobytes: Ban'o'bytes
BlaiseEbuth: Irish he
Astrobytes: Aye
Astrobytes: Aul Ban'o'Bytes o' aul Dublin Town they call me
KP56: there is way too many BFS related problems on this website
KP56: and graph theory overall
Astrobytes: There are a lot, it's true. Plenty other stuff to dig into though.
jacek: maybe try some graph theory games
Astrobytes: lol
Wontonimo: it's as if graph theory is useful for solver a wide range of computing problems
Wontonimo: nah, couldn't be
Astrobytes: :smirk:
jacek: to be frank at work i never used explicitly graph related stuff
Wontonimo: oh wait, I'm banned. how am I writing this
KP56: i think its because of most problems being actually bot coding for small games
struct: shadow banned
Astrobytes: virtual ban ;)
struct: only you and mods can see your messages
KP56: thats not true
KP56: i can see them
KP56: wait nvm
struct: you are also banned
KP56: i cant see them
Wontonimo: good, that's pretty much the only people I talk to here anyway
Astrobytes: :D
zsltg: shadow mod?
Astrobytes: shady mod
Wontonimo: Nice apple KP. I approve the random pic
KP56: i feel like everyone here just googled some random word, downloaded the picture and then uploaded it
BlaiseEbuth: No
Astrobytes: Are they Gala apples?
KP56: idk
Wontonimo: Maybe royal gala
KP56: its just some random picture i downloaded from google images
Astrobytes: Hm yeah, possible.
Astrobytes: Put some thought into your picture next time KP56 :P
KP56: i just wanted to follow the rules
KP56: i am a good person
Astrobytes: lol
Wontonimo: lol
Astrobytes: oh new multi in WIP
KP56: really?
BlaiseEbuth: No gui. Bad one
eulerscheZahl: it has a gui?!
eulerscheZahl: reminds me of a game that was a contest at my university
eulerscheZahl: there you accumulated some energy each turn
Astrobytes: Still need to do my 9 mens morris bot. WTF is that fencing game the new TvC or what
eulerscheZahl: and you could use it to shoot, move and/or use your radar
jacek: hmm many poles in this new game's leaderboard :thinking:
eulerscheZahl: you were blind without radar. so you had to find and track your opponent
Astrobytes: Sounds like robot wars/robocode
Astrobytes: UoW jacek
KP56: are you talking about WIP: Space Shooter?
eulerscheZahl: lots of python on the leaderboard
Astrobytes: Yeah KP56
jacek: eeyup
eulerscheZahl: btw what happened to the tank battle game?
Astrobytes: Not sure. Was hoping it would come back. I think he said he was pushed for time but plans to bring it back at some point iirc.
Astrobytes: *would have come back by now
eulerscheZahl: meanwhile that person avatar on blue background is really active with clashes
eulerscheZahl: in terms of quantity
Westicles: https://www.codingame.com/contribute/view/6136321d24739acb391aa3f2c00df2627adb
eulerscheZahl: did you bookmark it?
Westicles: No, it was in old chat
eulerscheZahl: i think he even linked it on the forum
eulerscheZahl: anyways, bed time. every day i have to send my boss an email that i'm working from home (traceability in case of covid infection). tomorrow will be #250 :tada:
Astrobytes: congrats... I think :D
Astrobytes: and goodnight
punter147: congrats eulerscheZahl. good night.
punter147: on my path to exile my STL objects and welcome primitive ones, i noticed that bitset is 3x slower on average than uint16_t
Astrobytes: with the pragmas? I've never benchmarked the two
Astrobytes: *two of them
punter147: no without the pragmas.
Astrobytes: Benchmark with the pragmas then
Astrobytes: And compare
Astrobytes: If it's negligible and bitset is your preference then...
punter147: okay let me do that
KP56: why doesn't solving puzzles count toward CP
Astrobytes: XP only. No idea why. Just whatever CG decided.
Astrobytes: but CP is variable too, so... puzzles don't really factor into that very well
Astrobytes: As in you can be +/- CP from day to day
Astrobytes: Position in multis, CoC, whatever
KP56: that's true
KP56: you are probably right
punter147: Astrobytes its a small improvement. But uint16_t is still around 3x faster than bitset on average. i test on 1e5 calls of find_possible_actions, the most costly operation in my Node code rn and measure the time taken.
Astrobytes: punter147 then it's a no-brainer ;)
punter147: Astrobytes why? did i test it wrong? i am a noob at stress testing.
Astrobytes: No, I mean the decision to use uint16_t over bitset doesn't require much thought given your results :)
Astrobytes: no-brainer = no thinking required (my bad, probably a UK expression)
punter147: oh ok :smile: but i guess phasing out maps and vectors will give significant improvements.
Astrobytes: If you're not changing the size dynamically you'll be fine with std containers for the most part.
Astrobytes: so reserve is your friend there
punter147: no worries, my english still requires lot of work. but i learnt a new expression :smile:. oh i see, thanks for the advice Astrobytes, will try to check whether this happens in my code.
Astrobytes: Your english is very good punter147, don't worry :) Yeah, it can definitely help on CG.
punter147: thanks Astrobytes :smile: I will keep this in mind.
Astrobytes: No problem :)
Wontonimo: Hey punter147, nice Ultimate Tic Tac Toe bot!
Wontonimo: Astrobytes, what do you mean "reserve is your friend"?
darkhorse64: he means that reserve allows to preallocate data for your vector, essentially making it a pool for your nodes while retaining the nice features, size(), push_back(), back()
Wontonimo: :thumbsup:
fzort: how do I even increase my XP? been joining a lot of clashes but I'm stuck at 20 XP
struct: clashes do not give experience
struct: only puzzles and multiplayers
Wontonimo: hey fzort, also your CP will not go above 5000 just doing Clash of Code. you have to do other competitions like https://www.codingame.com/multiplayer/bot-programming Coders Strikes Back and Connect 4
punter147: Thanks Wontonimo. Although i still have a lot to learn from yall :grin: