Chat:World/2021-06-27

From CG community
Revision as of 05:29, 28 June 2021 by Chat Log (talk | contribs) (Created page with "<img src=/a/66358749788130> MaliciouslyCrypticUsername: Should I invest more time into learning Ruby or C++? <img src=/a/66639024239543> Jackevmi: i think c++ because it is m...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

MaliciouslyCrypticUsername: Should I invest more time into learning Ruby or C++?

Jackevmi: i think c++ because it is more commonly used

Default avatar.png 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

Default avatar.png tduck973564: When the

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

Default avatar.png rocketman7: hi there

Default avatar.png 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

Default avatar.png rocketman7: ahha thanks mate!

jacek: coders strike back?

Default avatar.png rocketman7: yeah

MiyamuraIzumi: csb is fun :D

Default avatar.png monstergamer: csb

Default avatar.png 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

Default avatar.png KP56: that makes sense, thanks

Default avatar.png KP56: wait isn't it just about winning in every single board then?

Default avatar.png 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

Default avatar.png 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

Default avatar.png KP56: oh maybe because im in bronze league rules are the same as the normal tic tac toe game

Default avatar.png 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

Default avatar.png 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 :)

Default avatar.png KP56: ok

MSmits: you may get out of bronze with that btw

MSmits: but not much further

Default avatar.png KP56: what changes next?

MSmits: nothing

MSmits: opponents just have better bots

Default avatar.png 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

Default avatar.png KP56: ive just realized i misunderstood the rules

MSmits: https://www.codingame.com/share-replay/563163967

MSmits: watch that game. It will help

Default avatar.png KP56: ok

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

Default avatar.png 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

Default avatar.png 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?

Default avatar.png 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

Default avatar.png punter147: MSmits wow.

Default avatar.png 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

Default avatar.png 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?

Default avatar.png 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

Default avatar.png 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: ^

Default avatar.png 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?

Default avatar.png 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.

Default avatar.png KP56: everyone likes something else

MSmits: ask jacek what he likes

Astrobytes: Watch amateur leagues. Far better actual football.

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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:

Default avatar.png KP56: LMAO

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

Default avatar.png KP56: is random pinging allowed?

BlaiseEbuth: No

Wontonimo: Yes

Default avatar.png KP56: @jacek @Astrobytes @BlaiseEbuth @eulerscheZahl @Wontomino

Wontonimo: how's it going KP>

Wontonimo: ?

Default avatar.png KP56: solving problems

BlaiseEbuth: Gonna kick you

Default avatar.png KP56: the current one im working on is the "Winamax Sponsored Contest"

Default avatar.png KP56: @BlaiseEbuth wait

Default avatar.png KP56: @BlaiseEbuth you will regret it trust me

Wontonimo: he's kidding

Wontonimo: (i hope)

Default avatar.png KP56: @BlaiseEbuth @Wontomino ok

Default avatar.png 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

Default avatar.png KP56: cuz i was spamming pings for no reason

Default avatar.png KP56: @Wontomino

Astrobytes: :D

Default avatar.png KP56: @BlaiseEbuth

Default avatar.png KP56: ok i need to stop

Default avatar.png KP56: and focus

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

Default avatar.png KP56: is it?

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

Default avatar.png KP56: done

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

Default avatar.png punter147: congrats eulerscheZahl. good night.

Default avatar.png 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

Default avatar.png 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...

Default avatar.png 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

Default avatar.png 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 ;)

Default avatar.png 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)

Default avatar.png 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

Default avatar.png 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.

Default avatar.png punter147: thanks Astrobytes :smile: I will keep this in mind.

Astrobytes: No problem :)

Default avatar.png Op_King: Hi

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:

Default avatar.png habatu: hello :)

Default avatar.png 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

Default avatar.png fzort: oh bummer

Default avatar.png fzort: thanks

Default avatar.png AymanS15: hi

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

Default avatar.png fzort: @Wontonimo thanks

Default avatar.png ZeroSugar: :grinning:

Default avatar.png punter147: Thanks Wontonimo. Although i still have a lot to learn from yall :grin: